Помогите создать замену строки скроллом
- Войдите на сайт для отправки комментариев
Чт, 19/01/2017 - 23:55
Как новичок в программировании, я буду признателен любой помощи в решении такой задачи. Нужно сделать замещение скроллингом одной строки (в моем примере это 01234) на другую (56789), и чтобы последняя оставалась на месте. За 2 дня упорных раздумий смог добиться только того, чтобы уезжала первая строка, а вторую все никак не получается туда прикрутить. На гифке изобразил желаемый результат. И прикрепляю скетч с тем, что у меня пока получилось сделать. Arduino Nano, дисплей от Nokia 5110 с библиотекой Adafruit.
#include <SPI.h> #include <Adafruit_GFX.h> #include <Adafruit_PCD8544.h> //(CLK, DIN, DC, CE, RST) Adafruit_PCD8544 display = Adafruit_PCD8544(8, 9, 10, 11, 12); int Vcc = 7; int Bl = 6; int Gnd = 5; String scr1("01234"); String scr2("56789"); int scrollPosition = scr2.length(); void setup() { pinMode(Vcc, OUTPUT); digitalWrite(Vcc, HIGH); pinMode(Bl, OUTPUT); analogWrite(Bl, 150); pinMode(Gnd, OUTPUT); digitalWrite(Gnd, LOW); Serial.begin(9600); display.begin(); display.cp437(true); display.setContrast(50); display.setTextColor(BLACK); display.clearDisplay(); display.display(); } void loop() { display.clearDisplay(); display.setCursor(0,16); Scroll(scr1, scr2, 5); display.display(); delay(1000); } void Scroll(String message1, String message2, int num) //Текст1, Текст2, Количество показываемых символов { for (int i = scrollPosition; i < scrollPosition + num; i++) { if ((i >= message1.length()) || (i < 0)) { display.print(" "); break; } else { display.print(message1.charAt(i)); } } scrollPosition++; if ((scrollPosition >= message1.length()) && (scrollPosition > 0)) { scrollPosition = -5; } }
Удалось!
https://www.youtube.com/watch?v=GKaJUKnALoI