sexta-feira, 13 de junho de 2014

Amplificador TDA2822M



Amplificador TDA2822M C1 - 100uF x 16V C2 - 100uF x 16V C3 - 470uF x 16V C4 - 470uF x 16V C5 - 10uF x 16V C6 - 0.1uF C7 - 0.1uF R1 - 10 KOhm R2 - 10 KOhm R3 - 4.7 Ohm R4 - 4.7 Ohm CI - TDA2822M Relação entre potencia x tensão x impedância Rl |Vs |mW | ---|----|-----| 32 |9 |1000 | -- |6 |400 | -- |4.5 |200 | -- |3 |65 | -- |2 |8 | 16 |9 |2000 | -- |6 |800 | -- |3 |120 | 8 |6 |1350 | - |4.5 |700 | - |3 |220 | 4 |4.5 |1000 | - |3 |350 | - |2 |80 |

terça-feira, 10 de junho de 2014

LED's Sequenciais



//Efeito sequencial
//Fernando Ferreira Silva, 10/06/2014
//Licença: GPL

byte led_pin[] = {4, 5, 6, 7, 8, 9, 10, 11, 12, 13}; //array para os pinos

int led_delay(70); //intervalo
int direcao = 1;
int led_atual = 0;
unsigned long changetime;

void setup() {
  for (int x=0; x<10; x++) { //define todos como saida
    pinMode(led_pin[x], OUTPUT);
  }
  changetime = millis();
}

void loop() {
  //verifica o tempo da ultima alteraçao
  if ((millis() - changetime) > led_delay) { 
    troca_led();
    changetime = millis();
  }
}

void troca_led() {
  //apaga todos os leds
  for (int x=0; x<10; x++) {
    digitalWrite(led_pin[x], LOW);
  }
  digitalWrite(led_pin[led_atual], HIGH);
  led_atual += direcao; //incrementa o valor de direçao
  //altera a direcao quando chega ao fim
  if (led_atual == 9) {direcao = -1;}
  if (led_atual == 0) {direcao = 1;}
}

segunda-feira, 9 de junho de 2014

Semáforo Interativo Arduino


//Semaforo interativo
//Fernando Ferreira Silva, 18/02/2014
//Licença:GPL

int car_verm = 12;
int car_ama = 11;
int car_verde = 10;
int ped_verm = 9;
int ped_verde = 8;
int botao = 2;
int crossTime = 5000;
unsigned long changeTime;

void setup(){
  pinMode(car_verm, OUTPUT);
  pinMode(car_ama, OUTPUT);
  pinMode(car_verm, OUTPUT);
  pinMode(car_verde, OUTPUT);
  pinMode(ped_verm, OUTPUT);
  pinMode(ped_verde, OUTPUT);
  pinMode(botao, INPUT);
  
  digitalWrite(car_verde, HIGH);
  digitalWrite(ped_verm, HIGH);
}
void loop(){
  
  int state = digitalRead(botao); //verifica estado de S1
  
  if (state == HIGH && (millis() - changeTime) > 5000){
    changeLights();
  }
}
  void changeLights(){
    
    digitalWrite(car_verde, LOW);
    digitalWrite(car_ama, HIGH);
    delay(2000);
    digitalWrite(car_ama, LOW);
    digitalWrite(car_verm, HIGH);
    digitalWrite(ped_verm, LOW);
    digitalWrite(ped_verde, HIGH);
    delay(crossTime);
    
    for(int x=0; x<10; x++){
  
      digitalWrite(ped_verde, HIGH);
      delay(250);
      digitalWrite(ped_verde, LOW);
      delay(250);
      
      }
  
  digitalWrite(ped_verm, HIGH);
  delay(500);
  digitalWrite(car_verm, LOW);
  digitalWrite(car_verde, HIGH);
  
  //registra o tempo
  changeTime = millis();
  
}

Semáforo Arduino


//Semaforo
//Fernando Ferreira Silva, 09/06/2014
//Licença: GPL
int ledDelay = 10000;
int p_verm = 10;
int p_ama = 9;
int p_verde = 8;

void setup (){
     pinMode(p_verm, OUTPUT);
     pinMode(p_ama, OUTPUT);
     pinMode(p_verde, OUTPUT);
}

void loop(){
     digitalWrite(p_verm, HIGH);
     delay(ledDelay);
     digitalWrite(p_verm, LOW);
     digitalWrite(p_verde, HIGH);
     delay(ledDelay);
     digitalWrite(p_verde, LOW);
     digitalWrite(p_ama, HIGH);
     delay(2000);
     digitalWrite(p_ama, LOW);
}