Nessa atividade desenvolvemos um procedimento para leitura analógica a parte de dois dispositivos, o LDR para medir luminosidade e o Potenciômetro que funciona como uma resistência.
Nesse esquema o LDR e o Potenciomêtro controlam os LEDs de referência (verde, amarelo e vermelho). Com o seguinte código:
int btn1, btn2, ldr, pot;
int var = 0;
void setup() {
//Pins de saída
pinMode(3, OUTPUT); //Buzzer
pinMode(6,OUTPUT); //LED1
pinMode(7,OUTPUT); //LED2
pinMode(8,OUTPUT); //LED Verde
pinMode(9,OUTPUT); //LED Amarelo
pinMode(10,OUTPUT); //LED Vermelho
//Pins de entrada
pinMode(4, INPUT); //Botão 01
pinMode(5, INPUT); //Botão 02
//Pins de entrada (analógica)
pinMode(A0, INPUT); //Potenciômetro
pinMode(A1, INPUT); //LDR
tone(3,450,100);
digitalWrite(8, 1);
delay(500);
tone(3,200,100);
digitalWrite(8,0);
digitalWrite(9,1);
delay(500);
tone(3, 450,100);
digitalWrite(9,0);
digitalWrite(10,1);
delay(500);
tone(3,600,100);
digitalWrite(10,0);
tone(3,450,100);
}
void loop() {
//Entrada de comando com os botões
btn1 = digitalRead(4);
btn2 = digitalRead(5);
if (btn1 == 1 && btn2 == 0){
var = 1;
}
if (btn1 == 0 && btn2 == 1){
var = 2;
}
if (var == 1){
luz1();
}
if (var == 2){
luz2();
}
}
void luz1(){
ldr = analogRead(A1); //Lê o LDR
//Define o LED de resposta (LED1)
digitalWrite(7, HIGH);
digitalWrite(6, LOW);
//Alerta de boa iluminação
if (ldr <= 920 && ldr >= 500){
digitalWrite(8, HIGH);
digitalWrite(9, LOW);
digitalWrite(10, LOW);
}
//Alerta de iluminação forte
if (ldr >=921 && ldr <= 999){
digitalWrite(8, HIGH);
digitalWrite(9, HIGH);
digitalWrite(10, LOW);
}
if (ldr >=999){
digitalWrite(8, HIGH);
digitalWrite(9, HIGH);
digitalWrite(10, HIGH);
tone(3,450,100);
delay(500);
}
//Alerta de iluminação fraca
if (ldr >=300 && ldr <= 499){
digitalWrite(8, HIGH);
digitalWrite(9, HIGH);
digitalWrite(10, LOW);
}
if (ldr <= 299){
digitalWrite(8, HIGH);
digitalWrite(9, HIGH);
digitalWrite(10, HIGH);
tone(3,450,100);
delay(500);
}
}
void luz2(){
pot = analogRead(A0); //Lê o potenciômentro
//Define o LED de resposta (LED2)
digitalWrite(7, LOW);
digitalWrite(6, HIGH);
//Alerta de LED em referência ao Potenciômetro
if (pot >= 700){
digitalWrite(8, HIGH);
digitalWrite(9, LOW);
digitalWrite(10, LOW);
}
if (pot >= 300 && pot <= 699){
digitalWrite(8, LOW);
digitalWrite(9, HIGH);
digitalWrite(10, LOW);
}
if (pot <= 299){
digitalWrite(8, LOW);
digitalWrite(9, LOW);
digitalWrite(10, HIGH);
}
}
Aqui os botões definem qual função será ativa, fazendo com que o usuário possa mudar do LDR para o Potenciômetro quando bem entender.

0 comentários:
Postar um comentário