Arduino:Примеры/AnalogInput
Содержание | Знакомство с Arduino | Продукты | Основы | Справочник языка Arduino | Примеры | Библиотеки | Хакинг | Изменения | Сравнение языков Arduino и Processing |
Использование входных данных для управления частотой мигания светодиода [1]
Потенциометр – это обычный резистор, чье сопротивление можно настраивать с помощью небольшой ручки-регулятора. Если потенциометр подключить к плате Arduino, она может в режиме реального времени считывать изменяющееся сопротивление, принимая его за входное значение. В данном примере мы подключим потенциометр к одному из аналоговых контактов Arduino, чтобы с его помощью регулировать частоту мерцания встроенного светодиода, подключенного к 13-ому контакту.
Необходимое оборудование
- Плата Arduino - 1 шт.
- Потенциометр или любой другой резистор с переменным сопротивлением вроде фоторезистора (плюс резистор на 10 кОм) - 1шт.
- «Родной» светодиод, подключенный к 13-ому контакту - 1шт.
Цепь
С потенциометром:

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

Подсоедините к Arduino три провода. Первый пойдет от «земли» (GND) к одному из выходных контактов потенциометра. Второй – от 5-вольтового контакта ко второму выходному контакту потенциометра. Третий – от 0-ого аналогового входного контакта к среднему контакту потенциометра.
В этом примере можно воспользоваться «родным» для Arduino светодиодом, по умолчанию подключенным к 13-ому контакту. Впрочем, если вы хотите задействовать дополнительный светодиод, подсоедините его длинную ногу (ногу с позитивным зарядом, т.е. анод) к 13-ому цифровому контакту, а короткую (с отрицательным зарядом, т.н. катод) – к контакту с «землей», расположенному рядом с этим 13-ым контактом. Поскольку сила тока, который пойдет через 13-ый контакт, будет небольшой, токоограничивающий резистор использовать не обязательно.
Схема
С потенциометром:

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

Вначале зададим три переменные – для 0-ого аналогового контакта, к которому подключен потенциометр (sensorPin), для 13-ого цифрового контакта (ledPin) и для данных, которые будут считываться от потенциометра (sensorValue).
Далее воспользуемся функцией analogRead(), которая переделает входное напряжение диапазоном от 0 до 5 вольт в численный диапазон от 0 до 1023. На «железном» уровне это выполняется за счет встроенного в Arduino аналогово-цифрового преобразователя или АЦП.
Поворачивая ручку потенциометра, вы меняете уровень сопротивления между центральным контактом и двумя боковыми контактами, а на выходе это дает разный уровень напряжения. Если выкрутить ручку до упора в одну сторону, это устранит сопротивление между центральным контактом и контактом, подсоединенным к «земле» – соответственно, уровень напряжения на центральном контакте будет «0», и analogRead() тоже вернет значение «0». Но если повернуть ручку потенциометра до упора в другую сторону, это устранит сопротивление между центральным и 5-вольтовым контактами – следовательно, уровень напряжения на центральном контакте будет равен «5», а analogRead() вернет значение «1023». Таким образом, если повернуть руку потенциометра в какую-либо промежуточную позицию, то входное напряжение, а затем и значение от analogRead() покажут результат, пропорциональный этой позиции.
Значение, хранимое в переменной sensorValue, используется для создания паузы(delay()) в мигании светодиода. Чем больше это значение, тем длиннее пауза, и наоборот.
/*
Использование входных данных для управления частотой мигания светодиода
Считывает данные от сенсора на 0-ом аналоговом контакте,
а затем использует их для включения/выключения светодиода, подключенного к 13-ому цифровому контакту.
Время между включением/выключением светодиода зависит от значения, возвращенного функцией analogRead().
Цепь:
* центральный контакт потенциометра подсоединен к 0-ому входному аналоговому контакту
* один из боковых контактов (по сути, любой) потенциометра подсоединен к «земле»,
второй оставшийся контакт – к 5-вольтовому напряжению
* анод (длинная нога) светодиода подсоединена к 13-ому цифровому выходному контакту,
катод (короткая нога)– к «земле»
* Примечание: у многих Arduino уже есть встроенный светодиод, подключенный к 13-ому контакту, поэтому дополнительный светодиод использовать не обязательно.
Создан Дэвидом Куартилье (David Cuartielles),
модифицирован 30 августа 2011 Томом Иго (Tom Igoe)
Этот код не защищен авторским правом.
http://arduino.cc/en/Tutorial/AnalogInput
*/
int sensorPin = A0; // задаем входной контакт для потенциометра
int ledPin = 13; // задаем контакт для светодиода
int sensorValue = 0; // в этой переменной будут храниться данные, полученные от сенсора (т.е. от потенциометра)
void setup() {
// объявляем ledPin выходным контактом (т.е. OUTPUT):
pinMode(ledPin, OUTPUT);
}
void loop() {
// считываем данные от потенциометра:
sensorValue = analogRead(sensorPin);
// включаем светодиод:
digitalWrite(ledPin, HIGH);
// останавливаем программу на количество миллисекунд,
// соответствующее значению в переменной sensorValue:
delay(sensorValue);
// выключаем светодиод:
digitalWrite(ledPin, LOW);
// останавливаем программу на количество миллисекунд,
// соответствующее значению в переменной sensorValue:
delay(sensorValue);
}
См.также
Внешние ссылки
развернутьПартнерские ресурсы |
---|
развернутьСправочник языка Arduino |
---|
развернутьБиблиотеки Arduino |
---|
развернутьArduino продукты |
---|
развернутьПримеры Arduino |
---|
- Страницы, использующие повторяющиеся аргументы в вызовах шаблонов
- Справочник языка Arduino
- Arduino
- Перевод от Сubewriter
- Проверка:myagkij
- Оформление:myagkij
- Редактирование:myagkij
- Страницы, где используется шаблон "Навигационная таблица/Телепорт"
- Страницы с телепортом
- Пример
- Примеры
- Пример программирования Arduino
- Примеры программирования Arduino