2025 Автор: John Day | [email protected]. Последнее изменение: 2025-01-13 06:58
В предыдущем уроке я сделал индикацию потенциометра с помощью светодиода RGB Ring Neo Pixel. Вы можете увидеть это в статье «Индикатор Potentio использует неопиксель RGB».
А сегодня я покажу индикатор потенциатора с помощью светодиодного метрического дисплея MAX7219.
Следуйте инструкциям ниже, чтобы сделать это.
Шаг 1. Необходимые компоненты
Обязательные компоненты:
- Ардуино нано
- Потенциометр
- Светодиодный матричный дисплей Max7219
- Перемычка
- Совет проекта
- USB мини
- ноутбук
Требуемая библиотека
LedControl
Шаг 2: Схема
Чтобы собрать компоненты, см. Схематический чертеж выше, вы также можете увидеть информацию ниже:
Arduino для светодиодов и потенциалов
+ 5 В ==> VCC и 3. потенциалы
GND ==> GND и 1. потенциалы
D6 ==> DataIn
D7 ==> CLK
D8 ==> CS / Загрузить
Шаг 3: программирование
Используйте приведенный ниже код, чтобы создать ait:
#include "LedControl.h"
/*
Теперь нам нужен LedControl для работы. ***** Эти номера контактов, вероятно, не будут работать с вашим оборудованием. ***** Контакт 6 подключен к DataIn, контакт 7 подключен к CLK, контакт 8 подключен к LOAD. У нас есть только один MAX72XX. * /
LedControl lc = LedControl (6, 7, 8, 1);
unsigned long delaytime = 100;
void setup () {
lc.shutdown (0, ложь); lc.setIntensity (0, 8); lc.clearDisplay (0); } недействительный цикл () {int val = analogRead (A0); val = карта (val, 0, 1023, 0, 8);
если (val == 1)
{
lc.setRow (0, 0, B10000000);
}
если (val == 2)
{lc.setRow (0, 0, B10000000); lc.setRow (0, 1, B10000000); } if (val == 3) {
lc.setRow (0, 0, B10000000);
lc.setRow (0, 1, B10000000); lc.setRow (0, 2, B10000000); } if (val == 4) {
lc.setRow (0, 0, B10000000);
lc.setRow (0, 1, B10000000); lc.setRow (0, 2, B10000000); lc.setRow (0, 3, B10000000); } if (val == 5) {
lc.setRow (0, 0, B10000000);
lc.setRow (0, 1, B10000000); lc.setRow (0, 2, B10000000); lc.setRow (0, 3, B10000000); lc.setRow (0, 4, B10000000); } если (val == 6) {lc.setRow (0, 0, B10000000); lc.setRow (0, 1, B10000000); lc.setRow (0, 2, B10000000); lc.setRow (0, 3, B10000000); lc.setRow (0, 4, B10000000); lc.setRow (0, 5, B10000000); } если (val == 7) {lc.setRow (0, 0, B10000000); lc.setRow (0, 1, B10000000); lc.setRow (0, 2, B10000000); lc.setRow (0, 3, B10000000); lc.setRow (0, 4, B10000000); lc.setRow (0, 5, B10000000); lc.setRow (0, 6, B10000000); } if (val == 8) {lc.setRow (0, 0, B10000000); lc.setRow (0, 1, B10000000); lc.setRow (0, 2, B10000000); lc.setRow (0, 3, B10000000); lc.setRow (0, 4, B10000000); lc.setRow (0, 5, B10000000); lc.setRow (0, 6, B10000000); lc.setRow (0, 7, B10000000); } lc.clearDisplay (0); }
Шаг 4: Результат
После программирования результаты будут выглядеть следующим образом.
Если потенциометр повернуть вправо, светодиоды, находящиеся под напряжением, будут все чаще следовать за количеством оборотов.
Если горшок повернуть влево, световой индикатор будет все меньше и меньше соответствовать силе вращения.