Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //PRZYCISKI ZEWNĘTRZNE
- #define ppoprzedni 40
- #define pnastepny 42
- #define pwlnieb 44
- #define pwylnieb 46
- #define podslnieb 35
- #define podslziel 34
- #define pwlziel 38
- #define pwylziel 36
- bool wlziel=true;
- bool wlnieb=true;
- bool podanaprzerwaj=false;
- //WYŚWIETLACZ
- #include <LiquidCrystal.h> //Dołączenie bilbioteki
- //WYŚWIETLACZ NIEBIESKI
- LiquidCrystal lcdn(28, 29, 30, 31, 32, 33); //Informacja o podłączeniu nowego wyświetlacza
- //WYŚWIETLACZ ZIEONY
- LiquidCrystal lcdz(22, 23, 24, 25, 26, 27); //Informacja o podłączeniu nowego wyświetlacza
- //KLAWIATRUA
- #include <Keypad.h> //biblioteka od klawiatury
- const byte ROWS = 4; // ile wierszy
- const byte COLS = 4; //ile kolumn
- byte rowPins[ROWS] = {45, 47, 49, 51}; //piny wierszy
- byte colPins[COLS] = {43, 41, 39, 37}; //piny kolum
- char keys[ROWS][COLS] = { //mapowanie klawiatury
- {'1','2','3','X'},
- {'4','5','6','B'},
- {'7','8','9','C'},
- {'P','0','N','D'}
- };
- Keypad klawiatura = Keypad( makeKeymap(keys), rowPins, colPins, ROWS, COLS );
- //PROGRAM
- char klaw=klawiatura.getKey();
- unsigned long czasdk;
- unsigned long czasdp;
- bool moznakolo=false;
- String poczatekgodzina;
- String koniecgodzina;
- int godzz;
- int minn;
- int kgodzz;
- int kminn;
- long nrbus;
- long nrvgl;
- void podajnumerek(){
- lcdz.clear();
- lcdz.setCursor(0,0);
- lcdz.print("NUMER AUTOBUSU");
- bool sprgodz=false;
- String godzina;
- bool poz1=true;
- bool poz2=false;
- bool poz3=false;
- bool poz4=false;
- do{
- char klaw=klawiatura.getKey();
- if(klaw){
- String pomoc=String(klaw);
- godzina+=pomoc;
- if(poz1==true){
- poz1=false;
- poz2=true;
- goto zaiff;
- }
- if(poz2==true){
- poz2=false;
- poz3=true;
- goto zaiff;
- }
- if(poz3==true){
- poz3=false;
- poz4=true;
- goto zaiff;
- }
- if(poz4==true){
- poz4=false;
- sprgodz=true;
- }
- }
- zaiff:
- lcdz.setCursor(0,1);
- lcdz.print(godzina);
- unsigned long pomiarbezsensu;
- pomiarbezsensu=millis();
- }while(sprgodz==false);
- delay(500);
- long godzinaint=godzina.toInt();
- nrbus=godzinaint;
- delay(500);
- numerekvgl();
- }
- void numerekvgl(){
- lcdz.clear();
- lcdz.setCursor(0,0);
- lcdz.print("PODAJ NUMER VGL");
- bool sprgodz=false;
- String godzina;
- bool poz1=true;
- bool poz2=false;
- bool poz3=false;
- bool poz4=false;
- do{
- char klaw=klawiatura.getKey();
- if(klaw){
- String pomoc=String(klaw);
- godzina+=pomoc;
- if(poz1==true){
- poz1=false;
- poz2=true;
- goto zaifff;
- }
- if(poz2==true){
- poz2=false;
- poz3=true;
- goto zaifff;
- }
- if(poz3==true){
- poz3=false;
- poz4=true;
- goto zaifff;
- }
- if(poz4==true){
- poz4=false;
- sprgodz=true;
- }
- }
- zaifff:
- lcdz.setCursor(0,1);
- lcdz.print(godzina);
- unsigned long pomiarbezsensu;
- pomiarbezsensu=millis();
- }while(sprgodz==false);
- delay(500);
- long godzinaint=godzina.toInt();
- nrvgl=godzinaint;
- }
- long doprzyjazdu(String ph,String ps,String kh,String ks){
- long pgg=ph.toInt();
- long pmm=ps.toInt();
- long kgg=kh.toInt();
- long kmm=ks.toInt();
- long kkk=(kgg*60)+kmm;
- long ppp=(pgg*60)+pmm;
- long kpkp=kkk-ppp;
- return kpkp;
- }
- String godzinaa;
- String minutaa;
- void setup() {
- przyciski();
- godzinaa = godzina();
- minutaa = minuta();
- godzz=godzinaa.toInt();
- minn=minutaa.toInt();
- delay(1000);
- lcdz.clear();
- lcdn.clear();
- String kgodzinaa = kgodzina();
- String kminutaa = kminuta();
- kgodzz=kgodzinaa.toInt();
- kminn=kminutaa.toInt();
- poczatekgodzina=godzinaa+" "+minutaa;
- koniecgodzina=kgodzinaa+" "+kminutaa;
- czasdk=dokonca(godzinaa,minutaa,kgodzinaa,kminutaa);
- delay(1000);
- Serial.begin(9600);
- lcdn.clear();
- lcdz.clear();
- podajnumerek();
- delay(600);
- lcdz.clear();
- moznakolo=true;
- //WPROWADZANIE GODZINY GOTOWE
- }
- void wlwyl(){
- if(digitalRead(pwylziel)==LOW){
- digitalWrite(podslziel,LOW);
- wlziel=false;
- delay(250);
- }
- if(digitalRead(pwlziel)==LOW){
- digitalWrite(podslziel,HIGH);
- wlziel=true;
- delay(250);
- }
- if(digitalRead(pwylnieb)==LOW){
- digitalWrite(podslnieb,LOW);
- wlnieb=false;
- delay(250);
- }
- if(digitalRead(pwlnieb)==LOW){
- digitalWrite(podslnieb,HIGH);
- wlnieb=true;
- delay(250);
- }
- }
- unsigned long aktualnyCzas = 0;
- unsigned long zapamietanyCzas = 0;
- unsigned long roznicaCzasu = 0;
- unsigned long aktualnyCzas1=0;
- unsigned long zapamietanyCzas1=0;
- unsigned long roznicaCzasu1=0;
- String odp;
- String aktualnalinia;
- String aktualnykierunek;
- int numerwyswietlacza;
- String godzpw;
- String minpw;
- bool wws1=false;
- bool wws3=false;
- bool wws2=false;
- int niebieskiwysw=1;
- bool pierwszyraz=true;
- int zapisanyniebieski=1;
- long dp;
- void loop() {
- klaw=klawiatura.getKey();
- if(moznakolo==true){
- wlwyl();
- aktualnyCzas=millis();
- roznicaCzasu=aktualnyCzas-zapamietanyCzas;
- if(roznicaCzasu>=1000UL){
- zapamietanyCzas=aktualnyCzas;
- czasdk=czasdk-1;
- czasdp=czasdp-1;
- }
- aktualnyCzas1=millis();
- roznicaCzasu1=aktualnyCzas1-zapamietanyCzas1;
- if(roznicaCzasu1>=60000UL){
- zapamietanyCzas1=aktualnyCzas1;
- minn++;
- dp--;
- }
- if(minn==60){
- minn=0;
- godzz++;
- }
- if(czasdk<=0){
- czasdk=0;
- }
- //CZĘŚĆ WYŚWIETLACZA NIEBIESKIEGO CZĘŚĆ WYŚWIETLACZA NIEBIESKIEGO CZĘŚĆ WYŚWIETLACZA NIEBIESKIEGO CZĘŚĆ WYŚWIETLACZA NIEBIESKIEGO
- if(digitalRead(pnastepny)==LOW){
- niebieskiwysw++;
- delay(250);
- }
- if(digitalRead(ppoprzedni)==LOW){
- niebieskiwysw--;
- delay(250);
- }
- if(pierwszyraz==true){
- zapisanyniebieski=niebieskiwysw;
- pierwszyraz=false;
- }
- if(zapisanyniebieski!=niebieskiwysw){
- wws1=true;
- wws2=true;
- wws3=true;
- Serial.println(godzz);
- Serial.println(minn);
- Serial.println(godzpw);
- Serial.println(minpw);
- zapisanyniebieski=niebieskiwysw;
- }
- switch(niebieskiwysw){
- case 1:
- {
- wysw1();
- break;
- }
- case 2:
- {
- wysw2();
- break;
- }
- case 3:
- {
- wysw3();
- break;
- }
- case 4:{
- niebieskiwysw=1;
- break;
- }
- case 0:{
- niebieskiwysw=3;
- break;
- }
- default:
- {
- String nbstring=String(niebieskiwysw);
- lcdn.clear();
- lcdn.setCursor(0,0);
- lcdn.print("POZA SKALA");
- lcdn.setCursor(0,1);
- lcdn.print(nbstring);
- }
- }
- if(klaw=='D'){
- godzpw=godzpww();
- delay(250);
- minpw=minpww();
- delay(250);
- lcdz.clear();
- podanaprzerwaj=true;
- czasdp=dokonca(godzinaa,minutaa,godzpw,minpw);
- }
- //CZĘŚĆ WYŚWIETLACZA ZIELONEGO CZĘŚĆ WYŚWIETLACZA ZIELONEGO CZĘŚĆ WYŚWIETLACZA ZIELONEGO CZĘŚĆ WYŚWIETLACZA ZIELONEGO CZĘŚĆ WYŚWIETLACZA ZIELONEGO
- if(klaw=='C'){
- odp=cyfrac();
- numerwyswietlacza=ktorynumerwysw(odp);
- wyswietlacze(numerwyswietlacza);
- }
- if(klaw=='P'){
- numerwyswietlacza--;
- wyswietlacze(numerwyswietlacza);
- }
- if(klaw=='N'){
- numerwyswietlacza++;
- wyswietlacze(numerwyswietlacza);
- }
- if(klaw=='B'){
- numerwyswietlacza=0;
- wyswietlacze(numerwyswietlacza);
- }
- }
- }
- long ldak;
- bool poczatek3=true;
- void wysw3(){
- long zzdog=godzz;
- long nnim=minn;
- long wpzdog=godzpw.toInt();
- long wpnim=minpw.toInt();
- long minutypom=((wpzdog*60)+wpnim)-((zzdog*60)+nnim);
- dp=zamiananaminuty(czasdp);
- String dpp=String(dp);
- String busnr=String(nrbus);
- String vglnr=String(nrvgl);
- if(poczatek3==true){
- ldak=dp;
- poczatek3=false;
- lcdn.clear();
- lcdn.setCursor(0,0);
- lcdn.print("DO PETLI: "+dpp+"min");
- lcdn.setCursor(0,1);
- lcdn.print("VGL/BS "+vglnr+"/"+busnr);
- }
- if(ldak!=dp||wws3==true||podanaprzerwaj==true){
- lcdn.clear();
- lcdn.setCursor(0,0);
- lcdn.print("DO PETLI: "+dpp+"min");
- lcdn.setCursor(0,1);
- lcdn.print("VGLP/BNR "+vglnr+"/"+busnr);
- ldak=dp;
- }
- wws3=false;
- }
- int lbak;
- int lcak;
- bool poczatek1=true;
- bool poczatek2=true;
- void wysw1(){
- if(poczatek2==true){
- lcak=minn;
- poczatek2=false;
- }
- String godzzz=String(godzz);
- String minnn=String(minn);
- String kgodzzz=String(kgodzz);
- String kminnn=String(kminn);
- if(lcak!=minn||wws2==true){
- lcdn.clear();
- lcdn.setCursor(0,0);
- lcdn.print("GODZINA: "+godzzz+":"+minnn);
- lcdn.setCursor(0,1);
- lcdn.print("KONIEC O: "+kgodzzz+":"+kminnn);
- lcak=minn;
- }
- wws2=false;
- }
- long minuty;
- long godziny;
- long ileminutpozostalo;
- void wysw2(){
- ileminutpozostalo=zamiananaminuty(czasdk);
- String pozostalominut=String(ileminutpozostalo);
- if(poczatek1==true){
- lbak=ileminutpozostalo;
- poczatek1=false;
- lcdn.clear();
- lcdn.setCursor(0,0);
- lcdn.print("DO KONCA: "+pozostalominut+"min");
- }
- if(lbak!=ileminutpozostalo||wws1==true||podanaprzerwaj==true){
- lcdn.clear();
- lcdn.setCursor(0,0);
- lcdn.print("DO KONCA: "+pozostalominut+"min");
- lcdn.setCursor(0,1);
- lcdn.print("PRZYJAZD O "+godzpw+":"+minpw);
- lbak=ileminutpozostalo;
- }
- wws1=false;
- podanaprzerwaj=false;
- }
- unsigned long zamiananaminuty(unsigned long godzinka){
- unsigned long minuty=godzinka/60;
- return minuty;
- }
- long ilegodzin(long sekundy){
- minuty=sekundy/60;
- godziny=minuty/60;
- minuty=minuty-(godziny*60);
- }
- int ktorynumerwysw(String odp){
- int z;
- int pcc;
- pcc=odp.toInt();
- int ktorynumerws;
- switch(pcc){
- case 0:{
- z=0;
- break;
- }
- case 1:{
- z=1;
- break;
- }
- case 2:{
- z=5;
- break;
- }
- case 4:{
- z=14;
- break;
- }
- case 5:{
- z=25;
- break;
- }
- case 7:{
- z=32;
- break;
- }
- case 8:{
- z=39;
- break;
- }
- case 930:{
- z=160;
- break;
- }
- case 3:{
- z=11;
- break;
- }
- case 6:{
- z=30;
- break;
- }
- case 42:{
- z=150;
- break;
- }
- case 960:{
- z=170;
- break;
- }
- default:{
- z=pcc;
- break;
- }
- }
- return z;
- }
- void przyciski(){
- pinMode(ppoprzedni, INPUT_PULLUP);
- pinMode(pnastepny, INPUT_PULLUP);
- pinMode(pwlnieb, INPUT_PULLUP);
- pinMode(pwylnieb,INPUT_PULLUP);
- pinMode(podslnieb,OUTPUT);
- pinMode(podslziel,OUTPUT);
- pinMode(pwlziel,INPUT_PULLUP);
- pinMode(pwylziel,INPUT_PULLUP);
- lcdn.begin(16,2);
- lcdz.begin(16,2);
- digitalWrite(podslziel,HIGH);
- digitalWrite(podslnieb,HIGH);
- }
- void wyswietlacze(int lb){
- String lokalkie;
- String kurdebalans=String(lb);
- String lokallin;
- switch(lb){
- case 0:{
- lokallin="L: N: 000";
- lokalkie="IKKE I RUTE";
- break;
- }
- case 12:{
- lokallin="L: 003 N: 012";
- lokalkie="VISTE HAGEBY";
- break;
- }
- case 13:{
- lokallin="L: 003 N: 013";
- lokalkie="SUNDELIA";
- break;
- }
- case 170:{
- lokallin="L: X60 N: 170";
- lokalkie="SVG via Forus";
- break;
- }
- case 171:{
- lokallin="L: X60 N: 171";
- lokalkie="Hundvag via SUS";
- break;
- }
- case 172:{
- lokallin="L: X60 N: 172";
- lokalkie="SVG via UiS SUS";
- break;
- }
- case 173:{
- lokallin="L: X60 N: 173";
- lokalkie="Sandnes (f SVG)";
- break;
- }
- case 174:{
- lokallin="L: X60 N: 174";
- lokalkie="UiS via SUS";
- break;
- }
- case 175:{
- lokallin="L: X60 N: 175";
- lokalkie="Sandnes (f HVG)";
- break;
- }
- case 150:{
- lokallin="L: 042 N: 150";
- lokalkie="Sandnes via Luft";
- break;
- }
- case 151:{
- lokallin="L: 042 N: 151";
- lokalkie="Sandnes via Sola";
- break;
- }
- case 152:{
- lokallin="L: 042 N: 152";
- lokalkie="Tananger via Luf";
- break;
- }
- case 153:{
- lokallin="L: 042 N: 153";
- lokalkie="Svg. Lufthavn";
- break;
- }
- case 30:{
- lokallin="L: 006 N: 030";
- lokalkie="Sandnes via UiS";
- break;
- }
- case 31:{
- lokallin="L: 006 N: 031";
- lokalkie="Stavanger";
- break;
- }
- case 32:{
- lokallin="L: 007 N: 032";
- lokalkie="Sola via UiS";
- break;
- }
- case 33:{
- lokallin="L: 007 N: 033";
- lokalkie="Sola /v UiS vest";
- break;
- }
- case 34:{
- lokallin="L: 007 N: 034";
- lokalkie="UiS";
- break;
- }
- case 35:{
- lokallin="L: 007 N: 035";
- lokalkie="Stavanger /v UiS";
- break;
- }
- case 160:{
- lokallin="L: X30 N: 160";
- lokalkie="Kvadrat via SUS";
- break;
- }
- case 161:{
- lokallin="L: X30 N: 161";
- lokalkie="VestreSvanholmen";
- break;
- }
- case 162:{
- lokallin="L: X30 N: 162";
- lokalkie="Stavanger /v SUS";
- break;
- }
- case 163:{
- lokallin="L: X30 N: 163";
- lokalkie="Svg via Kannik";
- break;
- }
- //TECHNICZNE:
- case 306:{
- lokallin="L: NB N: 306";
- lokalkie="Norgesbuss";
- break;
- }
- case 307:{
- lokallin="L: *** N: 307";
- lokalkie="Kolumbus";
- break;
- }
- default:{
- lokallin="L: *** N: "+kurdebalans;
- lokalkie="!BRAK W BAZIE!";
- break;
- }
- }
- lcdz.clear();
- lcdz.setCursor(0,0);
- lcdz.print(lokallin);
- lcdz.setCursor(0,1);
- lcdz.print(lokalkie);
- }
- String godzina(){
- lcdn.setCursor(0,0);
- lcdn.print("PODAJ GODZINE");
- bool sprgodz=false;
- String godzina;
- bool poz1=true;
- do{
- klaw=klawiatura.getKey();
- if(klaw){
- bool poz2=true;
- String pomoc=String(klaw);
- godzina+=pomoc;
- if(poz1==true){
- poz1=false;
- poz2=false;
- }
- if(poz2==true){
- poz2=false;
- sprgodz=true;
- }
- lcdn.setCursor(0,1);
- lcdn.print(godzina);
- }
- }while(sprgodz==false);
- return godzina;
- }
- String godzpww(){
- lcdz.clear();
- lcdz.setCursor(0,0);
- lcdz.print("PRZERWA GODZINY");
- bool sprgodz=false;
- String godzina;
- bool poz1=true;
- do{
- klaw=klawiatura.getKey();
- if(klaw){
- bool poz2=true;
- String pomoc=String(klaw);
- godzina+=pomoc;
- if(poz1==true){
- poz1=false;
- poz2=false;
- }
- if(poz2==true){
- poz2=false;
- sprgodz=true;
- }
- lcdz.setCursor(0,1);
- lcdz.print(godzina);
- }
- }while(sprgodz==false);
- return godzina;
- }
- String minpww(){
- lcdz.clear();
- lcdz.setCursor(0,0);
- lcdz.print("PRZERWA MINUTY");
- bool sprgodz=false;
- String godzina;
- bool poz1=true;
- do{
- klaw=klawiatura.getKey();
- if(klaw){
- bool poz2=true;
- String pomoc=String(klaw);
- godzina+=pomoc;
- if(poz1==true){
- poz1=false;
- poz2=false;
- }
- if(poz2==true){
- poz2=false;
- sprgodz=true;
- }
- lcdz.setCursor(0,1);
- lcdz.print(godzina);
- }
- }while(sprgodz==false);
- return godzina;
- }
- String minuta(){
- lcdz.setCursor(0,0);
- lcdz.print("PODAJ MINUTE");
- bool sprgodz=false;
- String godzina;
- bool poz1=true;
- do{
- char klaw=klawiatura.getKey();
- if(klaw){
- bool poz2=true;
- String pomoc=String(klaw);
- godzina+=pomoc;
- if(poz1==true){
- poz1=false;
- poz2=false;
- }
- if(poz2==true){
- poz2=false;
- sprgodz=true;
- }
- lcdz.setCursor(0,1);
- lcdz.print(godzina);
- }
- }while(sprgodz==false);
- return godzina;
- }
- String kgodzina(){
- lcdn.setCursor(0,0);
- lcdn.print("PODAJ KONIEC GDZ");
- bool sprgodz=false;
- String godzina;
- bool poz1=true;
- do{
- char klaw=klawiatura.getKey();
- if(klaw){
- bool poz2=true;
- String pomoc=String(klaw);
- godzina+=pomoc;
- if(poz1==true){
- poz1=false;
- poz2=false;
- }
- if(poz2==true){
- poz2=false;
- sprgodz=true;
- }
- lcdn.setCursor(0,1);
- lcdn.print(godzina);
- }
- }while(sprgodz==false);
- return godzina;
- }
- String kminuta(){
- lcdz.setCursor(0,0);
- lcdz.print("PODAJ KONIEC MIN");
- bool sprgodz=false;
- String godzina;
- bool poz1=true;
- do{
- char klaw=klawiatura.getKey();
- if(klaw){
- bool poz2=true;
- String pomoc=String(klaw);
- godzina+=pomoc;
- if(poz1==true){
- poz1=false;
- poz2=false;
- }
- if(poz2==true){
- poz2=false;
- sprgodz=true;
- }
- lcdz.setCursor(0,1);
- lcdz.print(godzina);
- }
- }while(sprgodz==false);
- return godzina;
- }
- String cyfrac(){
- lcdz.clear();
- lcdz.setCursor(0,0);
- lcdz.print("NR LINII [9xx=X]");
- bool sprgodz=false;
- String godzina;
- bool poz1=true;
- bool poz2=false;
- bool poz3=false;
- do{
- char klaw=klawiatura.getKey();
- if(klaw){
- String pomoc=String(klaw);
- godzina+=pomoc;
- if(poz1==true){
- poz1=false;
- poz2=true;
- goto zaif;
- }
- if(poz2==true){
- poz2=false;
- poz3=true;
- goto zaif;
- }
- if(poz3==true){
- poz3=false;
- sprgodz=true;
- }
- }
- zaif:
- lcdz.setCursor(0,1);
- lcdz.print(godzina);
- unsigned long pomiarbezsensu;
- pomiarbezsensu=millis();
- }while(sprgodz==false);
- delay(500);
- return godzina;
- }
- unsigned long dokonca(String pg, String pm, String kg, String km){
- unsigned long pgint= pg.toInt();
- unsigned long pmint= pm.toInt();
- unsigned long kgint= kg.toInt();
- unsigned long kmint= km.toInt();
- unsigned long start=(pgint*3600000)+(pmint*60000);
- unsigned long koniec=(kgint*3600000)+(kmint*60000);
- start=start/1000;
- koniec=koniec/1000;
- unsigned long roznica=koniec-start;
- return roznica;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement