Arduino:Примеры/LedDisplay scroll multiple
Материал из Онлайн справочника
Перейти к навигацииПерейти к поиску
Содержание | Знакомство с Arduino | Продукты | Основы | Справочник языка Arduino | Примеры | Библиотеки | Хакинг | Изменения | Сравнение языков Arduino и Processing |
Перевод: Максим Кузьмин
Проверка/Оформление/Редактирование: Мякишев Е.А.
Печать на трех 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);
}