Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- int Relay = 4; // реле модуль подключен к цифровому выводу 4
- int Trig = 11; // обозначаем пин подачи импульса
- int Echo = 12; // обозначаем пин приема импульса
- const int speakerPin = 10; // пин к которому подключен пьезоизлучатель
- // ноты
- const int c = 261;
- const int d = 294;
- const int e = 329;
- const int f = 349;
- const int g = 391;
- const int gS = 415;
- const int a = 440;
- const int aS = 455;
- const int b = 466;
- const int cH = 523;
- const int cSH = 554;
- const int dH = 587;
- const int dSH = 622;
- const int eH = 659;
- const int fH = 698;
- const int fSH = 740;
- const int gH = 784;
- const int gSH = 830;
- const int aH = 880;
- // пищание <ton> время <time> в мс с небольшой паузой, чтобы не образоволась каша
- void beep(int ton, int time)
- {
- tone(10, ton, time);
- delay(time + 20);
- }
- // настройки, которые применяются при старте
- void setup() {
- pinMode(Relay, OUTPUT);
- pinMode(Trig, OUTPUT); // инициируем как выход
- pinMode(Echo, INPUT); // инициируем как вход
- Serial.begin(9600); // устанавливаем скорость порта
- // отключить спикер (чтобы не пищал)
- noTone(10);
- }
- unsigned int impulseTime = 0;
- unsigned int distance_sm = 0;
- void loop() {
- digitalWrite(Trig, HIGH); // подаём импульс на вход Trig дальномера
- delayMicroseconds(10); // импульс длится 10 микросекунд
- digitalWrite(Trig, LOW); // отключаем подачу импульса
- impulseTime = pulseIn(Echo, HIGH); // принимаем импульс и подсчитываем его длину
- distance_sm = impulseTime / 58; // пересчитываем его значение в сантиметры
- Serial.println(distance_sm); // выводим значение на порт программы
- if (distance_sm < 40) {
- digitalWrite(Relay, LOW); // реле включено
- beep(a, 500);
- beep(a, 500);
- beep(a, 500);
- beep(f, 350);
- beep(cH, 150);
- beep(a, 500);
- beep(f, 350);
- beep(cH, 150);
- beep(a, 650);
- delay(150);
- beep(eH, 500);
- beep(eH, 500);
- beep(eH, 500);
- beep(fH, 350);
- beep(cH, 150);
- beep(gS, 500);
- beep(f, 350);
- beep(cH, 150);
- beep(a, 650);
- delay(150);
- beep(aH, 500);
- beep(a, 300);
- beep(a, 150);
- beep(aH, 400);
- beep(gSH, 200);
- beep(gH, 200);
- beep(fSH, 125);
- beep(fH, 125);
- beep(fSH, 250);
- delay(250);
- beep(aS, 250);
- beep(dSH, 400);
- beep(dH, 200);
- beep(cSH, 200);
- beep(cH, 125);
- beep(b, 125);
- beep(cH, 250);
- delay(250);
- beep(f, 125);
- beep(gS, 500);
- beep(f, 375);
- beep(a, 125);
- beep(cH, 500);
- beep(a, 375);
- beep(cH, 125);
- beep(eH, 650);
- beep(aH, 500);
- beep(a, 300);
- beep(a, 150);
- beep(aH, 400);
- beep(gSH, 200);
- beep(gH, 200);
- beep(fSH, 125);
- beep(fH, 125);
- beep(fSH, 250);
- delay(250);
- beep(aS, 250);
- beep(dSH, 400);
- beep(dH, 200);
- beep(cSH, 200);
- beep(cH, 125);
- beep(b, 125);
- beep(cH, 250);
- delay(250);
- beep(f, 250);
- beep(gS, 500);
- beep(f, 375);
- beep(cH, 125);
- beep(a, 500);
- beep(f, 375);
- beep(cH, 125);
- beep(a, 650);
- // конец песни
- noTone(10); // отключаем спикер
- } else {
- digitalWrite(Relay, HIGH); // реле выключено
- noTone(10); // отключаем спикер
- }
- delay(200);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement