Data hosted with ♥ by Pastebin.com - Download Raw - See Original
  1. /*
  2. **************************
  3. *     MODUL  HC-SR04     *
  4. *      www.santy.cz      *
  5. *     © Aleš  Müller     *
  6. *********************************************
  7. *  upraveno z jiného zdoje                  *
  8. *  program volně šiřitelný, prosím sdílejte *
  9. *********************************************/
  10.  
  11. int vcc  = 2; /* PŘIPOJÍME PIN D2 NA Vcc */
  12. int trig = 3; /* PŘIPOJÍME PIN D3 NA Trig */
  13. int echo = 4; /* PŘIPOJÍME PIN D4 NA Echo */
  14. int gnd  = 5; /* PŘIPOJÍME PIN D5 NA GND */
  15. /* deklarace proměnných */
  16. long zpozdeni, palce, cm;
  17.  
  18. void setup() {
  19. /* nastavíme piny pro výstup / napájení */
  20. pinMode (vcc,OUTPUT);
  21. pinMode (gnd,OUTPUT);
  22. /* pin Echo používáme na čtení odraženého signálu od překážky (jeho zpoždění)  */
  23. pinMode(echo,INPUT);
  24. /* komunikace po seriové lince */
  25. Serial.begin(9600);
  26. }
  27.  
  28. void loop()
  29. {
  30.  digitalWrite(vcc, HIGH);
  31. /* signál (PING) se pouští jako HIGH na 2 mikrosekundy nebo více */
  32. /* ještě před signálem dáme krátký puls LOW pro čistý následující HIGH */
  33. // The PING))) is triggered by a HIGH pulse of 2 or more microseconds.
  34. // Give a short LOW pulse beforehand to ensure a clean HIGH pulse:
  35. pinMode(trig, OUTPUT);
  36. digitalWrite(trig, LOW);
  37. delayMicroseconds(2);
  38. digitalWrite(trig, HIGH);
  39. delayMicroseconds(5);
  40. digitalWrite(trig, LOW);
  41.  
  42. zpozdeni = pulseIn(echo, HIGH);
  43.  
  44. /* pomocí funkce si překonvertujeme zpoždění na délkové jednotky */
  45. palce = MikrosekundyNaPalce(zpozdeni);
  46. cm = MikrosekundyNaCentimetry(zpozdeni);
  47.  
  48. Serial.print(palce);
  49. Serial.print(" palcu, ");
  50. Serial.print(cm);
  51. Serial.print(" centimetru.");
  52. Serial.println();
  53.  
  54. /* pauza, abychom to stihli přečíst  :-) */
  55. delay(250);
  56. }
  57.  
  58. long MikrosekundyNaPalce(long microseconds)
  59. {
  60.   /* rychlost zvuku je cca 73.746 mikrosekund na palec (1130 stop za sekundu) */
  61.   /* nezapomeňte, že signál musí urazit cestu k překážce a zpět, tedy ještě vydělit dvěma! */
  62. return microseconds / 74 / 2;
  63. }
  64.  
  65. long MikrosekundyNaCentimetry(long microseconds)
  66. {
  67.   /* rychlost zvuku je cca 340 m/s nebo 29 mikrosekund na centimetr */
  68.   /* nezapomeňte, že signál musí urazit cestu k překážce a zpět, tedy ještě vydělit dvěma! */
  69. return microseconds / 29 / 2;
  70. }