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