elpendor / ES-scraper

A scraper for EmulationStation
47 stars 41 forks source link

RTC clock on ic display arduino #54

Closed martingerek closed 8 years ago

martingerek commented 8 years ago

include

include

/*#include "ds3231.h"

define BUFF_MAX 128

uint8_t time[8]; char recv[BUFF_MAX]; unsigned int recv_size = 0; unsigned long prev, interval = 1000;*/

char *text; unsigned char second, second10, minute, minute10, hour, hour10, day, date, date10, month, month10, year, year10, i = 0; LiquidCrystal_I2C lcd(0x27, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE); void setup() { lcd.begin(16, 2); Wire.begin(); pinMode(8, INPUT_PULLUP); // Button 1 pinMode(9, INPUTPULLUP); // Button 2 } // Display data void display(){ second10 = (second & 0x70) >> 4; second = second & 0x0F; minute10 = (minute & 0x70) >> 4; minute = minute & 0x0F; hour10 = (hour & 0x30) >> 4; hour = hour & 0x0F; day = day & 0x07; date10 = (date & 0x30) >> 4; date = date & 0x0F; month10 = (month & 0x10) >> 4; month = month & 0x0F; year10 = (year & 0xF0) >> 4; year = year & 0x0F; switch(day){ case 1: text = "Pon"; break; case 2: text = "Uto"; break; case 3: text = "Str"; break; case 4: text = "Stv"; break; case 5: text = "Pia"; break; case 6: text = "Sob"; break; case 7: text = "Ned"; break;} lcd.setCursor(0, 0); lcd.print(text); lcd.setCursor(6, 0); lcd.print(date); lcd.setCursor(5, 0); lcd.print(date10); lcd.setCursor(9, 0); lcd.print(month); lcd.setCursor(8, 0); lcd.print(month10); lcd.setCursor(14, 0); lcd.print(year); lcd.setCursor(13, 0); lcd.print(year10); lcd.setCursor(13, 1); lcd.print(second); lcd.setCursor(12, 1); lcd.print(second10); lcd.setCursor(10, 1); lcd.print(minute); lcd.setCursor(9, 1); lcd.print(minute10); lcd.setCursor(7, 1); lcd.print(hour); lcd.setCursor(6, 1); lcd.print(hour10);
} // End display data // Write data void writevalue(char address, char data){ Wire.beginTransmission(0x68); Wire.write(address); Wire.write(data_); Wire.endTransmission();} // End write data void loop() {

/* char in; char tempF[6]; float temperature; char buff[BUFF_MAX]; unsigned long now = millis(); struct ts t;

temperature = DS3231_get_treg(); //Get temperature
dtostrf(temperature, 5, 1, tempF);  */

// show time once in a while
//show temperature
//if ((now - prev > interval) && (Serial.available() <= 0)) {
//temperature = DS3231_get_treg(); //Get temperature
//dtostrf(temperature, 5, 1, tempF);

//Main loop writevalue( 7 , 0x10); //Set SQWE frequency at 1Hz return: lcd.clear(); lcd.setCursor(7, 0); lcd.print("- -20"); lcd.setCursor(8, 1); lcd.print(": :"); while(1){ if (digitalRead(8) == 0) i++; if (i == 1){ write_value( 0 , 0x80);//Stop oscillator and reset seconds lcd.clear(); lcd.setCursor(4, 0); lcd.print("Minuty:"); minute = minute + minute10 * 10; delay(500); while(1){ if (digitalRead(8) == 0){ delay(500); i++;} if(i != 1){ minute = ((minute/10) << 4) + (minute % 10); writevalue( 1 , minute); goto return;} if (digitalRead(9) == 0) minute++; delay(200); if (minute > 59) minute = 0; lcd.setCursor(7, 1); lcd.print(minute / 10); lcd.setCursor(8, 1); lcd.print(minute % 10);}} if (i == 2){ lcd.clear(); lcd.setCursor(5, 0); lcd.print("Hodiny:"); hour = hour + hour10 * 10; delay(500); while(1){ if (digitalRead(8) == 0){ delay(500); i++; } if(i != 2){ hour = ((hour/10) << 4) + (hour % 10); writevalue( 2 , hour); goto return;} if (digitalRead(9) == 0) hour++; delay(200); if (hour > 23) hour = 0; lcd.setCursor(7, 1); lcd.print(hour / 10); lcd.setCursor(8, 1); lcd.print(hour % 10);}} if (i == 3){ lcd.clear(); lcd.setCursor(6, 0); lcd.print("Den:"); delay(500); while(1){ if (digitalRead(8) == 0){delay(500); i++ ; } if(i != 3){ writevalue( 3 , day); goto return;} if (digitalRead(9) == 0) day++; delay(200); if (day > 7) day = 1; switch(day){ case 1: text = "Pondelok "; break; case 2: text = "Utorok "; break; case 3: text = "Streda "; break; case 4: text = "Stvrtok"; break; case 5: text = "Piatok "; break; case 6: text = "Sobota "; break; case 7: text = "Nedela "; break;} lcd.setCursor(4, 1); lcd.print(text); }} if (i == 4){ lcd.clear(); lcd.setCursor(6, 0); lcd.print("Datum:"); date = date + date10 * 10; delay(500); while(1){ if (digitalRead(8) == 0){ delay(500); i++ ; } if(i != 4){ date = ((date/10) << 4) + (date % 10); writevalue( 4 , date); goto return;} if (digitalRead(9) == 0) date++ ; delay(200); if (date > 31) date = 1; lcd.setCursor(7, 1); lcd.print(date/10); lcd.setCursor(8, 1); lcd.print(date%10);}} if (i == 5){ lcd.clear(); lcd.setCursor(5, 0); lcd.print("Mesiac:"); month = month + month10 * 10; delay(500); while(1){ if (digitalRead(8) == 0){delay(500); i++ ; } if(i != 5){ month = ((month/10) << 4) + (month % 10); writevalue( 5 , month); goto return;} if (digitalRead(9) == 0) month++ ; delay(200); if (month > 12) month = 1; lcd.setCursor(7, 1); lcd.print(month / 10); lcd.setCursor(8, 1); lcd.print(month % 10); }} if (i == 6){ lcd.clear(); lcd.setCursor(6, 0); lcd.print("Rok:"); year = year + year10 * 10; delay(500); while(1){ if (digitalRead(8) == 0){delay(500); i = 0;} if(i != 6){ year = ((year/10) << 4) + (year % 10); write_value( 0 , 0); //Start oscillator and reset seconds writevalue( 6 , year); goto return;} if (digitalRead(9) == 0) year++; delay(200); if (year > 99) year = 0; lcd.setCursor(6, 1); lcd.print("20"); lcd.setCursor(8, 1); lcd.print(year / 10); lcd.setCursor(9, 1); lcd.print(year % 10);}} // Read data Wire.beginTransmission(0x68); Wire.write(0x00); Wire.endTransmission(); Wire.requestFrom(0x68, 7); second = Wire.read(); minute = Wire.read(); hour = Wire.read(); day = Wire.read(); date = Wire.read(); month = Wire.read(); year = Wire.read(); // End read data display_(); // Display data

 //lcd.setCursor(0, 1); lcd.print(tempF);   
 //lcd.setCursor(5, 1);  lcd.print((char)223);
 //lcd.print("C ");
 //}   

} // End of program }