02/12/2012 - Projeto - Semáforo para ser apresentado na exposição na EE Elza Facca Martins Bonilha
Projeto de semáforo que, durante o dia, funciona com led´s alterando as cores por 3 segundos, à noite, sem luminosidade, amarelo piscante e com um botão que, quando acionado, informa o motorista (amarelo e verde - alerta) e depois fecha o semáforo por 10 segundos.
Material
3 resistores de 220 ohm - Led´s
Led´s - Verde, amarelo e vermelho
2 resistores de 10k ohm
1 botão (push bottom)
1 LDR 
Imagem do esquema em protoboard do projeto
Programa no Arduino
/* Semáforo acionado por luz: Este semáforo aciona quando há luz, quando desligado o sinal fica amarelo piscante e quando o botão é pressionado o sinal avisa ao motorista,
acionando o amarelo e verde e depois no vermelho por mais tempo. Depois retorna a sequência normal
*/
void setup (){
  pinMode (A0, INPUT);
  pinMode (A1, INPUT);
  pinMode (8, OUTPUT);
  pinMode (7, OUTPUT);
  pinMode (4, OUTPUT);
  Serial.begin (9600);
}
 void loop (){
   float LDR; //variável que armazena o valor
   LDR=analogRead (A0)*0.0049; //leitura do LDR
   //leitura de botão
   float botao;
   botao=analogRead (A1)*0.0049;
  Serial.println ("LDR:/t"); 
  Serial.print (LDR/t);
  Serial.print ("/t Botão:/t");
  Serial.print (botao);
   if (LDR<3){  //se o ldr identificar que há luz então ativa o ciclo de funcionamento 
  //aciona os led´s por 3 segundos
 digitalWrite (8, HIGH);
 delay (3000); 
 digitalWrite (8, LOW);
 digitalWrite (7, HIGH);
 delay (3000); 
 digitalWrite (7, LOW);
 digitalWrite (4, HIGH);
 delay (3000); 
 digitalWrite (4, LOW);
  }
  if (LDR>3){  //se o ldr identificar que há luz então ativa o ciclo de funcionamento 
 //aciona os led amarelo por 1 segundo
 digitalWrite (7, HIGH);
 delay (1000); 
 digitalWrite (7, LOW);
 delay (1000);
 } 
 if (botao<3){  //se o botão estiver ativo aciona o led amarelo e verde e depois vermelho por 5 segundos  
 digitalWrite (8, HIGH);
 digitalWrite (7, HIGH);
 delay (3000); 
 digitalWrite (8, LOW);
 digitalWrite (7, LOW);
 digitalWrite (4, HIGH);
 delay (5000); 
 digitalWrite (4, LOW);
 }
}
Vídeo do teste do semáforo feito no Simulino. Tudo funcionou a contento e este projeto será apresentado na EE Elza Facca Martins Bonilha no interclasses de 10 a 13/12.
Dia 21 de Novembro de 2012,
Fizemos um novo semáforo, desta vez inteligente tendo um interruptor e sequencia correta.
/*
Semáforo de LEDs inteligente, com interruptor para pedestre
*/
void setup() {
Serial.begin (9600);
pinMode(A0,INPUT);
pinMode(13, OUTPUT);
pinMode(12, OUTPUT);
pinMode(8,OUTPUT);
}
void loop (){
int botao;
botao=analogRead(A0);
Serial.println (botao);
if(botao>900){
digitalWrite(8,LOW);
digitalWrite(13, HIGH);
delay(1000);
digitalWrite(13, LOW);
digitalWrite(12, HIGH);
delay(500);
digitalWrite(12, LOW) ;
digitalWrite(8, HIGH);
delay(1000);
digitalWrite(8, LOW);
}
if(botao<10){
digitalWrite(13, LOW);
digitalWrite(12, LOW);
digitalWrite(8, HIGH);
delay(5000);
}
}
// //
Hoje dia 7 de novembro de 2012, fizemos um semáforo com 3 LEDs (Vermelho,Amarelo e Azul)
utilizando o Arduíno. (Aqui vai a programação para vocês)
/*
SEMÁFORO de LEDs
*/
void setup() {
// initialize the digital pin as an output.
pinMode(12, OUTPUT);
pinMode(13, OUTPUT);
pinMode(11, OUTPUT);
}
// the loop routine runs over and over again forever:
void loop() {
digitalWrite(11, HIGH); // liga o LED
delay(1000); // tempo do LED ligado
digitalWrite(11, LOW); // Desliga o LED
digitalWrite(12, HIGH); // turn the LED on (HIGH is the voltage level)
delay(500); // wait for a second
digitalWrite(12, LOW); // turn the LED off by making the voltage LOW
digitalWrite(13, HIGH); // turn the LED on (HIGH is the voltage level)
delay(1000); // wait for a second
digitalWrite(13, LOW); // turn the LED off by making the voltage LOW
digitalWrite(12, HIGH); // turn the LED on (HIGH is the voltage level)
delay(500); // wait for a second
digitalWrite(12, LOW); // turn the LED off by making the voltage LOW
}
 

 
Nenhum comentário:
Postar um comentário