Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //#include <LiquidCrystal.h>
- #include <LiquidCrystal_I2C.h>
- #include <OneWire.h>
- #include <DallasTemperature.h> // biblioteka do obsługi wyświetlacza na I2C
- #include <Wire.h>
- #include <DS3231.h> // biblioteka do obsługi zegara ds3231
- //LiquidCrystal lcd(7, 6, 5, 4, 3, 2);
- LiquidCrystal_I2C lcd(0x27,16,2);
- #define ONE_WIRE_BUS 13
- OneWire oneWire(ONE_WIRE_BUS);
- DallasTemperature sensors(&oneWire);
- DS3231 clock;
- RTCDateTime dt;
- int jo=0; //zmienna pierwszej cyfry
- int oj=0; //zmienna drugiej cyfry
- int io=0; //zmienna trzeciej cyfry
- int oi=0; //zmienna czwartej cyfry
- int ioo=0; //zmienna pierwszej cyfry dnia roku
- int oio=0; //zmienna drugiej cyfry dnia roku
- int ooi=0; //zmienna trzeciej cyfry dnia roku
- long startowa = 0;
- long ileczasu = 7000;
- int tryb = 0;
- // kody poszczególnych dużych znaków
- byte LT[8] =
- {
- B00111,
- B01111,
- B11111,
- B11111,
- B11111,
- B11111,
- B11111,
- B11111
- };
- byte UB[8] =
- {
- B11111,
- B11111,
- B11111,
- B00000,
- B00000,
- B00000,
- B00000,
- B00000
- };
- byte RT[8] =
- {
- B11100,
- B11110,
- B11111,
- B11111,
- B11111,
- B11111,
- B11111,
- B11111
- };
- byte LL[8] =
- {
- B11111,
- B11111,
- B11111,
- B11111,
- B11111,
- B11111,
- B01111,
- B00111
- };
- byte LB[8] =
- {
- B00000,
- B00000,
- B00000,
- B00000,
- B00000,
- B11111,
- B11111,
- B11111
- };
- byte LR[8] =
- {
- B11111,
- B11111,
- B11111,
- B11111,
- B11111,
- B11111,
- B11110,
- B11100
- };
- byte UMB[8] =
- {
- B11111,
- B11111,
- B11111,
- B00000,
- B00000,
- B00000,
- B11111,
- B11111
- };
- byte LMB[8] =
- {
- B11111,
- B00000,
- B00000,
- B00000,
- B00000,
- B11111,
- B11111,
- B11111
- };
- void setup()
- {
- // lcd.begin(16,2); // inicjalizujemy pracę wyświetlacza
- // clock.begin();
- lcd.begin(); // inicjalizujemy pracę wyświetlacza
- lcd.backlight(); // inicjalizujemy zegar
- sensors.begin();
- lcd.createChar(1,UB);
- lcd.createChar(2,RT);
- lcd.createChar(3,LL);
- lcd.createChar(4,LB);
- lcd.createChar(5,LR);
- lcd.createChar(6,UMB);
- lcd.createChar(7,LMB);
- lcd.createChar(8,LT);
- //clock.setDateTime(__DATE__, __TIME__);
- }
- void custom(int col)
- {
- lcd.setCursor(col, 0);
- lcd.write(8);
- lcd.write(1);
- lcd.write(2);
- lcd.setCursor(col, 1);
- lcd.write(3);
- lcd.write(4);
- lcd.write(5);
- }
- void custom1(int col)
- {
- lcd.setCursor(col,0);
- lcd.write(1);
- lcd.write(2);
- lcd.setCursor(col,1);
- lcd.write(4);
- lcd.write(255);
- lcd.write(4);
- }
- void custom2(int col)
- {
- lcd.setCursor(col,0);
- lcd.write(6);
- lcd.write(6);
- lcd.write(2);
- lcd.setCursor(col, 1);
- lcd.write(3);
- lcd.write(7);
- lcd.write(7);
- }
- void custom3(int col)
- {
- lcd.setCursor(col,0);
- lcd.write(6);
- lcd.write(6);
- lcd.write(2);
- lcd.setCursor(col, 1);
- lcd.write(7);
- lcd.write(7);
- lcd.write(5);
- }
- void custom4(int col)
- {
- lcd.setCursor(col,0);
- lcd.write(3);
- lcd.write(4);
- lcd.write(2);
- lcd.setCursor(col+2, 1);
- lcd.write(255);
- }
- void custom5(int col)
- {
- lcd.setCursor(col,0);
- lcd.write(255);
- lcd.write(6);
- lcd.write(6);
- lcd.setCursor(col, 1);
- lcd.write(7);
- lcd.write(7);
- lcd.write(5);
- }
- void custom6(int col)
- {
- lcd.setCursor(col,0);
- lcd.write(8);
- lcd.write(6);
- lcd.write(6);
- lcd.setCursor(col, 1);
- lcd.write(3);
- lcd.write(7);
- lcd.write(5);
- }
- void custom7(int col)
- {
- lcd.setCursor(col,0);
- lcd.write(1);
- lcd.write(1);
- lcd.write(2);
- lcd.setCursor(col+1, 1);
- lcd.write(8);
- }
- void custom8(int col)
- {
- lcd.setCursor(col,0);
- lcd.write(8);
- lcd.write(6);
- lcd.write(2);
- lcd.setCursor(col, 1);
- lcd.write(3);
- lcd.write(7);
- lcd.write(5);
- }
- void custom9(int col)
- {
- lcd.setCursor(col,0);
- lcd.write(8);
- lcd.write(6);
- lcd.write(2);
- lcd.setCursor(col+2, 1);
- lcd.write(255);
- }
- void customC(int col)
- {
- lcd.setCursor(col,0);
- lcd.write(8);
- lcd.write(1);
- lcd.write(1);
- lcd.setCursor(col,1);
- lcd.write(3);
- lcd.write(4);
- lcd.write(4);
- }
- void custom30(int col)
- {
- lcd.setCursor(col,0);
- lcd.write(165);
- lcd.setCursor(col, 1);
- lcd.write(165);
- }
- void custom29(int col)
- {
- lcd.setCursor(col,0);
- lcd.write(223); }
- void printNumber(int value, int col) {
- if (value == 0) {
- custom(col);
- } if (value == 1) {
- custom1(col);
- } if (value == 2) {
- custom2(col);
- } if (value == 3) {
- custom3(col);
- } if (value == 4) {
- custom4(col);
- } if (value == 5) {
- custom5(col);
- } if (value == 6) {
- custom6(col);
- } if (value == 7) {
- custom7(col);
- } if (value == 8) {
- custom8(col);
- } if (value == 9) {
- custom9(col);
- } if (value == 30) {
- custom30(col);
- } if (value == 35) {
- customC(col);
- } if (value == 29) {
- custom29(col);
- }
- }
- void loop()
- {
- unsigned long czas = millis(); // ustala zmienną czas w milisekundach
- if(czas - startowa > ileczasu) { // jeśli czas jaki upłynął od włączenia arduino jest większy niż zadeklarowaliśmy w "ileczasu"
- lcd.clear(); // czyści ekran przed każdą zmianą napisu żeby nic się nie nakładało
- startowa = czas; // zrównuje start z czasem który się nalicza w milisekundach
- tryb = tryb+1; // przełącza ekran na następny
- }
- dt = clock.getDateTime(); // pobiera czas z zegara
- sensors.requestTemperatures();
- if(tryb==0) {
- pokaczas(); // funkcja wyświetlająca czas
- }
- if(tryb==1) {
- pokaztemperature(); // funkcja wyświetlająca dzień roku
- }
- if(tryb==2){ // powraca do pierwszego ekranu
- tryb=0;
- }
- }
- void pokaczas(){
- String czas=(clock.dateFormat("H:i:a", dt)); // tworzymy stringa z odczytu godziny:minuty:sekundy z zegara i zapisujemy do stringa "czas"
- jo=czas[0]-48;
- oj=czas[1]-48;
- io=czas[3]-48;
- oi=czas[4]-48;
- printNumber(jo, 0); // wyświetlamy po kolei każdą liczbę godziny i minuty
- printNumber(oj, 4);
- printNumber(30, 7); // wyświetlamy dwukropek
- printNumber(io, 9);
- printNumber(oi, 13);
- // lcd.setCursor(14,1);
- // lcd.print(clock.dateFormat("s", dt)); // wyświetlamy sekundy
- }
- void pokaztemperature(){
- String temperatura = String(sensors.getTempCByIndex(0));
- ioo=temperatura[0]-48;
- oio=temperatura[1]-48;
- // ooi=temperatura[2]-48;
- printNumber(ioo, 0);
- printNumber(oio, 4);
- printNumber(29,7);
- printNumber(35, 8);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement