quinta-feira, 27 de setembro de 2018

Uso de sensores analógico #1 - Potenciômetro e LDR



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