МУНИЦИПАЛЬНОЕ АВТОНОМНОЕ УЧРЕЖДЕНИЕ
ДОПОЛНИТЕЛЬНОГО ОБРАЗОВАНИЯ
МУНИЦИПАЛЬНОГО ОБРАЗОВАНИЯ ГОРОД КРАСНОДАР
«МЕЖШКОЛЬНЫЙ ЭСТЕТИЧЕСКИЙ ЦЕНТР»-
АССОЦИИРОВАННАЯ ШКОЛА ЮНЕСКО
ПЛАН-КОНСПЕКТ ЗАНЯТИЯ
Тема: "Аналоговые входы выходы. Подключение датчика линии"
Автор: Никита Олегович Шевцов,
педагог дополнительного образования
Краснодар, 2021
Тема занятия:
"Аналоговые входы выходы. Подключение датчика линии"
Тип занятия: комбинированное занятие.
Вопросы для рассмотрения:
1. Аналоговые входы.
1.1 Пример на практике
1.3 Ручная установка опорного напряжения
2. Аналоговый датчик линии
3. Пример использования с Arduino
4. Задание для детей.
ХОД ЗАНЯТИЯ
Проверка рабочего места, настройка компьютера, наличие тетрадей, ручек. Знакомство с темой занятия. Обсуждение вопросов.
1.1. Аналоговые входы.
Основным применением аналоговых входов в тематике Arduino является чтение значений аналоговых датчиков. В тоже время стоит не забыть упомянуть, что аналоговые входы могут использоваться как цифровые входы выходы
На плате Arduino UNO их 6 (A0-A5). У других плат количество может отличаться, смотрите в спецификации.
Благодаря встроенному АЦП (аналого-цифровой преобразователь), данные входы могут считывать напряжение подаваемое на них. Микроконтроллеры Atmega 328, используемые в Arduino UNO, содержат шестиканальный АЦП, разрешение которого составляет 10 бит. Это позволяет на выходе получать значения от 0 до 1023 (всего 1024 градации).
Для того чтобы считать показание на аналоговом входе следует вызвать функцию
// Производим чтение с аналогового входа A0 analogRead(0);
Данная функция возвращает значение от 0 до 1023 пропорционально напряжению на аналоговом входе
Пример на практике
Для перевода получившегося значения в вольты достаточно вычислить шаг и умножить его на получаемое значение.
Для вычисления шага поделим опорное напряжение на 1024 градации
5В / 1024 = 0.0049 Вольт
Т.е. При получаемом аналоговом значении в 500, на порт контроллера приходит ( 500 * 0.0049) 2.45В.
Пример программного кода:
float Step = 5.0F / 1024; // Вычисляем шаг Uопорн / на градацию
void setup() {
Serial.begin(9600); // Задаем скорость работы монитор порта
}
void loop() {
int analogValue = analogRead(0); // Задаем переменную analogValue для считывания показаний
float voltageValue = analogValue * Step; // Переводим в вольты (показание * шаг) Serial.println(voltageValue); // Выводим значение в вольтах в порт
delay(500); // Ждем пол секунды
}
Для того чтобы добиться более точных показаний с аналогового входа можно использовать 2 варианта:
Задает опорное напряжение относительно которого происходят аналоговые измерения.
analogReference(type);
Возможные настройки (type):
DEFAULT: установлено по умолчанию. при данной конфигурации опорное напряжение автоматически принимается за напряжение питания платы Arduino. 5В (на платформах с напряжением питания 5 В) или за 3.3 В (на платформах с напряжением питания 3.3В)
На платформах Arduino "из коробки" вывод AREF не задействован. В этом случае при настройке DEFAULT к выводу подключается внутреннее напряжение AVCC. Соединение является низко-импедансным и любое напряжение подведенное к выводу в этот момент может повредить микросхему ATmega.
INTERNAL: встроенное опорное напряжение 1.1В на микроконтроллерах ATmega168 и ATmega328, и 2.56В на ATmega8.
Это может пригодиться для более точного измерения напряжения лежащего в пределах ниже 1.1В либо 2.56В. Болле точная работа достигается за счет меньшего шага 5/1024 против 1.1/1024. Значения соответствующее или превышающее 1.1В (2.56В) будут конвертироваться АЦП в 1023.
EXTERNAL: внешний источник опорного напряжения, подключенный к выводу AREF.
После того как мы задали функцию, происходит отключение обоих внутренних источников. Теперь можно подключить внешнее напряжение, которое и будет являться опорным для АЦП. Внешнее напряжение рекомендуется подключать к выводу AREF через резистор 5 кОм.
1.3 Ручная установка опорного напряжения
Актуальна для измерения крайне малого напряжения
Искажения при работе с аналоговыми входами появляются по причине того, что по дефолту за опорное напряжение принимается 5В, в то время как стабилизаторы напряжения на плате Arduino могут немного отклоняться от эталонного значения и выдавать к примеру 4.85В. 4.85 / 1024 = 0.0047 (при эталонном шаге в 0.0049)
В случае, если под рукой имеется точный мультиметр, то можно попросту замерить питающее напряжение и вбить его в расчет, который рассматривался выше.
float Step = 4.85F / 1024; // Вычисляем шаг Uопорн / на градацию .
2. Аналоговый датчик линии
Аналоговый датчик линии предназначен для того, чтобы отличать тёмную поверхность от светлой.

