В этом уроке научимся использовать функцию " tone(); " и исполним великую мелодию Star Wars.
В данном уроке нам понадобится:
- Arduino
- Зуммер пьезоэлектрический
- Провода Папа-Папа или Набор проводов для макетирования 65 шт.
- Резисторы, 1кОм
- RGB Светодиод
Сборка:
1) Звуковой сигнал будет издаваться с помощью зуммера, его подключаем следующим образом.
Зуммер | Arduino |
---|---|
GND | GND |
IO | pin 3 |
VCC | 5V или 3V |
Контакт Pin3 так же может быть изменен на любой удобный Вам цифровой выход. Настраивается здесь:
const int Pin_tone = 3; // номер контакта к которому подключен зуммер
2) RGB Светодиод подключается через резисторы, 1-2кОм. Самая длинная ножка (как правило, вторая) подключается к GND, а остальные ножки через резистор к цифровым портам pin 6, pin 9 , pin 10.
Скетч:
const int Pin_tone = 9; // номер порта зуммера const byte COUNT_NOTES = 39; // Колличество нот byte PWM_led_R, PWM_led_G, PWM_led_B; byte pin_led_R = 3; // Номер контакта для Светодиода R byte pin_led_G = 10; // Номер контакта для Светодиода G byte pin_led_B = 6; // Номер контакта для Светодиода B //частоты ноты int frequences[COUNT_NOTES] = { 392, 392, 392, 311, 466, 392, 311, 466, 392, 587, 587, 587, 622, 466, 369, 311, 466, 392, 784, 392, 392, 784, 739, 698, 659, 622, 659, 415, 554, 523, 493, 466, 440, 466, 311, 369, 311, 466, 392 }; //длительность нот int durations[COUNT_NOTES] = { 350, 350, 350, 250, 100, 350, 250, 100, 700, 350, 350, 350, 250, 100, 350, 250, 100, 700, 350, 250, 100, 350, 250, 100, 100, 100, 450, 150, 350, 250, 100, 100, 100, 450, 150, 350, 250, 100, 750 }; void setup() { pinMode(pin_led_R, OUTPUT); // Настраиваем контакт на выход pinMode(pin_led_G, OUTPUT); // Настраиваем контакт на выход pinMode(pin_led_B, OUTPUT); // Настраиваем контакт на выход pinMode(Pin_tone, OUTPUT); // Настраиваем контакт на выход } void loop() { for (int i = 0; i <= COUNT_NOTES; i++ ) { // Цикл от 0 до количества нот tone(Pin_tone, frequences[i], durations[i] * 2); // Включаем звук, определенной частоты PWM_led_R = random(0, 254); // Генерируем случайное число от 0 до 254 PWM_led_G = random(0, 254); // Генерируем случайное число от 0 до 254 PWM_led_B = random(0, 254); // Генерируем случайное число от 0 до 254 analogWrite(pin_led_R, PWM_led_R); // Зажигаем светодлиод на случайно сгенерированную яркость analogWrite(pin_led_G, PWM_led_G); // Зажигаем светодлиод на случайно сгенерированную яркость analogWrite(pin_led_B, PWM_led_B); // Зажигаем светодлиод на случайно сгенерированную яркость delay(durations[i] * 2); // Дауза для заданой ноты noTone(Pin_tone); // Останавливаем звук } }
Скачать скетч можно по этой ссылке
Видео:
Обсуждение