Cat hungry.png
Здравствуйте! Собираем деньги на перевод материалов по электронике(https://www.allaboutcircuits.com/education/). Реквизиты указаны здесь.

Arduino:Примеры/Demo for driving more than one MAX72XX

Материал из Онлайн справочника
Перейти к: навигация, поиск

Перевод: Максим Кузьмин (Cubewriter)
Перевел 2686 статей для сайта.

Контакты:

Проверка/Оформление/Редактирование: Мякишев Е.А.


Управление двумя и более MAX72xx[1]

Этот скетч демонстрирует, как при помощи одного объекта LedControl обращаться к двум и более чипам MAX72xx. Таким образом, для этого скетча вам понадобится как минимум два MAX72xx, каскадно подключенных к Arduino.

Скетч, впрочем, не делает ничего особенно интересного. Он состоит из большого цикла, в котором все светодиоды на всех девайсах то включаются, то выключаются – один за другим.

Другая точка интереса – это блок setup(), где инициализируются все устройства, манипуляции с которыми выполняются в цикле.

Внимание! Номера контактов к коде нужно поменять на те, что соответствуют вашему проекту.

Код

  1.  
  2. // подключаем библиотеку (это нужно делать всегда):
  3. #include "LedControl.h"
  4.  
  5. /*
  6.  Теперь настраиваем объект LedControl.
  7.  
  8.  Эти номера контактов, возможно, не будут работать в вашем проекте.
  9.  Если необходимо, поменяйте их.
  10.  
  11.  12-ый контакт подключен к DataIn.
  12.  11-ый контакт подключен к CLK.
  13.  10-ый контакт подключен к LOAD.
  14.  
  15.  Задайте, пожалуйста, количество используемых MAX72xx. Впрочем,
  16.  максимум «8», выставленный по умолчанию, тоже будет работать.
  17. */
  18. LedControl lc=LedControl(12,11,10,8);
  19.  
  20. /* Делаем небольшую задержку между обновлениями дисплея. */
  21. unsigned long delaytime=500;
  22.  
  23. /*
  24.  На этот раз у нас больше одного устройства.
  25.  Однако всех их нужно инициализировать в индивидуальном порядке.
  26. */
  27. void setup() {
  28.   // мы уже задали количество чипов, когда создали LedControl:
  29.   int devices=lc.getDeviceCount();
  30.   // нам нужно инициализировать все чипы в цикле:
  31.   for(int address=0;address<devices;address++) {
  32.     /* По умолчанию при запуске у MAX72XX включается энергосберегающий
  33.    режим. */
  34.     lc.shutdown(address,false);
  35.     /* Задаем среднюю яркость. */
  36.     lc.setIntensity(address,8);
  37.     /* Очищаем дисплей. */
  38.     lc.clearDisplay(address);
  39.   }
  40. }
  41.  
  42. void loop() {
  43.   // считываем количество каскадно подключенных устройств:
  44.   int devices=lc.getDeviceCount();
  45.  
  46.   // инициализируем все устройства в цикле:
  47.   for(int row=0;row<8;row++) {
  48.     for(int col=0;col<8;col++) {
  49.       for(int address=0;address<devices;address++) {
  50.         delay(delaytime);
  51.         lc.setLed(address,row,col,true);
  52.         delay(delaytime);
  53.         lc.setLed(address,row,col,false);
  54.       }
  55.     }
  56.   }
  57. }

См.также

Внешние ссылки

  1. playground.arduino.cc - Democode for the LedControl-library