ардуино и SM74HC245D
- Войдите на сайт для отправки комментариев
Ср, 23/12/2020 - 17:17
Всем привет . Есть экран бегущая строка из трёх сегментов 16*32 под управлением SM74HC245D . К сегментам идет шина 16 линий . Нашёл распиновку . Подскажите как распиновку на UNO сделать , и какую библиотеку выбрать ?
так в той статье на хабре расписано.
Прочитал и посмотрел , спасибо. Хабра это что ?
Библиотеки копирую из его же видео ?
Эта картинка из какой статьи - дайте ссылку.
Судя по распиновке - это обычная DMD светодиодная матрица. Для таких матриц есть куча библиотек. В том числе тут на форуме :)
Эта картинка из какой статьи - дайте ссылку.
Судя по распиновке - это обычная DMD светодиодная матрица. Для таких матриц есть куча библиотек. В том числе тут на форуме :)
Ну я так и думал, обычная DMD
Автор статьи накрутил там сложностей. написал код в ИАРе :) Наверно чтоб никто повторить не смог
Для Уно есть готовые Ардуино библиотеки
https://github.com/freetronics/DMD
https://www.arduino.cc/reference/en/libraries/dmd2/
Для СТМ32 посоветую свою собственную библиотеку, выложенную на нашем форуме:
http://arduino.ru/forum/proekty/dmdstm32-versiya-biblioteki-dmd-dlya-stm32duino
Кстати, в ветке довольно много информации по таким матрицам вообще, а не только для СТМ32
Спасибо.
Скачал вашу библиотеку . Попробовал запустить пример . Выдал
Arduino: 1.8.13 (Linux), Плата:"Arduino Uno" dmd_demo:48:19: error: no matching function for call to 'SPIClass::SPIClass(int)' SPIClass dmd_spi(2); ^ In file included from /home/fedot/snap/arduino/current/Arduino/libraries/DMD_STM32-master/DMD_STM32.h:47:0, from /home/fedot/snap/arduino/current/Arduino/libraries/DMD_STM32-master/examples/STM32F1/dmd_demo/dmd_demo.ino:42: /snap/arduino/50/hardware/arduino/avr/libraries/SPI/src/SPI.h:156:7: note: candidate: constexpr SPIClass::SPIClass() class SPIClass { ^~~~~~~~ /snap/arduino/50/hardware/arduino/avr/libraries/SPI/src/SPI.h:156:7: note: candidate expects 0 arguments, 1 provided /snap/arduino/50/hardware/arduino/avr/libraries/SPI/src/SPI.h:156:7: note: candidate: constexpr SPIClass::SPIClass(const SPIClass&) /snap/arduino/50/hardware/arduino/avr/libraries/SPI/src/SPI.h:156:7: note: no known conversion for argument 1 from 'int' to 'const SPIClass&' /snap/arduino/50/hardware/arduino/avr/libraries/SPI/src/SPI.h:156:7: note: candidate: constexpr SPIClass::SPIClass(SPIClass&&) /snap/arduino/50/hardware/arduino/avr/libraries/SPI/src/SPI.h:156:7: note: no known conversion for argument 1 from 'int' to 'SPIClass&&' dmd_demo:62:19: error: 'PB11' was not declared in this scope #define DMD_PIN_A PB11 ^ /home/fedot/snap/arduino/current/Arduino/libraries/DMD_STM32-master/examples/STM32F1/dmd_demo/dmd_demo.ino:66:9: note: in expansion of macro 'DMD_PIN_A' DMD dmd(DMD_PIN_A, DMD_PIN_B, DMD_PIN_nOE, DMD_PIN_SCLK, DISPLAYS_ACROSS, DISPLAYS_DOWN, dmd_spi ); ^~~~~~~~~ /home/fedot/snap/arduino/current/Arduino/libraries/DMD_STM32-master/examples/STM32F1/dmd_demo/dmd_demo.ino:62:19: note: suggested alternative: 'B11' #define DMD_PIN_A PB11 ^ /home/fedot/snap/arduino/current/Arduino/libraries/DMD_STM32-master/examples/STM32F1/dmd_demo/dmd_demo.ino:66:9: note: in expansion of macro 'DMD_PIN_A' DMD dmd(DMD_PIN_A, DMD_PIN_B, DMD_PIN_nOE, DMD_PIN_SCLK, DISPLAYS_ACROSS, DISPLAYS_DOWN, dmd_spi ); ^~~~~~~~~ dmd_demo:63:19: error: 'PB12' was not declared in this scope #define DMD_PIN_B PB12 ^ /home/fedot/snap/arduino/current/Arduino/libraries/DMD_STM32-master/examples/STM32F1/dmd_demo/dmd_demo.ino:66:20: note: in expansion of macro 'DMD_PIN_B' DMD dmd(DMD_PIN_A, DMD_PIN_B, DMD_PIN_nOE, DMD_PIN_SCLK, DISPLAYS_ACROSS, DISPLAYS_DOWN, dmd_spi ); ^~~~~~~~~ /home/fedot/snap/arduino/current/Arduino/libraries/DMD_STM32-master/examples/STM32F1/dmd_demo/dmd_demo.ino:63:19: note: suggested alternative: 'PB2' #define DMD_PIN_B PB12 ^ /home/fedot/snap/arduino/current/Arduino/libraries/DMD_STM32-master/examples/STM32F1/dmd_demo/dmd_demo.ino:66:20: note: in expansion of macro 'DMD_PIN_B' DMD dmd(DMD_PIN_A, DMD_PIN_B, DMD_PIN_nOE, DMD_PIN_SCLK, DISPLAYS_ACROSS, DISPLAYS_DOWN, dmd_spi ); ^~~~~~~~~ dmd_demo:65:22: error: 'PB10' was not declared in this scope #define DMD_PIN_SCLK PB10 ^ /home/fedot/snap/arduino/current/Arduino/libraries/DMD_STM32-master/examples/STM32F1/dmd_demo/dmd_demo.ino:66:44: note: in expansion of macro 'DMD_PIN_SCLK' DMD dmd(DMD_PIN_A, DMD_PIN_B, DMD_PIN_nOE, DMD_PIN_SCLK, DISPLAYS_ACROSS, DISPLAYS_DOWN, dmd_spi ); ^~~~~~~~~~~~ /home/fedot/snap/arduino/current/Arduino/libraries/DMD_STM32-master/examples/STM32F1/dmd_demo/dmd_demo.ino:65:22: note: suggested alternative: 'B10' #define DMD_PIN_SCLK PB10 ^ /home/fedot/snap/arduino/current/Arduino/libraries/DMD_STM32-master/examples/STM32F1/dmd_demo/dmd_demo.ino:66:44: note: in expansion of macro 'DMD_PIN_SCLK' DMD dmd(DMD_PIN_A, DMD_PIN_B, DMD_PIN_nOE, DMD_PIN_SCLK, DISPLAYS_ACROSS, DISPLAYS_DOWN, dmd_spi ); ^~~~~~~~~~~~ exit status 1 no matching function for call to 'SPIClass::SPIClass(int)'Пример DMD Demo.
Подключил к цифровым пинам ардуино . PB1 к такому же цифровому выводу ардуино , так же все остальные .
Какая ардуина у вас? Для уно там отдельные примеры
У меня уно . Какие примеры подойдут ?
examples\AVR
А где взять это пример ? У себя я этого примера не нашёл .
Поставил пример dmd_cyr_uno выдал ошибку
dmd_cyr_uno:12:10: fatal error: TimerOne.h: No such file or directory #include <TimerOne.h>Поставил пример dmd_cyr_uno выдал ошибку
значит надо скачать и поставить TimerOne.h ... удивительно, правда?
https://github.com/PaulStoffregen/TimerOne
TimerOne.h это библиотека ?
Установил вот что полдучилось при запуске.
Arduino: 1.8.13 (Linux), Плата:"Arduino Uno" /tmp/arduino_modified_sketch_19792/dmd_cyr_uno.ino:17:36: warning: extra tokens at end of #include directive #include "st_fonts/UkrRusArial14.h"; ^ Скетч использует 10660 байт (33%) памяти устройства. Всего доступно 32256 байт. Глобальные переменные используют 453 байт (22%) динамической памяти, оставляя 1595 байт для локальных переменных. Максимум: 2048 байт. avrdude: stk500_recv(): programmer is not responding avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0x00 avrdude: stk500_recv(): programmer is not responding avrdude: stk500_getsync() attempt 2 of 10: not in sync: resp=0x00 avrdude: stk500_recv(): programmer is not responding avrdude: stk500_getsync() attempt 3 of 10: not in sync: resp=0x00 avrdude: stk500_recv(): programmer is not responding avrdude: stk500_getsync() attempt 4 of 10: not in sync: resp=0x00 avrdude: stk500_recv(): programmer is not responding avrdude: stk500_getsync() attempt 5 of 10: not in sync: resp=0x00 avrdude: stk500_recv(): programmer is not responding avrdude: stk500_getsync() attempt 6 of 10: not in sync: resp=0x00 avrdude: stk500_recv(): programmer is not responding avrdude: stk500_getsync() attempt 7 of 10: not in sync: resp=0x00 avrdude: stk500_recv(): programmer is not responding avrdude: stk500_getsync() attempt 8 of 10: not in sync: resp=0x00 avrdude: stk500_recv(): programmer is not responding avrdude: stk500_getsync() attempt 9 of 10: not in sync: resp=0x00 avrdude: stk500_recv(): programmer is not responding avrdude: stk500_getsync() attempt 10 of 10: not in sync: resp=0x00 Проблема загрузки в плату. Помощь по загрузке: http://www.arduino.cc/en/Guide/Troubleshooting#upload .TimerOne.h это библиотека ?
да, одна из стандартных библиотек Ардуино.
Хм... может Вы напишете, что Вы пытаетесь сделать... А то судя по вопросам, это чуть ли не первый Ваш ардуино-проект. Если да - то сложновато для начинающего. Может что-то для начала попроще выбрать. а через несколько месяцев вернуться к матрицам?
Установил вот что полдучилось при запуске.
эта ошибка к моему коду отношения не имеет - у вас компьютер не имеет связи с платой ардуино. Для проверки попробуйте загрузить в плату любой другой скетч.
Жму информация о плате выдает мне серийник .
Вроде инициализация прошла . Панель мёртвая . Буду разбираться .