Помогите создать замену строки скроллом
- Войдите на сайт для отправки комментариев
Чт, 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