- •Курс «Основы робототехники». Занятие 6 Аналоговый ввод
- •Применение аналогового ввода:
- •Практическое занятие 1. Опрос переменного резистора
- •Практическое занятие 2. Управление яркостью светодиода, чтение в Монитор порта
- •Практическое занятие 3. Опрос аналогового датчика освещенности
- •Практическое занятие 4. Опрос аналогового датчика температуры
- •Практическое занятие 5. Опрос кнопок шилда с жк индикатором
- •Практическое занятие 6. Робот-светофил или следующий по линии, на фоторезисторах
- •Домашнее задание
Курс «Основы робототехники». Занятие 6 Аналоговый ввод
Arduino Uno на пинах аналогового ввода A0…A5 может определять определенный уровень напряжения от 0 до +5 В (например, 1 В, 3 В и т.д.),
Опрос аналогового входа проводится командой analogRead:
analogRead(аналоговый пин);
В качестве аналогового пина в Arduino Uno можно указать А0…А5
Команда выдает значения от 0 до 1023, соответствующие значениям от 0 до 5 В на входе (0 = 0 В, 1023 = 5 В, 512 = 2,5 В и т.д.)
Применение аналогового ввода:
управление уровнем с помощью переменного резистора, например, громкостью звука, яркостью света и т.д.
чтение информации с аналоговых датчиков (например, температуры, освещенности, громкости звука, уровня примесей в воздухе, магнитного поля), которые выдают уровень напряжения, соответствующий уровню измеряемого параметра
измерение уровня напряжения на батареях и аккумуляторах (при этом уровень напряжения выше +5 В переводится в диапазон 0…+5 В, используя делитель напряжения на двух резисторах)
измерение тока (например, определения, какой ток генерирует солнечная батарея, ветрогенератор), измеряя напряжение на резистивном шунте (резисторе очень малого сопротивления – порядка 1 Ом)
опрос нескольких кнопок, подключенных к одному аналоговому входу
Практическое занятие 1. Опрос переменного резистора
Нужные компоненты:
переменный резистор
три провода со штырьками на обоих концах: красный (+5 В), синий или черный (Gnd), один произвольного цвета (но не красного, синего или черного)
Переменный резистор можно представить как два последовательно соединенных резистора, где средний вывод – точка соединения. Данная схема является делителем напряжения – на резисторе, обладающем бОльшим сопротивлением, падает бОльшее напряжение. Поворачивая ручку переменного резистора, мы меняем соотношение сопротивлений и таким образом меняем напряжение на средней ножке.
подключите переменный резистор по схеме
запустите среду разработки Arduino IDE и загрузите в контроллер программу Файл / Примеры / Analog / AnalogInput
попробуйте поворачивать ручку резистора. Светодиод L на плате должен мигать с периодом, зависящим от угла поворота резистора (который меняет напряжение на средней ножке)
Практическое занятие 2. Управление яркостью светодиода, чтение в Монитор порта
добавьте к предыдущей схеме светодиод с токоограничивающим резистором (на контакт D9), который будет изменять яркость в зависимости от уровня напряжения на A0:
загрузите в контроллер программу Файл / Примеры / Analog / AnalogInOutSerial
В данной программе для пересчета из диапазона входных значений 0…1023 (считанный analogRead) в диапазон выходных значений 0…255 (записываемый analogWrite) используется команда map:
map (пересчитываемое число, минимум входного, максимум входного, минимум выходного, максимум выходного)
map(100, 0, 1023, 0, 5) = 0,488; // пересчет в 5 В (100 на входе = 0,488 Вольт)
map(5, 0, 10, 0, 1000) = 500; // середина диапазона
map(0, 1023, 0, 0, 255) = 255; // может быть и диапазон от максимума к минимуму
убедитесь, что при вращении резистора меняется яркость светодиода
для передачи данных в компьютер используется набор команд Serial:
Serial.begin(9600); // установить связь с компьютером со скоростью 9600
Serial.print("sensor = "); // вывести символы в кавычках ""
Serial.print(sensorValue); // вывести значение, хранящееся в sensorValue
Serial.print("\t"); // табуляция (аналогично нажатию кнопки Tab в Word’е
Serial.println(outputValue); // вывести значение, хранящееся в outputValue и перейти на следующую строку
откройте Монитор порта – кнопка с иконкой лупы справа сверху в среде разработки и убедитесь, что в Мониторе порта показываются числа, меняющиеся в зависимости от угла поворота резистора