Рисунок 2.12 – Горящая лампочка без (слева) и с (справа) включённой кнопкой по схеме со стягивающим резистором на ESP32
2.3 Тема 3
На рисунке 2.13 изображено стандартное последовательное подключение. Последовательное подключение, это подключение ножек разных устройств в один столбик контактов на макетной плате, т.е в один узел.
Рисунок 2.13 – Принципиальная схема подключения светодиода
На рисунке 2.14 представлена схема подключения светодиода в TinkderCAD. На рисунке 2.15 представлена схема подключения на ESP32.
Рисунок 2.14 – Схема подключения светодиода к плате Arduino UNO
19
Рисунок 2.15 – Подключение светодиода к плате ESP32
В листинге 3 представлена программа для включения/выключения светодиода для Arduino UNO и ESP32 через среду программирования Arduino IDE.
Листинг 3 – Программа для включения/выключения светодиода
// C++ code
const int LED = 8;
void setup()
{
pinMode(LED, OUTPUT);
}
void loop()
{
digitalWrite(LED, HIGH); delay(500); digitalWrite(LED, LOW); delay(500);
}
Работа программы на основе листинга 3 для esp32 показано на рисунке
2.16.
20
Рисунок 2.16 – Подключение светодиода к плате ESP32
Ключевые моменты:
– pinMode(LED, OUTPUT);
pinMode – это функция для настройки режимов портов. У портов есть 3 режима:
–INPUT – настройка порта на прием сигнала/вход
–OUTPUT – настройка порта на выдачу сигнала/выход
–INPUT_PULLUP
Синтаксис: pinMode(<Имя или номер порта>,<Режим настройки>); Таким образом в нашей программе мы 8-му порту, который мы назвали
LED настроили режим на выдачу сигнала: на зажигание или затухание светодиода.
– digitalWrite(LED, HIGH);
digitalWrite – это функция подачи цифрового сигнала Синтаксис: digitalWrite (<Имя или номер порта>,<Режим подачи>); У этой функции есть 2 режима настройки:
–HIGH – 1, true, 5 В
–LOW - 0, false, 0 B
Чтобы заставить что-то работать, нужно подать питание. То есть чтобы зажечь светодиод, нам нужно подать на выход, к которому он подключён, сигнал HIGH или 5B. Соответственно, чтобы светодиод перестал гореть, питание нужно снять, т.е. подать сигнал LOW
– Delay (миллисек.) – функция задержки сигнала.
21
Итак, подключаем светодиод к 8му пину. В функции setup() задаём для светодиода параметр выхода. Поскольку со светодиода мы не можем ничего считать, а можем только вывести, то параметр OUTPUT.
Вфункции loop() с помощью digitalWrite(LED, HIGH) – подаём сигнал
ивключаем светодиод. Ждём полсекунды с помощью delay(500). С помощью digitalWrite(LED, LOW) – подаём сигнал и выключаем светодиод. Ждём полсекунды с помощью delay(500).
Плавное изменение яркости светодиода
Ранее мы с помощью цифровых пинов просто включали и выключали светодиод. То есть подавали напряжение 5 В и 0 В. Теперь же подключим светодиод к цифровому пину с поддержкой ШИМ-сигнала, чтобы выдавать напряжение не только 0 и 5, а ещё и промежуточное. В листинге 4 представлена программа для плавного изменения яркости.
Листинг 4 – Программа для плавного изменения якрости светодиода
// C++ code
const int LED = 8;
void setup()
{
pinMode(LED, OUTPUT);
}
void loop()
{
for (int i=0; i<256; i = i+1) { analogWrite(LED, i); delay(10);
}
for (int i = 255; i>=0; i = i-1) { analogWrite(LED, i);
delay(10);
}
}
Функция analogWrite() имеет два аргумента: номер контакта и 8-разряд- ное значение от 0 до 255, которое устанавливается на этом контакте. Что будет происходить со светодиодом при выполнении программы? Вы будете наблюдать, как свечение светодиода изменяется от тусклого к яркому в одном
22
