sexta-feira, 13 de março de 2015

Luz Noturna, Trabalhando com sensores



Circuito a ser montado




Partes do Circuito

Botão




O botão será usado para ligar ou desligar o circuito.
  • Ele deve ser conectado a porta 13 do Arduino.
  • Ao ser pressionado a primeira vez ele liga o circuito.
  • Ao ser pressionado novamente ele desliga o circuito.



Partes do Circuito

Buzzer


O Buzzer será usado para dar um retorno auditivo de diversas situações.
  • Ele deve ser ligado à porta 11 do Arduino
  • Toda vez que o botão for pressionado ele deve emitir um som.
  • Quando a intensidade de luz muda ele deve emitir um som.
  • Quando o circuito é desligado ele deve emitir um som.



Partes do Circuito

LDR
O LDR serve para ler a intensidade de luz disponível.
  • Ele deve ser ligado à porta A0 do Arduino
  • Quando o circuito está ligado ela deve ser lida, e conforme a intensidade de luz, ascender o led branco.


Partes do Circuito

LEDs


Os LEDs serão usados para indicação visual e iluminação

O LED vermelho deve estar aceso quando o sistema estiver em stand by (energizado e desligado).
O LED verde deve estar aceso quando o circuito estiver ligado.

O LED branco deve ficar aceso quando o circuito estiver ligado conforme a intensidade de luz do LDR (quanto menos luz disponível, mais aceso deve estar o LED).


LuzNoturna


  1. int ligado = LOW;
  2. int botao = 13;
  3. int ledverde = 10;
  4. int ledvermelho = 12;
  5. int ledbranco = 9;
  6. int buzzer = 11;
  7. int valoranteriorLDR = 0;
  8. int valoratualLDR = 0;

  9. boolean botaoPressionado();
  10. void som(int frquencia, int duracao);
  11. int leLDR();

  12. void setup()
  13. {
  14.   pinMode(botao, INPUT);
  15.   pinMode(ledverde, OUTPUT);
  16.   pinMode(ledvermelho, OUTPUT);
  17.   pinMode(ledbranco, OUTPUT);
  18.   pinMode(buzzer, OUTPUT);

  19. }

  20. void loop()
  21. {
  22.   if (botaoPressionado())
  23.   {
  24.     som(10, 100);
  25.     if (ligado == LOW)
  26.       ligado = HIGH;
  27.     else
  28.     ligado == LOW;
  29.   }
  30.   if (ligado == LOW)
  31.   {
  32.     digitalWrite(ledvermelho, HIGH);
  33.     digitalWrite(ledverde, LOW);
  34.     digitalWrite(ledbranco, LOW);
  35.   }
  36.   else
  37.   {
  38.     digitalWrite(ledvermelho, LOW);
  39.     digitalWrite(ledverde, HIGH);
  40.     valoratualLDR = leLDR();
  41.     if (valoranteriorLDR != valoratualLDR)
  42.     {
  43.       valoranteriorLDR = valoratualLDR;
  44.       analogWrite(ledbranco, valoratualLDR);
  45.       som(2000, 5);
  46.     }
  47.   }
  48. }

  49. boolean botaoPressionado()
  50. {
  51.   int foiPressionado = LOW;
  52.   foiPressionado = digitalRead(botao);
  53.   delay(200);
  54.   return (foiPressionado == HIGH);
  55. }
  56. void som(int frequencia, int duracao)
  57. {
  58.   analogWrite(buzzer, frequencia);
  59.   delay(duracao);
  60.   analogWrite(buzzer, 0);
  61. }

  62. int leLDR()
  63. {
  64.   int i;
  65.   int auxLDR;
  66.   auxLDR = 0;
  67.   for (i = 0; i < 10; i++)
  68.     auxLDR += analogRead(A0);
  69.   auxLDR /= 10;

  70.   auxLDR = map(auxLDR, 0, 500, 0, 200);
  71.   if (auxLDR < 20) auxLDR = 0;
  72.   if (auxLDR > 200) auxLDR = 255;
  73.   return auxLDR;
  74. }

Projeto Montado e Funcionando





Nenhum comentário:

Postar um comentário