Arduino:Примеры/LedDisplay scroll multiple: различия между версиями

Материал из Онлайн справочника
Перейти к навигацииПерейти к поиску
м (Замена текста — «<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">»)
 
Нет описания правки
 
(не показана 1 промежуточная версия этого же участника)
Строка 9: Строка 9:
==Код==
==Код==


<syntaxhighlight lang="c" line="GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS" enclose="div">  
<syntaxhighlight lang="c" line="GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS">  
/*
/*
  Библиотека LedDisplay  
  Библиотека LedDisplay  
Строка 74: Строка 74:


<references />
<references />
{{Навигационная таблица/Портал/Arduino}}
[[Категория:Пример]]
[[Категория:Пример]]
[[Категория:Примеры]]
[[Категория:Примеры]]
[[Категория:Пример программирования Arduino]]
[[Категория:Пример программирования Arduino]]
[[Категория:Примеры программирования Arduino]]
[[Категория:Примеры программирования Arduino]]

Текущая версия от 12:35, 8 июля 2023

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


Печать на трех 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);
}

См.также

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