Аналоговый датчик позволяет не только отличать чёрную поверхность от белой, но и распознавать оттенки серого. Это даёт вам возможность точно контролировать процесс перехода границы от чёрного к белому и наоборот, ведь результатом является усреднённое значение небольшого пятна под фотоэлементом.
После загрузки и запуска кода откройте монитор последовательного порта. Поместите датчик сначала над белой полосой, потом над границей и, наконец, над чёрной полосой. Посмотрите, как меняются показания выходного сигнала.
// указываем аналоговый пин A0 в качестве входа
#define SENSOR_PIN 0// Определяем напряжение питания Vcc (5 В или 3.3 В)
#define VCC 5.0// задаём переменные для значений аналогового сигнала в вольтах
float v;
void setup(){ // открываем последовательный порт
// и задаем стандартную скорость передачи равную 9600 б/с Serial.begin(9600);} void loop(){ // считываем показания с датчика, вычисляем уровень напряжения
int reading = analogRead(SENSOR_PIN);
v = static_cast<float>(reading)*VСС/1024.0; // ... и выводим значения на экран Serial.print("v = ");
Serial.print(v);
Serial.println(" volts");
delay(3000);
}
Датчик подключается к управляющей электронике по трём проводам. Назначение контактов 3-проводного шлейфа:
· Питание (V) — красный провод. На него должно подаваться напряжение 5 В (или 3,3 В).
· Земля (G) — чёрный провод. Должен быть соединён с землёй микроконтроллера.
· Сигнальный (S) — жёлтый провод. Подключается к аналоговому входу микроконтроллера. Через него датчик передает микроконтроллеру значение напряжения, которое зависит от оттенка серого цвета подстилающей поверхности.
Оптопара TCRT5000 — это собранные в одном корпусе светодиод (синий на рисунке) и фототранзистор n-p-n типа (чёрный на рисунке). Светодиод излучает в инфракрасном диапазоне на длине волны 950 нм. Свет отражается от поверхности и попадает на фототранзистор. Чем светлее поверхность, тем больше отражается света, чем темнее — тем меньше.
Чем больше световой поток, падающий на фототранзистор, тем меньше электрическое сопротивление между его коллектором и эмиттером. В схеме датчика фототранзистор смонтирован в нижнем плече делителя напряжения. Аналоговый сигнал считывается со средней точки делителя, расположенной между резисторами и коллектором фототранзистора (см. схему ниже).
Когда датчик находится над светлой поверхностью, сопротивление фототранзистора уменьшается, и выходное напряжение (аналоговый сигнал) тоже уменьшается. Когда поверхность тёмная и отражает мало света, увеличивается сопротивление на фототранзисторе и растет напряжение в нижнем плече делителя.
Нужно иметь ввиду, что показания датчика также зависят от расстояния до поверхности. Когда датчик слишком низко, перегородка между диодом и фототранзистором оптопары мешает транзистору принимать отраженный свет. Когда датчик слишком высоко, отраженный свет рассеивается и не доходит до датчика.
Если повернуть ручку резистора до упора по часовой стрелке (минимальное сопротивление), то датчик будет воспринимать границу между черной и белой поверхностями как размытую. Если повернуть ручку до упора против часовой стрелки (максимальное сопротивление), то для датчика граница станет резче.
Сигнальный светодиод загорается, когда датчик находится над светлой (по его мнению) поверхностью. Наличие диода позволяет более точно откалибровать датчик. Оттенок серого, над которым он загорается в зависимости от настройки, можно считать реперной точкой.
Заключительная часть занятия
Рефлексия. Итоговый опрос.
Задание: подключить датчик линии и два светодиода; при срабатывании черного цвета включать один светодиод, при срабатывании белого цвета -другой светодиод.
Скачано с www.znanio.ru
© ООО «Знанио»
С вами с 2009 года.