Скидки, ограниченное предложение! Полный список акционных товаров

Урок 14. Музыка Star Wars на Arduino и RGB цветомузыка? Работа с tone();

Необходимые детали
Видео уроки

В этом уроке научимся использовать функцию " tone(); " и исполним великую мелодию Star Wars.


В данном уроке нам понадобится:

Сборка:

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); // Останавливаем звук
  }
}

Скачать скетч можно по этой ссылке

Видео:


Обсуждение

Присоединяйся

Другие уроки

На главную