Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // include the library
- #include <LCD.h>
- // =============================================
- // Adjust this block of code if you have another LCD (e.g. direct connected)
- #include <LiquidCrystal_I2C.h>
- #define I2C_ADDR 0x3f
- #define BACKLIGHT_PIN 3
- #define En_pin 2
- #define Rw_pin 1
- #define Rs_pin 0
- #define D4_pin 4
- #define D5_pin 5
- #define D6_pin 6
- #define D7_pin 7
- LiquidCrystal_I2C lcd(I2C_ADDR, En_pin, Rw_pin, Rs_pin, D4_pin, D5_pin, D6_pin, D7_pin, BACKLIGHT_PIN, POSITIVE);
- // =============================================
- // it's a 16x2 LCD so...
- int screenWidth = 16;
- int screenHeight = 2;
- int countMovement = 0;
- int stringStart = 0;
- int stringStop = 0;
- int scrollCursor = 0;
- void setup() {
- Serial.begin(9600);
- lcd.begin(screenWidth, screenHeight);
- }
- void loop() {
- lcd.clear();
- lcd.setCursor(0, 1);
- lcd.print("Scroll-row0");
- scroll(0, "The quick brown fox jumps over the lazy dog",200);
- delay(2000);
- lcd.clear();
- lcd.setCursor(0, 0);
- lcd.print("Scroll-row1");
- scroll(1, "This line scrolls normal (200ms delay)", 200 );
- delay(2000);
- lcd.clear();
- lcd.setCursor(0, 0);
- lcd.print("Scroll-row1");
- scroll(1, "This line scrolls fast (100ms delay)", 100 );
- delay(2000);
- }
- // ==========================================
- void scroll(int row, String line, int speed) {
- countMovement = 0;
- stringStart = 0;
- stringStop = 0;
- scrollCursor = 0;
- // Serial.print(countMovement); Serial.print("-"); Serial.println(line.length() + 1);
- while ( ( countMovement ) < (line.length() + 2 ) )
- {
- lcd.setCursor(scrollCursor, row);
- // Serial.print("Cursor: "); Serial.print(scrollCursor); Serial.print(" "); Serial.println(row);
- lcd.print(line.substring(stringStart, stringStop));
- // Serial.println( line.substring(stringStart, stringStop) );
- delay(speed);
- if (stringStart == 0 && scrollCursor > 0) {
- // Serial.println(scrollCursor);
- scrollCursor--;
- stringStop++;
- } else if (stringStart == stringStop) {
- stringStart = stringStop = 0;
- scrollCursor = screenWidth;
- } else if (stringStop == line.length() && scrollCursor == 0) {
- stringStart++;
- } else {
- stringStart++;
- stringStop++;
- }
- countMovement++;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement