Почему 0 устройств, а не 1?
Я нашел в Wokwi скетч, где используется светодиодная матрица MAX7219. Предмет скетча должен отображать 0 с помощью <LedControl.h>
. Я не понимаю, почему в четвертом параметре при инициализации объекта-библиотеки необходимо отправлять 0, а не 1.
LedControl(int dataPin, int clkPin, int csPin, int numDevices=1);
Кажется, там должно быть 1, но скетч таким образом не работает.
#include <LedControl.h>
int DIN = 12;
int CS = 11;
int CLK = 10;
LedControl lc=LedControl(DIN,CLK,CS,0);
void setup(){
lc.shutdown(0,false);
lc.setIntensity(0,15);
}
void loop(){
byte zero[8]= {0x00,0x1c,0x22,0x22,0x22,0x22,0x22,0x1c};
printByte(zero);
}
void printByte(byte character []) {
int i = 0;
for (i=0;i<8;i++) {
lc.setRow(0,i,character[i]);
}
}
@Artur Krush, 👍1
Обсуждение1 ответ
На этой странице написано: "Четвертый аргумент LedControl(dataPin, clockPin,csPin,numDevices ) — это количество каскадно подключенных устройств MAX72XX... здесь разрешены только значения от 1 до 8».
Изучая исходный код LedControl в GITHUB, мы видим в файл LedControl.cpp в коде функции LedControl(), который проверяет наличие неожиданных значений для количества используемых устройств LED Matrix MAX7219:< /п>
LedControl::LedControl(int dataPin, int clkPin, int csPin, int numDevices) {
...
if(numDevices<=0 || numDevices>8 )
numDevices=8;
Мы можем увидеть, если число меньше или равно 0 или больше 8, код по умолчанию равен 8 устройствам. Таким образом, при передаче 0 код обнаружит неожиданное значение и по умолчанию создаст 8 устройств.
Спасибо. Теперь все ясно. К сожалению, я не понимаю, почему проект не работает с 1 устройством., @Artur Krush
Убедитесь, что у вас установлена последняя версия кода LedControl. Проверьте наличие обновлений в вашей Arduino IDE., @st2000
Проблема была, когда я поставил 1 устройство на инициализацию, а потом на выключение, setIntensity, setRow тоже использовал 1. Но там должен быть 0, потому что это адрес 1 устройства. Большое спасибо за помощь, @Artur Krush
- Как получить исходные файлы для библиотек Arduino?
- Ошибка: "недопустимое использование нестатической функции-члена" при вызове функции из моего собственного класса-метода
- Как подключить Wi-Fi Shield ESP-12E-ESP8266-UART-WIFI-Wireless-Shield к Arduino
- Существуют ли библиотеки сглаживания сигналов для Arduino?
- Wire.h не найден!
- Библиотека FastLED: Как настроить яркость одного пикселя в абсолютном масштабе?
- Как эта строка кода определяет, подключен ли последовательный интерфейс?
- Ошибка Specified folder/zip file does not contain a valid library
Да, согласен, 0 не верно. [На этой странице](https://wayoda.github.io/LedControl/pages/software) написано: «Четвертый аргумент LedControl(dataPin, clockPin,csPin,numDevices) — это количество каскадированных устройств MAX72XX... здесь разрешены только значения от 1 до 8.». Пожалуйста, добавьте ссылку на источник вашего кода. Возможно, там есть объяснение, почему был выбран 0., @st2000
https://wokwi.com/projects/373210641309244417 Вот этот проект. Работает с 1., @Artur Krush