Advertisement
Shiyan12

Untitled

Sep 8th, 2021
1,180
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 3.77 KB | None | 0 0
  1. int Relay = 4; // реле модуль подключен к цифровому выводу 4
  2.  
  3. int Trig = 11; // обозначаем пин подачи импульса
  4. int Echo = 12; // обозначаем пин приема импульса
  5.  
  6. const int speakerPin = 10; // пин к которому подключен пьезоизлучатель
  7.  
  8. // ноты
  9. const int c = 261;
  10. const int d = 294;
  11. const int e = 329;
  12. const int f = 349;
  13. const int g = 391;
  14. const int gS = 415;
  15. const int a = 440;
  16. const int aS = 455;
  17. const int b = 466;
  18. const int cH = 523;
  19. const int cSH = 554;
  20. const int dH = 587;
  21. const int dSH = 622;
  22. const int eH = 659;
  23. const int fH = 698;
  24. const int fSH = 740;
  25. const int gH = 784;
  26. const int gSH = 830;
  27. const int aH = 880;
  28.  
  29. // пищание <ton> время <time> в мс с небольшой паузой, чтобы не образоволась каша
  30. void beep(int ton, int time)
  31. {
  32.   tone(10, ton, time);
  33.   delay(time + 20);
  34. }
  35.  
  36. // настройки, которые применяются при старте
  37. void setup() {
  38.   pinMode(Relay, OUTPUT);
  39.   pinMode(Trig, OUTPUT); // инициируем как выход
  40.   pinMode(Echo, INPUT); // инициируем как вход
  41.   Serial.begin(9600); // устанавливаем скорость порта
  42.  
  43.   // отключить спикер (чтобы не пищал)
  44.   noTone(10);
  45. }
  46.  
  47. unsigned int impulseTime = 0;
  48. unsigned int distance_sm = 0;
  49.  
  50. void loop() {
  51.   digitalWrite(Trig, HIGH); // подаём импульс на вход Trig дальномера
  52.   delayMicroseconds(10); // импульс длится 10 микросекунд
  53.   digitalWrite(Trig, LOW); // отключаем подачу импульса
  54.   impulseTime = pulseIn(Echo, HIGH); // принимаем импульс и подсчитываем его длину
  55.   distance_sm = impulseTime / 58; // пересчитываем его значение в сантиметры
  56.   Serial.println(distance_sm); // выводим значение на порт программы
  57.   if (distance_sm < 40) {
  58.     digitalWrite(Relay, LOW); // реле включено
  59.  
  60.     beep(a, 500);
  61.     beep(a, 500);
  62.     beep(a, 500);
  63.     beep(f, 350);
  64.     beep(cH, 150);
  65.     beep(a, 500);
  66.     beep(f, 350);
  67.     beep(cH, 150);
  68.     beep(a, 650);
  69.  
  70.     delay(150);
  71.  
  72.     beep(eH, 500);
  73.     beep(eH, 500);
  74.     beep(eH, 500);
  75.     beep(fH, 350);
  76.     beep(cH, 150);
  77.     beep(gS, 500);
  78.     beep(f, 350);
  79.     beep(cH, 150);
  80.     beep(a, 650);
  81.  
  82.     delay(150);
  83.  
  84.     beep(aH, 500);
  85.     beep(a, 300);
  86.     beep(a, 150);
  87.     beep(aH, 400);
  88.     beep(gSH, 200);
  89.     beep(gH, 200);
  90.     beep(fSH, 125);
  91.     beep(fH, 125);
  92.     beep(fSH, 250);
  93.  
  94.     delay(250);
  95.  
  96.     beep(aS, 250);
  97.     beep(dSH, 400);
  98.     beep(dH, 200);
  99.     beep(cSH, 200);
  100.     beep(cH, 125);
  101.     beep(b, 125);
  102.     beep(cH, 250);
  103.  
  104.     delay(250);
  105.  
  106.     beep(f, 125);
  107.     beep(gS, 500);
  108.     beep(f, 375);
  109.     beep(a, 125);
  110.     beep(cH, 500);
  111.     beep(a, 375);
  112.     beep(cH, 125);
  113.     beep(eH, 650);
  114.  
  115.     beep(aH, 500);
  116.     beep(a, 300);
  117.     beep(a, 150);
  118.     beep(aH, 400);
  119.     beep(gSH, 200);
  120.     beep(gH, 200);
  121.     beep(fSH, 125);
  122.     beep(fH, 125);
  123.     beep(fSH, 250);
  124.  
  125.     delay(250);
  126.  
  127.     beep(aS, 250);
  128.     beep(dSH, 400);
  129.     beep(dH, 200);
  130.     beep(cSH, 200);
  131.     beep(cH, 125);
  132.     beep(b, 125);
  133.     beep(cH, 250);
  134.  
  135.     delay(250);
  136.  
  137.     beep(f, 250);
  138.     beep(gS, 500);
  139.     beep(f, 375);
  140.     beep(cH, 125);
  141.     beep(a, 500);
  142.     beep(f, 375);
  143.     beep(cH, 125);
  144.     beep(a, 650);
  145.     // конец песни
  146.    
  147.     noTone(10); // отключаем спикер
  148.   } else {
  149.     digitalWrite(Relay, HIGH); // реле выключено
  150.     noTone(10); // отключаем спикер
  151.   }
  152.   delay(200);
  153. }
  154.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement