08. Светодиодный индикатор

Светодиодный индикатор (LED)

Устройство светодиода

Устройства, называемые индикаторами, позволяют простому электронному прибору или сложному роботу общаться с человеком на языке примитивных сигналов. Существует множество различных по принципу действия индикаторов, которые преследуют одну цель сообщить человеку о состоянии системы. Так, например, индикатор питания монитора дает понять подключен ли последний к источнику энергии.
Самый простой индикатор, который мы используем в первой лабораторной работе, называется светоизлучающим диодом. Это устройство, представляет собой полупроводниковый прибор, способный излучать свет при пропускании через него электрического тока в прямом направлении (от анода к катоду). Ниже приведена схема типичного светодиода с линзой.

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

Функция вывода цифровых данных

Для выводы высокого или низкого уровня сигнала на один из контактов общего назначения, в редакторе программ Arduino IDE используется функция digitalWrite . Вызов этой функции имеет вид:

digitalWrite( номер_контакта, уровень_сигнала );

где аргумент уровень_сигнала может принимать два значения: HIGH (высокий, +5В) или LOW (низкий).

Но чтобы контакт №2 именно выводил сигнал, а не принимал его, потребуется использовать специальную функцию для установки режима контактов pinMode. Формат этой функции таков:

pinMode( номер_контакта, режим_контакта );

где аргумент режим_контакта может принимать значения: OUTPUT (вывод) и INPUT (ввод).

С учетом указанного выше, чтобы установить на выводе №2 высокий уровень сигнала достаточно запустить следующую программу.

void setup() {
pinMode( 2, OUTPUT ); // установка 2го контакта в режим вывода
digitalWrite( 2, HIGH ); // перевод вывода №2 в активное состояние
}
void loop() {
}

Задания

Задание 1. Мигающий светодиод

Результат работы
Сразу после запуска программы, светодиод начинает мигать один раз в секунду.

Используемые компоненты :

Важно отметить, что напряжение питания светодиода варьируется от 1.85 до 2.5 вольт, при рекомендуемой силе тока 20мА. Для правильной работы прибора, в цепь следует добавить ограничивающий резистор (от 200Ом до 500Ом). Ниже представлена электрическая схема подключения светодиода к Arduino Uno, а также макет собранного устройства.

Принципиальная схема

Внешний вид макета

Чтобы мигать светодиодом, мы будем последовательно зажигать его, передавая на ногу №2 сигнал HIGH , а затем гасить с помощью сигнала LOW. Между включением и выключением светодиода обязательно нужно поставить задержку в несколько сотен миллисекунд, иначе мы не заметим как светодиод будет мигать. Вспомним, что контроллер Arduino штука очень быстрая, он может включать и выключать светодиод тысячи раз в секунду! Это во много раз чаще, чем мигает обычная
лампа накаливания.

int led = 2;
void setup() {
pinMode(led, OUTPUT); // установка 2го
контакта в режим вывода
}
void loop() {
digitalWrite(led, HIGH); // перевод вывода №2 в активное состояние
delay(1000); // пауза 1секунда
digitalWrite(led, LOW); // перевод вывода №2 в неактивное состояние
delay(1000); // пауза 1секунда
}

Задание 2. Одновременная активация двух светодиодов

Результат работы
Сразу после запуска программы, оба светодиода начинают синхронно мигать.

Используемые компоненты :

Схема включения второго светодиода аналогична схемам, представленным в предыдущем задании.
Второй светодиод подключается к выводу №3 .
Принципиальная схема

Внешний вид макета

Управляющая программа имеет вид:

int led_1 = 2;
int led_2 = 3;
void setup() {
pinMode(led_1, OUTPUT); // установка 2го контакта в режим вывода
pinMode(led_2, OUTPUT); // установка 3го контакта в режим вывода
}
void loop() {
digitalWrite(led_1, HIGH); // перевод вывода №2 в активное состояние
digitalWrite(led_2, HIGH); // перевод вывода №3 в активное состояние
delay(1000); // пауза 1секунда
digitalWrite(led_1, LOW); // перевод вывода №2 в неактивное состояние
digitalWrite(led_2, LOW); // перевод вывода №3 в неактивное состояние
delay(1000); // пауза 1секунда
}

 

Задание 3. Проблесковые маячки (самостоятельно)

Результат работы
После запуска программы, два светодиода начинают мигать с периодом 0.3 секунды. При этом, если один светодиод горит, второй в этот момент должен быть погашен.

Задание 4. Светофор (самостоятельно)

Результат работы
После запуска программы, три светодиода начинают зажигаться в следующей последовательности:
1) Все гаснут, зеленый зажигается на 3 секунды.
2) Зеленый мигает 3 секунды.
3) Все гаснут, желтый зажигается на 1 секунду
4) Все гаснут, красный зажигается на 3 секунды

Категория: Arduino теория | Добавил: shadrinuro (2019-04-07)
Просмотров: 487 | Рейтинг: 0.0/0
Всего комментариев: 0
avatar