Мы рассмотрим новый модуль - Keypad, научимся считывать данные с него и передавать в компьютер. Кроме этого сделаем светофор, который управляется при помощи этого модуля!
Присоедините Keypad к COM-порту и прочитайте данные с него в Мониторе порта Arduino (см. пример в библиотеке)
2. Сделайте так, чтобы сигнал с первой кнопки (D0) управлял красным светодиодом (выключал его).
подсказка: для этого необходимо число 255 в программе умножить на результат чтения данных с датчика.
3. Сделайте аналогично чтобы кнопка D1 управляла желтым светодиодом, а кнопка D2 зелёным светодиодом.
Добавьте в программу, чтобы регулятор на клавиатуре задавал уровень яркости тех светодиодов, которые включены в текущий момент.
Мы рекомендуем сначала освоить материал и попробовать сделать программу самостоятельно! А потом проверить себя, посмотрев наш вариант решения:
#include <Eryoma.h> // Подключаем библиотеку
Eryoma eryoma; // Создаём экземпляр класса Eryoma
void setup() {
eryoma.setupConnector(ePort1, TrafficLight); // Указываем, что на 1 порте подключен модуль TrafficLight
eryoma.setupConnector(ePort4, Keypad); // Указываем, что на 1 порте подключен модуль Keypad
}
void loop() {
/* **********************************************************
Если раньше мы записывали значение либо 0 либо 255,
то теперь мы должны привязать его к кнопке.
Если кнопка не нажата, eryoma.read(); вернет значение 1, если нажата, то 0.
Соответственно:
eryoma.read(ePort4, D0) * 255 = 0 * 255 = 0 (и светодиод гореть не будет)
eryoma.read(ePort4, D0) * 255 = 1 * 255 = 255 (светодиод гореть будет)
********************************************************** */
eryoma.write(ePort1, eryoma.read(ePort4, D0) * 255, eryoma.read(ePort4, D1) * 255, eryoma.read(ePort4, D2) * 255);
}
#include <Eryoma.h> // Подключаем библиотеку
Eryoma eryoma; // Создаём экземпляр класса Eryoma
void setup() {
eryoma.setupConnector(ePort1, TrafficLight); // Указываем, что на 1 порте подключен модуль TrafficLight
eryoma.setupConnector(ePort4, Keypad); // Указываем, что на 4 порте подключен модуль Keypad
}
void loop() {
/***********************************************************
Если раньше мы записывали значение либо 0 либо 255,
то теперь мы должны привязать его к кнопке.
Если кнопка не нажата, eryoma.read(); вернет значение 1, если нажата, то 0.
Соответственно:
eryoma.read(ePort4, D0) * 255 = 0 * 255 = 0 (и светодиод гореть не будет)
eryoma.read(ePort4, D0) * 255 = 1 * 255 = 255 (светодиод гореть будет)
***********************************************************/
eryoma.write(ePort1, eryoma.read(ePort4, D0) * eryoma.read(ePort4, An) / 4, eryoma.read(ePort4, D1) * eryoma.read(ePort4, An) / 4, eryoma.read(ePort4, D2) * eryoma.read(ePort4, An) / 4);
}