Категории Статей
Популярные Статьи
Arduino, ИК(IR) приемник и пульт управления
Необходимый набор электронных компонентов: Плата Arduino UNO(или любая другая) Макетная плат ...»
Плавное мигание светодиодом с использованием ШИМ порта
Необходимый набор электронных компонентов: плата Arduino UNO(или любая другая) Макетная плат ...»
Использование RGB светодиода, эффект хамелеона :)
Необходимый набор электронных компонентов: Плата Arduino UNO(или любая другая) Макетная плат ...»

Музыкальный инструмент на основе фоторезистора

Музыкальный инструмент на основе фоторезистора

Необходимый набор электронных компонентов:

  1. Плата Arduino UNO(или любая другая)
  2. Макетная плата breadboard
  3. Излучатель звука, например, пьезоизлучатель
  4. Фоторезистор
  5. Провода "папа-папа"

В конце статьи находятся ссылки на сопутствующие товары в нашем магазине.

Софт:

  1. Arduino IDE

Принципиальная схема подключения:

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

Исходный код программы:


/*
Музыкальный инструмент на основе фоторезистора
 */

// Определение директивы для пина №3, на который заведен пьезоизлучатель
#define BUZ_PIN  6
// Определение директивы для аналогового пина №0, на который заведен фоторезистор
#define PHOTOREZ_PIN     A0

void setup(){
  // Инициализируем пин с пьезоизлучателем как выход.
  pinMode(BUZ_PIN, OUTPUT);
  // Инициализируем пин с фоторезистором как вход. Определение можно опустить, 
  // тк по умолчанию все пины инициализируются как входы
  pinMode(PHOTOREZ_PIN, INPUT);
}

void loop(){           
  // Фоторезистор подключен к аналоговому пину. Считываем с него значения от 0 до 1023 
  int photorez_val = analogRead(PHOTOREZ_PIN);

  // Трансформируем полученное значение в необходимые пределы частоты звучания в Герцах. 
  // Рекумендуется провести различные эксперементы с диапазоном значений, 
  // чтобы получатить на пьезоизлучателе разные мелодии и тональности. 
  int tone_val = map(photorez_val, 0, 1023, 300, 3000);

  /*
    Заставляем пьезоизлучатель звучать, вызывая системную функцию tone, 
    где первым параметром идет номер пина излучателя звука, а вторым - частота сигнала в Герцах. 
    Третий параметр(не обязательный) - длительность сигнала в миллисекундах, 
    для плавности звучания в данном примере не используется.
  */
  tone(BUZ_PIN, tone_val);
}

Алгоритм звучания очень простой. В зависимости от освещенности и чувствительности фоторезистора на аналоговом входе меняется значение, которое мы трансформировали в диапазон значений в Герцах. Затем вывели его на наш пьезоизлучатель и получили довольное занятное звучание. Обязательно проведите свои эксперементы с разными диапазонами сигнала, будет весело :)

  Отзывов: 0
Ваше Имя:


Ваш отзыв: Внимание: HTML не поддерживается! Используйте обычный текст.

Оценка: Плохо           Хорошо

Введите код, указанный на картинке:



Последние Статьи
Выпущена новая модель миниатюрного компьютера Raspberry Pi Zero
Выпущена новая модель миниатюрного одноплатного компьютера Raspberry Pi Zero стоимостью около 5$ Гл ...»
16.12.2015    Просмотров: 473
Arduino, ИК(IR) приемник и пульт управления
Необходимый набор электронных компонентов: Плата Arduino UNO(или любая другая) Макетная плат ...»
11.03.2015    Просмотров: 7759
Управление RGB светодиодом с компьютера через USB порт
Необходимый набор электронных компонентов: Плата Arduino UNO(или любая другая) Макетная плат ...»
10.03.2015    Просмотров: 3545
Последние отзывы
Использование RGB светодиода, эффект хамелеона :)
Скорее всего перепутаны пины для RGB светодиода. Попробуйте поменять либо подключение светодиода, либо порядок вызова функции setFadeColor. ...»
05.04.2016    Просмотров: 5336
Администратор
Использование RGB светодиода, эффект хамелеона :)
Хм. Почему-то, всё ещё резкий переход у меня выходит. ...»
05.04.2016    Просмотров: 5336
Summerwind