renix1

Sensor de temp + sonorizador piezo

Mar 18th, 2016
111
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.00 KB | None | 0 0
  1. //Sensor de temperatura usando o LM35
  2. const int LM35 = A0; // Define o pino que lera a saída do LM35
  3. float temperatura; // Variável que armazenará a temperatura medida
  4. float sinVal;
  5. int toneVal;
  6. short ledVerde = 8;
  7. short ledVermelha = 9;
  8. short sonPiezo = 10;
  9. //Função que será executada uma vez quando ligar ou resetar o Arduino
  10. void setup() {
  11. Serial.begin(9600); // inicializa a comunicação serial
  12. pinMode(ledVerde, OUTPUT);
  13. pinMode(ledVermelha, OUTPUT);
  14. pinMode(sonPiezo, OUTPUT);
  15. }
  16. //Função que será executada continuamente
  17. void loop() {
  18. //temp
  19. temperatura = (float(analogRead(LM35)) * 5 / (1023)) / 0.01;
  20. Serial.print("Temperatura: ");
  21. Serial.println(temperatura);
  22. if ((temperatura >= 29.1) && (temperatura < 38.2)) {
  23. noTone(sonPiezo);
  24. //toneVal = 31;
  25. //tone(sonPiezo, toneVal);
  26. digitalWrite(ledVerde, LOW);
  27. digitalWrite(ledVermelha, HIGH);
  28. delay(250);
  29. digitalWrite(ledVermelha, LOW);
  30. delay(250);
  31. }
  32. else if (temperatura >= 33.2) {
  33. digitalWrite(ledVerde, LOW);
  34. digitalWrite(ledVermelha, HIGH);
  35. // Converte graus para radianos, e depois obtém o valor do seno
  36. for (int x=0; x<180; x++) {
  37. // Gera uma frequência a partir do valor do seno
  38. sinVal = (sin(x*(3.1416/180)));
  39. // Pega 2000 e adiciona sinVal multiplicando por 1000, gerando um...
  40. //bom intervalo de frequências para o tom crescente e decrescente da...
  41. //onda senoidal
  42. toneVal = 2000+(int(sinVal*1000));
  43. // O comando ton( ) é definido como ton(pin, frequency), o pin...
  44. //corresponde o pino digital de saída e frequency é a frequência do...
  45. //tom em Hertz
  46. tone(sonPiezo, toneVal);
  47. delay(2); // Espera dois milissegundos entre as alterações de frequência
  48. }
  49. }else if (temperatura < 29.1) {
  50. noTone(sonPiezo);
  51. digitalWrite(ledVermelha, LOW);
  52. digitalWrite(ledVerde, HIGH);
  53. }
  54. delay(800);
  55. //piezo
  56. }
Advertisement
Add Comment
Please, Sign In to add comment