Промышленное производство
Промышленный Интернет вещей | Промышленные материалы | Техническое обслуживание и ремонт оборудования | Промышленное программирование |
home  MfgRobots >> Промышленное производство >  >> Manufacturing Technology >> Производственный процесс

Празднуем со светом и звуком: DIY-проект «С днём рождения» на Arduino

Компоненты и материалы

Необходимые инструменты

Программное обеспечение

О проекте

После неудачной попытки создать индикатор расстояния на светодиодной шкале автор решил заняться чем-то более простым. Вдохновение пришло после просмотра проектов на Arduino Project Hub — так родилась идея музыкальной поздравительной установки, играющей «Happy Birthday» с сопровождением световых эффектов.

Пошаговая инструкция

Шаг 1: Подготовка компонентов

Соберите все детали. При необходимости припаяйте перемычки к контактам динамика.

Шаг 2: Установка светодиодов

Установите три светодиода на макетную плату рядом друг с другом. Обратите внимание на полярность: длинная нога — анод (+), короткая — катод (–).

Шаг 3: Подключение анодов к Arduino

Соедините аноды светодиодов перемычками с цифровыми выводами Arduino:

Шаг 4: Подключение катодов через резисторы

Катоды каждого светодиода подключите к отдельному резистору 220 Ом. Вторые выводы резисторов соедините с общей шиной земли (GND) на макетной плате, а её — с выводом GND на Arduino.

Шаг 5: Подключение динамика

Отрицательный провод динамика — на шину GND макетной платы, положительный — на пин 3 Arduino (PWM-вывод, поддерживающий функцию tone()).

Код прошивки

Проект использует два файла: основной скетч и библиотеку нот pitches.h.

Основной скетч (Happy Birthday Lights + Sounds)

// RED 9; BLUE 10; WHITE 11
#include "pitches.h"

// Ноты мелодии "Happy Birthday"
int melody[] = {
  NOTE_C4, NOTE_C4, NOTE_D4, NOTE_C4, NOTE_F4, NOTE_E4,
  NOTE_C4, NOTE_C4, NOTE_D4, NOTE_C4, NOTE_G4, NOTE_F4,
  NOTE_C4, NOTE_C4, NOTE_C5, NOTE_A4, NOTE_F4, NOTE_E4,
  NOTE_D4, NOTE_AS4, NOTE_AS4, NOTE_A4, NOTE_F4, NOTE_G4, NOTE_F4
};

// Длительности нот: 4 = четверть, 8 = восьмая и т.д.
int noteDurations[] = {
  8, 8, 4, 4, 4, 2,
  8, 8, 4, 4, 4, 2,
  8, 8, 4, 4, 4, 4, 4,
  8, 8, 4, 4, 4, 2
};

void setup() {
  pinMode(9, OUTPUT);  // красный
  pinMode(10, OUTPUT); // синий
  pinMode(11, OUTPUT); // белый

  for (int thisNote = 0; thisNote < 25; thisNote++) {
    // Случайно зажигаем два из трёх светодиодов
    int randomLight1 = random(9, 12);
    int randomLight2 = random(9, 12);
    int randomLight3 = random(9, 12);
    digitalWrite(randomLight1, HIGH);
    digitalWrite(randomLight2, HIGH);
    digitalWrite(randomLight3, LOW);

    // Длительность ноты в мс
    int noteDuration = 1130 / noteDurations[thisNote];
    tone(3, melody[thisNote], noteDuration);

    // Пауза между нотами (1.275 от длительности)
    int pause = noteDuration * 1.275;
    delay(pause);
    noTone(3);
  }

  delay(3000);
  // Гасим все светодиоды
  digitalWrite(9, LOW);
  digitalWrite(10, LOW);
  digitalWrite(11, LOW);
}

void loop() {
  // Повтор не нужен — играем один раз
}

Библиотека pitches.h

Файл содержит определения частот для нот от B0 до D8. Подключается директивой #include "pitches.h". Полный список констант доступен в исходном коде проекта.

Схема подключения

Схема в формате Fritzing (happy_birthday_lights__sounds_I16bf0SBDq.fzz) показывает все соединения наглядно. Откройте её в программе Fritzing для просмотра.

Заключение

Простой и весёлый проект для начинающих: за 15–20 минут сборки получите устройство, которое поздравит именинника музыкой и мигающими огнями. Отличная база для экспериментов с звуком и светом на Arduino.

Производственный процесс

  1. Титановые проволоки: типы, свойства и промышленные применения
  2. Соглашения об обозначении соединений проводов на электрических схемах: понятное руководство
  3. Сети vs шины: понятное руководство по проводке в цифровых системах
  4. Управление яркостью LED с ШИМ через кнопку на Arduino Mega
  5. Проект с датчиком DHT11: индикация температуры светодиодами и пьезо-динамиком на Arduino
  6. GPS-трекер с пространственным анализом на Azure IoT Hub
  7. Логгер температуры и влажности на Arduino с DHT11 и Ethernet Shield
  8. DIY Guitar Speed Pick & Stomp Pedal — моторизированный медиатор на Arduino
  9. Расшифровка приборной панели: лампы, индикаторы и их значение
  10. Празднование 50-летия точности: Metal Cutting Corporation отмечает полувековой юбилей