Hi all,
I want to scroll text on my OLED screen its and I2C one 128x32 pixels.
I had done it with simple display.startscrollright() function with parameters as 0x00,0x00 to scroll first line only but it didn't work because i had to set the cursor to (0,0) in loop. I tried it moving to setup but as i have to update RTC time it also didn't worked well. So, is there anyone who can help me with this??
#include <RTClib.h>
#include <Wire.h>
#include <Adafruit_SSD1306.h>
#include <Adafruit_GFX.h>
#define OLED_ADDR 0x3C
RTC_DS3231 rtc;
char mon[12][4] = {"JAN","FEB","MAR","APR","MAY","JUN","JUL","AUG","SEP","OCT","NOV","DEC"};
char t[32];
char daysOfTheWeek[7][20] = {"Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"};
Adafruit_SSD1306 display(-1);
void setup()
{
Serial.begin(9600);
Wire.begin();
rtc.begin();
rtc.adjust(DateTime(F(__DATE__),F(__TIME__)));
display.begin(SSD1306_SWITCHCAPVCC, OLED_ADDR);
display.clearDisplay();
display.display();
// display.startscrollright(0x00, 0x00);
//rtc.adjust(DateTime(2014, 1, 21, 3, 0, 0));
}
void loop () {
DateTime now = rtc.now();
display.setCursor(0,0);
display.clearDisplay();
display.setTextColor(WHITE);
display.setTextSize(1);
display.println(" Electronics Easy");
display.startscrollright(0x00, 0x00);
display.setCursor(0,8);
display.drawRoundRect(5, 8, 105, 16,2, WHITE);
display.print(" ");
display.print(daysOfTheWeek[now.dayOfTheWeek()]);
display.print(",");
display.print(mon[now.month()-1]);
display.print(",");
display.print(now.day(), DEC);
display.print(",");
display.println(now.year(), DEC);
display.print(" ");
int x = (now.hour(), DEC);
if (x>12)
x=x-12;
display.print(x);
display.print(":");
display.print(now.minute(), DEC);
display.print(":");
display.print(now.second(), DEC);
display.println(" HRS");
display.print(" Temp: ");
display.print(" ");
display.print(rtc.getTemperature());
display.display();
// Serial.println(rtc.getTemperature());
}