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

Материал из Онлайн справочника
Перейти к навигацииПерейти к поиску
Версия для печати больше не поддерживается и может содержать ошибки обработки. Обновите закладки браузера и используйте вместо этого функцию печати браузера по умолчанию.

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


Перемещение строки влево/вправо[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 8        // количество символов на дисплее


// создаем экземпляр класса 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("weasels smell funny!");  //  "шпилые вантульки растутырились!"
  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);
}

См.также

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