Advertisement
Guest User

Untitled

a guest
Feb 27th, 2017
60
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.33 KB | None | 0 0
  1. /*
  2. Sensor d'Ultrasons: Avís sonor de proximitat
  3. En apropar un objecte al sensor a menys del límit especificat (20cm) s'encén un LED i fa un senyal acústic.
  4. */
  5.  
  6. int TriggerPin = 3;
  7. int EchoPin = 4;
  8. int Brunzidor = 5;
  9. int LedPin = 13;
  10. int So = 659; //El valor 659 equival a la nota musical E5
  11. int limit = 20; //límit en cm especificat per encendre el led
  12. long duracio = 0;
  13. long distancia = 0;
  14.  
  15. void setup() {
  16. Serial.begin(9600);
  17. pinMode(LedPin, OUTPUT);
  18. pinMode(Brunzidor, OUTPUT);
  19. pinMode(TriggerPin, OUTPUT);
  20. pinMode(EchoPin, INPUT);
  21. }
  22.  
  23. void loop() {
  24. digitalWrite(TriggerPin, LOW); //iniciem el disparador amb LOW durant 4us
  25. delayMicroseconds(4);
  26. digitalWrite(TriggerPin, HIGH); //activem el Trigger durant 10us
  27. delayMicroseconds(10);
  28. digitalWrite(TriggerPin, LOW);
  29. duracio = pulseIn(EchoPin, HIGH); //mesurem el temps entre pulsos, en microsegons
  30. distancia = duracio * 10 / 292/ 2; //convertim a distancia a centímetres
  31. if (distancia >= 500 || distancia <= 0)
  32. { // si la distància és major de 500cm o menor de 0cm
  33. Serial.println("Fora de rang"); // no mesura res
  34. }
  35. else {
  36. if (distancia <= limit && distancia >= 1)
  37. {
  38. digitalWrite(LedPin, 1); // encén el led si la distància és menor del límit especificat
  39. Serial.print("Distancia: "); // envia el valor de la distància pel port serie
  40. Serial.print(distancia);
  41. Serial.println("cm. --> Encesa del led");
  42. noTone(Brunzidor); // mantenim el so apagat
  43. tone(Brunzidor, So); // senyal acústic d'avís
  44. delay(distancia*50); // retard per tal de mantenir el senyal acústic 0,1 segundos mínim
  45. noTone(Brunzidor); // mantenim el so apagat
  46. }
  47. else {
  48. Serial.print("Distancia: "); // envia el valor de la distància pel port serie
  49. Serial.print(distancia);
  50. Serial.println("cm.");
  51. digitalWrite(LedPin, 0); // apaga el led si la distància és najor del límit especificat
  52. noTone(Brunzidor); // mantenim el so apagat
  53. }
  54. }
  55. delay(100);
  56. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement