Бывает при изготовлении какого-нибудь устройства необходима не только световая индикация, но и звуковая. На этой странице сайта привожу небольшую программку, которая показывает как можно применять звуки.
Для создания звуков в Ардуино используется функция tone. С помощью неё можно создавать свои мелодии, или сложные звуки.
/********************************************************** * 2019-10-27 Mr.ALB Тренировка в программировании Ардуино * Применение звуков **********************************************************/ #include "notes.h" // Библиотека для звуковых нот #define speakerPin 10 // buzzer к pin 10 через 220...470 Ом и к GND #define buttonPin 2 // Подключаем кнопку на 2-й pin и к GND #define ledPin 11 // Led к pin 11(любой PWM) через 2 кОм и к GND // Переменные для хранения состояния кнопки и светодиода boolean lastButton = HIGH; boolean currentButton = HIGH; int blink_delay = 500; void setup() { pinMode(speakerPin, OUTPUT); // pin на выход звука pinMode(buttonPin, INPUT_PULLUP); // Подтянут на +5В pinMode(ledPin, OUTPUT); // Для светодиода Sd_StartOK(); // звук "Успешное включение" } void loop() { currentButton = debounse(lastButton); // Опрос кнопки if(lastButton == HIGH && currentButton == LOW) { Sd_NextStep(); // звук "очередной шаг" digitalWrite(ledPin, HIGH); delay(blink_delay); Sd_ErrorBeep; digitalWrite(ledPin, LOW); Sd_ReadOK(); // Сигнал звуком OK } lastButton = currentButton; // Переписываем состояние кнопки } /* Функция для подавления дребезга */ boolean debounse(boolean last) { // Читаем состояние кнопки boolean current = digitalRead(buttonPin); if(last != current) { delay(5); current = digitalRead(buttonPin); } return current; } /*************************************************************** * *** ЗВУКИ *** * Взято тут https://github.com/AlexMalov/EasyKeyDublicatorRFID ***************************************************************/ /* звук ОК */ void Sd_ReadOK() { for (int i = 400; i < 6000; i = i * 1.5) {tone(speakerPin, i); delay(20);} noTone(speakerPin); // Отключение звука } /* звук "очередной шаг" */ void Sd_NextStep() { for (int i = 2500; i < 6000; i = i * 1.5) {tone(speakerPin, i); delay(10);} noTone(speakerPin); // Отключение звука } /* звук "ERROR" */ void Sd_ErrorBeep() { for (int j = 0; j < 3; j++) { for (int i = 1000; i < 2000; i = i * 1.1) {tone(speakerPin, i); delay(10);} delay(50); for (int i = 1000; i > 500; i = i * 1.9) {tone(speakerPin, i); delay(10);} delay(50); } noTone(speakerPin); // Отключение звука } /* звук "Успешное включение" */ void Sd_StartOK() { tone(speakerPin, NOTE_A7); delay(100); tone(speakerPin, NOTE_G7); delay(100); tone(speakerPin, NOTE_E7); delay(100); tone(speakerPin, NOTE_C7); delay(100); tone(speakerPin, NOTE_D7); delay(100); tone(speakerPin, NOTE_B7); delay(100); tone(speakerPin, NOTE_F7); delay(100); tone(speakerPin, NOTE_C7); delay(100); noTone(speakerPin); // Отключение звука }
Можно скачать по ссылкам: