Ардуино аналоговый вход

Ардуино аналоговый вход

Используем потенциометр для управления мерцанием светодиода.

В этом примере мы используем переменный резистор (потенциометр или фоторезистор), считываем его значение, используя один из аналоговых входов платы Arduino, и соответственно изменяем частоту мерцания встроенного светодиода.
Аналоговое значение резистора считывается как напряжение, потому что именно так работают аналоговые входы.

Нам понадобятся:

  • Плата Arduino
  • Потенциометр или фоторезистор
  • Фоторезистор 10 кОм и резистор 10 кОм
  • Встроенный светодиод на пине 13 или
  • Резистор 220 Ом и красный светодиод


Подключение:

С потенциометром:

С фоторезистором:

Подключите три провода к плате Arduino.

  • Первый провод идет на землю из одного из внешних контактов потенциометра.
  • Второй провод идет от +5 вольт к другому внешнему контакту потенциометра.
  • Третий провод идет от аналогового входа A0 к среднему контакту потенциометра.


Для этого примера можно использовать встроенный светодиод платы, подключенный к пину 13.
Чтобы использовать дополнительный светодиод, подключите его более длинную ногу (положительную, или анод) к цифровому пину 13 через резистор 220 Ом, а более короткую ногу (отрицательную, или катод) к земле (GND) рядом с пином 13.

Схема, основанная на фоторезисторе, использует делитель напряжения для того, чтобы высокоомный аналоговый вход мог измерить напряжение.
Эти входы практически не потребляют тока, и, следовательно, согласно закону Ома, напряжение на конце резистора, подключенного к 5 вольтам, всегда составляет 5 вольт, независимо от значения резистора.
Чтобы получить напряжение, пропорциональное значению фоторезистора, необходим делитель напряжения.
Эта схема использует переменный резистор, постоянный резистор, а точка измерения находится посередине резисторов.
Измеренное напряжение (Vout) рассчитывается по формуле:

Vout=Vin*(R2/(R1+R2))

  - значение фоторезистора, которое изменяется от 1 МОм в темноте до 10 кОм в дневное время (10 люмен) и менее 1 кОм при ярком свете или солнечном свете (>100 люмен).

Код:

/*
Аналоговый вход
Демонстрирует аналоговый вход, считывая сенсор с аналогового пина А0 и
включая и выключая светодиод (LED), подключенный к цифровому пину 13.
Время, в течение которого светодиод будет включен и выключен, зависит от значения,
полученного с помощью analogRead().

Схема:
потенциометр
центральный пин потенциометра подключен к аналоговому входу А0
один боковой пин (любой) к земле
другой боковой пин к +5V

светодиод
анод (длинная нога) подключен к цифровому выводу 13 через резистор 220 Ом
катод (короткая нога) подключен к земле

Примечание: поскольку у большинства Arduino есть встроенный светодиод, подключенный к пину 13
на плате, внешний светодиод является необязательным.
*/

int sensorPin = A0; // выбрать пин для подключения потенциометра
int ledPin = 13; // выбрать пин для светодиода
int sensorValue = 0; // переменная для хранения значения, полученного с сенсора

void setup() {
// объявить ledPin как ВЫХОД:
pinMode(ledPin, OUTPUT);
}

void loop() {
// считать значение с сенсора:
sensorValue = analogRead(sensorPin);
// включить светодиод
digitalWrite(ledPin, HIGH);
// остановить программу на <sensorValue> миллисекунд:
delay(sensorValue);
// выключить светодиод:
digitalWrite(ledPin, LOW);
// остановить программу на <sensorValue> миллисекунд:
delay(sensorValue);
}

В начале этого скетча переменная sensorPin устанавливается в аналоговый пин 0, где подключен ваш потенциометр, и ledPin устанавливается в цифровой пин 13.
Создаём еще одну переменную, sensorValue, для хранения значений, считанных с сенсора.

Команда analogRead() преобразует диапазон входного напряжения от 0 до 5 вольт в цифровое значение от 0 до 1023.
Это осуществляется схемой внутри микроконтроллера, называемой аналого-цифровым преобразователем или АЦП.

Поворачивая вал потенциометра, вы изменяете количество сопротивления с обеих сторон центрального контакта (или потенциометра).
Это изменяет относительные сопротивления между центральным контактом и двумя внешними контактами, обеспечивая разное напряжение на аналоговом входе.
Когда вал повернут до конца в одну сторону, нет сопротивления между центральным контактом и контактом, подключенным к земле. Тогда напряжение на центральном контакте равно 0 вольтам, и analogRead() возвращает 0.
Когда вал повернут до конца в другую сторону, нет сопротивления между центральным контактом и контактом, подключенным к +5 вольтам. Тогда напряжение на центральном контакте равно 5 вольтам, и analogRead() возвращает 1023.
В промежутке analogRead() возвращает число от 0 до 1023, пропорциональное количеству напряжения, подаваемого на контакт.

Это значение, сохраненное в sensorValue, используется для установки задержки (delay()) для вашего цикла мерцания.
Чем выше значение, тем длиннее цикл; чем меньше значение, тем короче цикл.
Значение считывается в начале цикла, поэтому время включения/выключения всегда равно.

Вот 5 примеров использования аналогового ввода на Arduino:

Управление Яркостью Светодиода: Используйте потенциометр для регулировки яркости светодиода. Подключите светодиод к пину Arduino и используйте аналоговый вход для считывания значения с потенциометра. Меняйте яркость светодиода в зависимости от положения потенциометра.

Звуковой Генератор на Основе Света: Используйте фоторезистор, подключенный к пину Arduino, чтобы регулировать частоту звукового генератора. Чем светлее, тем выше частота звука. Может быть полезно для создания интересных эффектов в звуковых проектах.

Измерение Уровня Света: Используйте фоторезистор для измерения уровня освещенности в окружающей среде. Преобразуйте аналоговое значение в проценты, чтобы отобразить степень освещенности. Это может быть полезно, например, для автоматического управления подсветкой в помещении.

Термостат на Основе Температуры: Подключите термистор (термический резистор) к аналоговому входу Arduino и создайте термостат для контроля температуры. В зависимости от измеренной температуры можно включать или выключать устройства, такие как вентилятор или обогреватель.

Измерение Уровня Звука: Используйте микрофон и аналоговый вход Arduino для измерения уровня звука в окружающей среде. Это может быть полезно для создания звуковых реакций в проектах, таких как светомузыка или звуковой индикатор громкости.

Дополнительные материалы по теме
Музыкальная клавиатура на Ардуино
Динамики ардуино. Подключение динамиков к Arduino
Аналоговый вход, аналоговый выход, вывод в последовательный монитор порта
"Подключение фоторезистора к плате Ардуино" Урок № 2
Фоторезистор 5506
Подключение пищалки (BUZZER) к плате Ардуино
Звуки Ардуино из разных динамиков.
Музыкальная шкатулка. Ардуино
VU METR Музыка в цвете
Мелодии для Ардуино на пищалке. Пример и код.