Kolorwanie:
Status:
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367
//#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);
  
}

Copyrights 2014-2019 © Wklejaj.pl Wszelkie prawa zastrzeżone.