Arduino:Примеры/LedDisplay scroll multiple

Материал из Онлайн справочника
Версия от 01:50, 14 декабря 2016; Myagkij (обсуждение | вклад) (Замена текста — «<syntaxhighlight lang="c" line="GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS">» на «<syntaxhighlight lang="c" line="GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS" enclose="div">»)
(разн.) ← Предыдущая версия | Текущая версия (разн.) | Следующая версия → (разн.)
Перейти к навигацииПерейти к поиску

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


Печать на трех LED-дисплеях[1]

Этот скетч демонстрирует, как при помощи библиотеки LedDisplay и платы Arduino печатать на трех LED-дисплеях текстовую строку, а затем двигать ее влево и вправо.

Код

 
/*
 Библиотека LedDisplay 
 Язык: Arduino/Wiring
 
 Показывает на трех дисплеях Avago HCMS-297x текстовую строку,
 а затем двигает ее влево и вправо.
 
 Создан 12 июня 2008 года,
 модифицирован 11 марта 2010 года Томом Иго (Tom Igoe).
 
 */
#include <LedDisplay.h>

// задаем контакты для LED-дисплея; их можно поменять,
// но нужно переподключить контакты на самой плате: 
#define dataPin 2              // для контакта DATA на дисплее
#define registerSelect 3       // для контакта RS на дисплее
#define clockPin 4             // для контакта CLOCK на дисплее
#define enable 5               // для контакта ENABLE на дисплее
#define reset 6                // для контакта RESET на дисплее

#define displayLength 24        // общее количество символов на трех дисплеях


// создаем экземпляр класса LedDisplay:
LedDisplay myDisplay = LedDisplay(dataPin, registerSelect, clockPin, 
enable, reset, displayLength);

int brightness = 15;           // яркость экрана
int myDirection = 1;           // направление движения (-1 = влево, 1 = вправо)

void setup() {
  Serial.begin(9600);
  // инициализируем библиотеку:
  myDisplay.begin();
  myDisplay.clear();
  myDisplay.setString("Aardvarks mark the park after dark.");  //  "Ехал грека через реку, видит грека в реке рак"
  myDisplay.setBrightness(brightness); 
  delay(100);
}

void loop() {

  // если, строка выходит за пределы экраны, меняем ее направление;
  // с правой стороны она выходит за пределы экрана, достигнув 
  // 8-ой позиции; слева – достигнув позиции, которая меньше,
  // чем длина строки:
  if ((myDisplay.getCursor() > displayLength) ||
    (myDisplay.getCursor() <= -(myDisplay.stringLength()))) {
    myDirection = -myDirection;
    delay(1000);
  }
  
  // двигаем строку:
  myDisplay.scroll(myDirection);
  delay(100);
}

См.также

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