Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <M5Stack.h>
- #include <EEPROM.h>
- int FinalNumber[51];
- int FinalStar[13];
- int MatrixNumber[51];
- int MatrixStar[13];
- int TempNumber[51];
- int TempV;
- int TempM;
- int TempN;
- int TempP;
- int NumberPos;
- int Temp;
- int Loopi;
- int i,j;
- int IndexPos;
- int oldBatteryLevel=1000;
- int newBatteryLevel=0;
- signed char Option1=1;
- signed char Option2=1;
- signed char Option3=1;
- signed char Option4=1;
- signed char Option5=1;
- signed char Option6=1;
- signed char Option7=1;
- signed char Option8=1;
- int MenuLine=1;
- int ExitMe=0;
- int NTemp1,NTemp2;
- int temporario;
- void swapInt(int a, int b)
- {
- int c = a;
- a = b;
- b = c;
- }
- void ReadEprom()
- {
- Option1=EEPROM.read(0);
- Option2=EEPROM.read(1);
- Option3=EEPROM.read(2);
- Option4=EEPROM.read(3);
- Option5=EEPROM.read(4);
- Option6=EEPROM.read(5);
- Option7=EEPROM.read(6);
- Option8=EEPROM.read(7);
- if (Option1==1) Option1=-2; if (Option1==2) Option1=-1; if (Option1==3) Option1=0; if (Option1==4) Option1=1; if (Option1==5) Option1=2;
- if (Option2==1) Option2=-2; if (Option2==2) Option2=-1; if (Option2==3) Option2=0; if (Option2==4) Option2=1; if (Option2==5) Option2=2;
- if (Option3==1) Option3=-2; if (Option3==2) Option3=-1; if (Option3==3) Option3=0; if (Option3==4) Option3=1; if (Option3==5) Option3=2;
- if (Option4==1) Option4=-2; if (Option4==2) Option4=-1; if (Option4==3) Option4=0; if (Option4==4) Option4=1; if (Option4==5) Option4=2;
- if (Option5==1) Option5=-2; if (Option5==2) Option5=-1; if (Option5==3) Option5=0; if (Option5==4) Option5=1; if (Option5==5) Option5=2;
- if (Option6==1) Option6=-2; if (Option6==2) Option6=-1; if (Option6==3) Option6=0; if (Option6==4) Option6=1; if (Option6==5) Option6=2;
- if (Option7==1) Option7=-2; if (Option7==2) Option7=-1; if (Option7==3) Option7=0; if (Option7==4) Option7=1; if (Option7==5) Option7=2;
- if (Option8==1) Option8=-2; if (Option8==2) Option8=-1; if (Option8==3) Option8=0; if (Option8==4) Option8=1; if (Option8==5) Option8=2;
- }
- void WriteEprom()
- {
- if (Option1==-2) EEPROM.write(0, 1); if (Option1==-1) EEPROM.write(0, 2); if (Option1==0) EEPROM.write(0, 3); if (Option1==1) EEPROM.write(0, 4); if (Option1==2) EEPROM.write(0, 5);
- if (Option2==-2) EEPROM.write(1, 1); if (Option2==-1) EEPROM.write(1, 2); if (Option2==0) EEPROM.write(1, 3); if (Option2==1) EEPROM.write(1, 4); if (Option2==2) EEPROM.write(1, 5);
- if (Option3==-2) EEPROM.write(2, 1); if (Option3==-1) EEPROM.write(2, 2); if (Option3==0) EEPROM.write(2, 3); if (Option3==1) EEPROM.write(2, 4); if (Option3==2) EEPROM.write(2, 5);
- if (Option4==-2) EEPROM.write(3, 1); if (Option4==-1) EEPROM.write(3, 2); if (Option4==0) EEPROM.write(3, 3); if (Option4==1) EEPROM.write(3, 4); if (Option4==2) EEPROM.write(3, 5);
- if (Option5==-2) EEPROM.write(4, 1); if (Option5==-1) EEPROM.write(4, 2); if (Option5==0) EEPROM.write(4, 3); if (Option5==1) EEPROM.write(4, 4); if (Option5==2) EEPROM.write(4, 5);
- if (Option6==-2) EEPROM.write(5, 1); if (Option6==-1) EEPROM.write(5, 2); if (Option6==0) EEPROM.write(5, 3); if (Option6==1) EEPROM.write(5, 4); if (Option6==2) EEPROM.write(5, 5);
- if (Option7==-2) EEPROM.write(6, 1); if (Option7==-1) EEPROM.write(6, 2); if (Option7==0) EEPROM.write(6, 3); if (Option7==1) EEPROM.write(6, 4); if (Option7==2) EEPROM.write(6, 5);
- if (Option8==-2) EEPROM.write(7, 1); if (Option8==-1) EEPROM.write(7, 2); if (Option8==0) EEPROM.write(7, 3); if (Option8==1) EEPROM.write(7, 4); if (Option8==2) EEPROM.write(7, 5);
- EEPROM.commit();
- }
- void ClearEprom()
- {
- EEPROM.write(0, 0);
- EEPROM.write(1, 0);
- EEPROM.write(2, 0);
- EEPROM.write(3, 0);
- EEPROM.write(4, 0);
- EEPROM.write(5, 0);
- EEPROM.write(6, 0);
- EEPROM.write(7, 0);
- }
- int8_t getBatteryLevel()
- {
- Wire.beginTransmission(0x75);
- Wire.write(0x78);
- if (Wire.endTransmission(false) == 0
- && Wire.requestFrom(0x75, 1)) {
- switch (Wire.read() & 0xF0) {
- case 0xE0: return 25;
- case 0xC0: return 50;
- case 0x80: return 75;
- case 0x00: return 100;
- default: return 0;
- }
- }
- return -1;
- }
- void displayBattery()
- {
- // Draw Battery
- oldBatteryLevel=1000;
- M5.Lcd.drawRect(295, 4, 5, 7, WHITE);
- M5.Lcd.drawRect(300, 0, 20, 14, WHITE);
- }
- void displayLogo()
- {
- M5.Lcd.setTextColor(YELLOW);
- M5.Lcd.setTextFont(1);
- M5.Lcd.setTextSize(1);
- M5.Lcd.setCursor( 0, 20); M5.Lcd.print(" __ __ __ _ _ _ ");
- M5.Lcd.setCursor( 0, 30); M5.Lcd.print("|__| _ _ | \\/ | (_) | | | |_ ___ ___ ___");
- M5.Lcd.setCursor( 0, 40); M5.Lcd.print("|_| | ||_|| || |\\/| | | | | | | | \\ / _ \\ / -_) (_-<");
- M5.Lcd.setCursor( 0, 50); M5.Lcd.print("|__||_||\\ |_||_| |_| |_| |_| |_||_| \\___/ \\___| /__/");
- }
- void displayBatteryLevel()
- {
- newBatteryLevel=getBatteryLevel();
- // M5.Lcd.setTextColor(YELLOW);
- // M5.Lcd.setTextFont(1);
- // M5.Lcd.setTextSize(2);
- // M5.Lcd.setCursor( 0, 0); M5.Lcd.print(" ");
- // M5.Lcd.setCursor( 0, 0); M5.Lcd.print(getBatteryLevel());
- if (oldBatteryLevel!=newBatteryLevel)
- {
- M5.Lcd.fillRect(303, 2, 12, 11, BLACK);
- M5.Lcd.drawRect(300, 0, 20, 14, WHITE);
- if (newBatteryLevel>=100) M5.Lcd.fillRect(303, 2, 3, 11, GREEN);
- if (newBatteryLevel>=75) M5.Lcd.fillRect(307, 2, 3, 11, GREEN);
- if (newBatteryLevel>=50) M5.Lcd.fillRect(310, 2, 3, 11, GREEN);
- if (newBatteryLevel>=25) M5.Lcd.fillRect(313, 2, 4, 11, GREEN);
- oldBatteryLevel=newBatteryLevel;
- }
- }
- void getEuroMillionsNumbers()
- {
- randomSeed(analogRead(35));
- M5.update();
- M5.Lcd.setTextColor(WHITE);
- M5.Lcd.setTextFont(2);
- M5.Lcd.setTextSize(3);
- M5.Lcd.fillRect(0, 80, 320, 100, BLACK);
- delay(500);
- for (int i=1;i<=50; i++) MatrixNumber[i]=1;
- for (int k=1; k<10000; k++)
- {
- MatrixNumber[random(50)+1]++;
- }
- NumberPos=1;
- while (NumberPos<=5)
- {
- TempN=0;
- TempP=1;
- for (i=1; i<=50; i++)
- {
- temporario=MatrixNumber[i];
- if (temporario>TempN) { TempN=temporario; TempP=i; }
- }
- if (TempN==0) TempP=1;
- for (i=1; i<=50; i++)
- {
- if (MatrixNumber[i]==TempN) MatrixNumber[i]=0;
- }
- FinalNumber[NumberPos]=TempP;
- NumberPos++;
- }
- temporario=FinalNumber[1];
- switch (temporario)
- {
- case 1 ... 6: FinalNumber[1]=temporario+Option1;
- break;
- case 7 ... 12: FinalNumber[1]=temporario+Option2;
- break;
- case 13 ... 18: FinalNumber[1]=temporario+Option3;
- break;
- case 19 ... 24: FinalNumber[1]=temporario+Option4;
- break;
- case 25 ... 30: FinalNumber[1]=temporario+Option5;
- break;
- case 31 ... 36: FinalNumber[1]=temporario+Option6;
- break;
- case 37 ... 42: FinalNumber[1]=temporario+Option7;
- break;
- case 43 ... 48: FinalNumber[1]=temporario+Option8;
- break;
- }
- if (FinalNumber[1]<1) FinalNumber[1]=1;
- if (FinalNumber[1]>50) FinalNumber[1]=50;
- temporario=FinalNumber[2];
- switch (temporario)
- {
- case 1 ... 6: FinalNumber[2]=temporario+Option1;
- break;
- case 7 ... 12: FinalNumber[2]=temporario+Option2;
- break;
- case 13 ... 18: FinalNumber[2]=temporario+Option3;
- break;
- case 19 ... 24: FinalNumber[2]=temporario+Option4;
- break;
- case 25 ... 30: FinalNumber[2]=temporario+Option5;
- break;
- case 31 ... 36: FinalNumber[2]=temporario+Option6;
- break;
- case 37 ... 42: FinalNumber[2]=temporario+Option7;
- break;
- case 43 ... 48: FinalNumber[2]=temporario+Option8;
- break;
- }
- if (FinalNumber[2]<1) FinalNumber[2]=1;
- if (FinalNumber[2]>50) FinalNumber[2]=50;
- temporario=FinalNumber[3];
- switch (temporario)
- {
- case 1 ... 6: FinalNumber[3]=temporario+Option1;
- break;
- case 7 ... 12: FinalNumber[3]=temporario+Option2;
- break;
- case 13 ... 18: FinalNumber[3]=temporario+Option3;
- break;
- case 19 ... 24: FinalNumber[3]=temporario+Option4;
- break;
- case 25 ... 30: FinalNumber[3]=temporario+Option5;
- break;
- case 31 ... 36: FinalNumber[3]=temporario+Option6;
- break;
- case 37 ... 42: FinalNumber[3]=temporario+Option7;
- break;
- case 43 ... 48: FinalNumber[3]=temporario+Option8;
- break;
- }
- if (FinalNumber[3]<1) FinalNumber[3]=1;
- if (FinalNumber[3]>50) FinalNumber[3]=50;
- temporario=FinalNumber[4];
- switch (temporario)
- {
- case 1 ... 6: FinalNumber[4]=temporario+Option1;
- break;
- case 7 ... 12: FinalNumber[4]=temporario+Option2;
- break;
- case 13 ... 18: FinalNumber[4]=temporario+Option3;
- break;
- case 19 ... 24: FinalNumber[4]=temporario+Option4;
- break;
- case 25 ... 30: FinalNumber[4]=temporario+Option5;
- break;
- case 31 ... 36: FinalNumber[4]=temporario+Option6;
- break;
- case 37 ... 42: FinalNumber[4]=temporario+Option7;
- break;
- case 43 ... 48: FinalNumber[4]=temporario+Option8;
- break;
- }
- if (FinalNumber[4]<1) FinalNumber[4]=1;
- if (FinalNumber[4]>50) FinalNumber[4]=50;
- temporario=FinalNumber[5];
- switch (temporario)
- {
- case 1 ... 6: FinalNumber[5]=temporario+Option1;
- break;
- case 7 ... 12: FinalNumber[5]=temporario+Option2;
- break;
- case 13 ... 18: FinalNumber[5]=temporario+Option3;
- break;
- case 19 ... 24: FinalNumber[5]=temporario+Option4;
- break;
- case 25 ... 30: FinalNumber[5]=temporario+Option5;
- break;
- case 31 ... 36: FinalNumber[5]=temporario+Option6;
- break;
- case 37 ... 42: FinalNumber[5]=temporario+Option7;
- break;
- case 43 ... 48: FinalNumber[5]=temporario+Option8;
- break;
- }
- if (FinalNumber[5]<1) FinalNumber[5]=1;
- if (FinalNumber[5]>50) FinalNumber[5]=50;
- for (int i=1;i<=12; i++) MatrixStar[i]=1;
- for (int k=1; k<10000; k++)
- {
- MatrixStar[random(12)+1]++;
- }
- TempV=0; TempM=0;
- for (IndexPos=1; IndexPos<=2; IndexPos++)
- {
- for (Loopi=1; Loopi<=12; Loopi++)
- {
- if (MatrixStar[Loopi]>TempV) { TempV=MatrixStar[Loopi]; TempM=Loopi; }
- }
- FinalStar[IndexPos]=TempM;
- MatrixStar[TempM]=0;
- TempV=0;
- }
- for (i=1; i<=5; i++)
- {
- for (j=1; j<=5; j++)
- {
- if (FinalNumber[i]>FinalNumber[j]) swapInt(FinalNumber[i],FinalNumber[j]);
- }
- }
- if (FinalStar[1]>FinalStar[2]) swapInt(FinalStar[1],FinalStar[2]);
- M5.Lcd.setTextColor(WHITE);
- M5.Lcd.setTextFont(2);
- M5.Lcd.setTextSize(3);
- M5.Lcd.setCursor( 0, 80); M5.Lcd.print(String(FinalNumber[1]));
- M5.Lcd.setCursor( 64, 80); M5.Lcd.print(String(FinalNumber[2]));
- M5.Lcd.setCursor(128, 80); M5.Lcd.print(String(FinalNumber[3]));
- M5.Lcd.setCursor(192, 80); M5.Lcd.print(String(FinalNumber[4]));
- M5.Lcd.setCursor(256, 80); M5.Lcd.print(String(FinalNumber[5]));
- M5.Lcd.setCursor( 0, 130); M5.Lcd.print(String(FinalStar[1]));
- M5.Lcd.setCursor( 64, 130); M5.Lcd.print(String(FinalStar[2]));
- M5.Lcd.setTextColor(GREEN);
- M5.Lcd.setTextFont(1);
- M5.Lcd.setTextSize(2);
- M5.Lcd.fillRect( 0, 210, 320, 30, BLUE);
- M5.Lcd.drawRect( 0, 210, 105, 30, WHITE);
- M5.Lcd.setCursor( 0+2+(14*(7/2)),217); M5.Lcd.print("?");
- M5.Lcd.drawRect( 106, 210, 105, 30, WHITE);
- M5.Lcd.setCursor(106+2+(14*(7/6)),217); M5.Lcd.print("Options");
- M5.Lcd.drawRect( 212, 210, 105, 30, WHITE);
- M5.Lcd.setCursor(212+2+(14*(7/3)),217); M5.Lcd.print("Sort");
- //break;
- }
- void clsEuroMillionsOptions()
- {
- M5.Lcd.setTextColor(BLACK);
- M5.Lcd.setCursor( 1*(13*0)-1, 40); M5.Lcd.print(">"); M5.Lcd.setCursor( 1*(13*4)-1, 40); M5.Lcd.print("<");
- M5.Lcd.setCursor( 1*(13*0)-1, 60); M5.Lcd.print(">"); M5.Lcd.setCursor( 1*(13*4)-1, 60); M5.Lcd.print("<");
- M5.Lcd.setCursor( 1*(13*0)-1, 80); M5.Lcd.print(">"); M5.Lcd.setCursor( 1*(13*4)-1, 80); M5.Lcd.print("<");
- M5.Lcd.setCursor( 1*(13*0)-1, 100); M5.Lcd.print(">"); M5.Lcd.setCursor( 1*(13*4)-1, 100); M5.Lcd.print("<");
- M5.Lcd.setCursor( 1*(13*0)-1, 120); M5.Lcd.print(">"); M5.Lcd.setCursor( 1*(13*4)-1, 120); M5.Lcd.print("<");
- M5.Lcd.setCursor( 1*(13*0)-1, 140); M5.Lcd.print(">"); M5.Lcd.setCursor( 1*(13*4)-1, 140); M5.Lcd.print("<");
- M5.Lcd.setCursor( 1*(13*0)-1, 160); M5.Lcd.print(">"); M5.Lcd.setCursor( 1*(13*4)-1, 160); M5.Lcd.print("<");
- M5.Lcd.setCursor( 1*(13*0)-1, 180); M5.Lcd.print(">"); M5.Lcd.setCursor( 1*(13*4)-1, 180); M5.Lcd.print("<");
- M5.Lcd.setCursor( 1*(13*6)-1, 40); M5.Lcd.print("["); M5.Lcd.setCursor( 1*(13*8)-1, 40); M5.Lcd.print("]");
- M5.Lcd.setCursor( 1*(13*10)-4, 40); M5.Lcd.print("["); M5.Lcd.setCursor( 1*(13*12)-3, 40); M5.Lcd.print("]");
- M5.Lcd.setCursor( 1*(13*14)-10,40); M5.Lcd.print("["); M5.Lcd.setCursor( 1*(13*16)-9, 40); M5.Lcd.print("]");
- M5.Lcd.setCursor( 1*(13*18)-11,40); M5.Lcd.print("["); M5.Lcd.setCursor( 1*(13*20)-12,40); M5.Lcd.print("]");
- M5.Lcd.setCursor( 1*(13*22)-16,40); M5.Lcd.print("["); M5.Lcd.setCursor( 1*(13*24)-14,40); M5.Lcd.print("]");
- M5.Lcd.setCursor( 1*(13*6)-1, 60); M5.Lcd.print("["); M5.Lcd.setCursor( 1*(13*8)-1, 60); M5.Lcd.print("]");
- M5.Lcd.setCursor( 1*(13*10)-4, 60); M5.Lcd.print("["); M5.Lcd.setCursor( 1*(13*12)-3, 60); M5.Lcd.print("]");
- M5.Lcd.setCursor( 1*(13*14)-10,60); M5.Lcd.print("["); M5.Lcd.setCursor( 1*(13*16)-9, 60); M5.Lcd.print("]");
- M5.Lcd.setCursor( 1*(13*18)-11,60); M5.Lcd.print("["); M5.Lcd.setCursor( 1*(13*20)-12,60); M5.Lcd.print("]");
- M5.Lcd.setCursor( 1*(13*22)-16,60); M5.Lcd.print("["); M5.Lcd.setCursor( 1*(13*24)-14,60); M5.Lcd.print("]");
- M5.Lcd.setCursor( 1*(13*6)-1, 80); M5.Lcd.print("["); M5.Lcd.setCursor( 1*(13*8)-1, 80); M5.Lcd.print("]");
- M5.Lcd.setCursor( 1*(13*10)-4, 80); M5.Lcd.print("["); M5.Lcd.setCursor( 1*(13*12)-3, 80); M5.Lcd.print("]");
- M5.Lcd.setCursor( 1*(13*14)-10,80); M5.Lcd.print("["); M5.Lcd.setCursor( 1*(13*16)-9, 80); M5.Lcd.print("]");
- M5.Lcd.setCursor( 1*(13*18)-11,80); M5.Lcd.print("["); M5.Lcd.setCursor( 1*(13*20)-12,80); M5.Lcd.print("]");
- M5.Lcd.setCursor( 1*(13*22)-16,80); M5.Lcd.print("["); M5.Lcd.setCursor( 1*(13*24)-14,80); M5.Lcd.print("]");
- M5.Lcd.setCursor( 1*(13*6)-1, 100); M5.Lcd.print("["); M5.Lcd.setCursor( 1*(13*8)-1, 100); M5.Lcd.print("]");
- M5.Lcd.setCursor( 1*(13*10)-4, 100); M5.Lcd.print("["); M5.Lcd.setCursor( 1*(13*12)-3, 100); M5.Lcd.print("]");
- M5.Lcd.setCursor( 1*(13*14)-10,100); M5.Lcd.print("["); M5.Lcd.setCursor( 1*(13*16)-9, 100); M5.Lcd.print("]");
- M5.Lcd.setCursor( 1*(13*18)-11,100); M5.Lcd.print("["); M5.Lcd.setCursor( 1*(13*20)-12,100); M5.Lcd.print("]");
- M5.Lcd.setCursor( 1*(13*22)-16,100); M5.Lcd.print("["); M5.Lcd.setCursor( 1*(13*24)-14,100); M5.Lcd.print("]");
- M5.Lcd.setCursor( 1*(13*6)-1, 120); M5.Lcd.print("["); M5.Lcd.setCursor( 1*(13*8)-1, 120); M5.Lcd.print("]");
- M5.Lcd.setCursor( 1*(13*10)-4, 120); M5.Lcd.print("["); M5.Lcd.setCursor( 1*(13*12)-3, 120); M5.Lcd.print("]");
- M5.Lcd.setCursor( 1*(13*14)-10,120); M5.Lcd.print("["); M5.Lcd.setCursor( 1*(13*16)-9, 120); M5.Lcd.print("]");
- M5.Lcd.setCursor( 1*(13*18)-11,120); M5.Lcd.print("["); M5.Lcd.setCursor( 1*(13*20)-12,120); M5.Lcd.print("]");
- M5.Lcd.setCursor( 1*(13*22)-16,120); M5.Lcd.print("["); M5.Lcd.setCursor( 1*(13*24)-14,120); M5.Lcd.print("]");
- M5.Lcd.setCursor( 1*(13*6)-1, 140); M5.Lcd.print("["); M5.Lcd.setCursor( 1*(13*8)-1, 140); M5.Lcd.print("]");
- M5.Lcd.setCursor( 1*(13*10)-4, 140); M5.Lcd.print("["); M5.Lcd.setCursor( 1*(13*12)-3, 140); M5.Lcd.print("]");
- M5.Lcd.setCursor( 1*(13*14)-10,140); M5.Lcd.print("["); M5.Lcd.setCursor( 1*(13*16)-9, 140); M5.Lcd.print("]");
- M5.Lcd.setCursor( 1*(13*18)-11,140); M5.Lcd.print("["); M5.Lcd.setCursor( 1*(13*20)-12,140); M5.Lcd.print("]");
- M5.Lcd.setCursor( 1*(13*22)-16,140); M5.Lcd.print("["); M5.Lcd.setCursor( 1*(13*24)-14,140); M5.Lcd.print("]");
- M5.Lcd.setCursor( 1*(13*6)-1, 160); M5.Lcd.print("["); M5.Lcd.setCursor( 1*(13*8)-1, 160); M5.Lcd.print("]");
- M5.Lcd.setCursor( 1*(13*10)-4, 160); M5.Lcd.print("["); M5.Lcd.setCursor( 1*(13*12)-3, 160); M5.Lcd.print("]");
- M5.Lcd.setCursor( 1*(13*14)-10,160); M5.Lcd.print("["); M5.Lcd.setCursor( 1*(13*16)-9, 160); M5.Lcd.print("]");
- M5.Lcd.setCursor( 1*(13*18)-11,160); M5.Lcd.print("["); M5.Lcd.setCursor( 1*(13*20)-12,160); M5.Lcd.print("]");
- M5.Lcd.setCursor( 1*(13*22)-16,160); M5.Lcd.print("["); M5.Lcd.setCursor( 1*(13*24)-14,160); M5.Lcd.print("]");
- M5.Lcd.setCursor( 1*(13*6)-1, 180); M5.Lcd.print("["); M5.Lcd.setCursor( 1*(13*8)-1, 180); M5.Lcd.print("]");
- M5.Lcd.setCursor( 1*(13*10)-4, 180); M5.Lcd.print("["); M5.Lcd.setCursor( 1*(13*12)-3, 180); M5.Lcd.print("]");
- M5.Lcd.setCursor( 1*(13*14)-10,180); M5.Lcd.print("["); M5.Lcd.setCursor( 1*(13*16)-9, 180); M5.Lcd.print("]");
- M5.Lcd.setCursor( 1*(13*18)-11,180); M5.Lcd.print("["); M5.Lcd.setCursor( 1*(13*20)-12,180); M5.Lcd.print("]");
- M5.Lcd.setCursor( 1*(13*22)-16,180); M5.Lcd.print("["); M5.Lcd.setCursor( 1*(13*24)-14,180); M5.Lcd.print("]");
- }
- void drawEuroMillionsOptions()
- {
- M5.Lcd.setTextColor(YELLOW);
- M5.Lcd.setTextFont(1);
- M5.Lcd.setTextSize(3);
- M5.Lcd.setCursor( 0, 0); M5.Lcd.print(" > O P T I O N < ");
- M5.Lcd.setTextColor(WHITE);
- M5.Lcd.setTextFont(1);
- M5.Lcd.setTextSize(2);
- M5.Lcd.setCursor( 0, 40); M5.Lcd.print(" 1 -2 -1 00 +1 +2");
- M5.Lcd.setCursor( 0, 60); M5.Lcd.print(" 2 -2 -1 00 +1 +2");
- M5.Lcd.setCursor( 0, 80); M5.Lcd.print(" 3 -2 -1 00 +1 +2");
- M5.Lcd.setCursor( 0, 100); M5.Lcd.print(" 4 -2 -1 00 +1 +2");
- M5.Lcd.setCursor( 0, 120); M5.Lcd.print(" 5 -2 -1 00 +1 +2");
- M5.Lcd.setCursor( 0, 140); M5.Lcd.print(" 6 -2 -1 00 +1 +2");
- M5.Lcd.setCursor( 0, 160); M5.Lcd.print(" 7 -2 -1 00 +1 +2");
- M5.Lcd.setCursor( 0, 180); M5.Lcd.print(" 8 -2 -1 00 +1 +2");
- displayBattery();
- displayBatteryLevel();
- }
- void redrawEuroMillionsOptions()
- {
- //M5.Lcd.fillRect( 0, 0, 320, 240, BLACK);
- clsEuroMillionsOptions();
- M5.Lcd.setTextColor(YELLOW);
- if (MenuLine<9 && MenuLine>0) { M5.Lcd.setCursor( 1*(13*0)-1, 20*(MenuLine+1)); M5.Lcd.print(">"); M5.Lcd.setCursor( 1*(13*4)-1, 20*(MenuLine+1)); M5.Lcd.print("<"); }
- if (Option1==-2) { M5.Lcd.setCursor( 1*(13*6)-1, 40); M5.Lcd.print("["); M5.Lcd.setCursor( 1*(13*8)-1, 40); M5.Lcd.print("]"); }
- if (Option1==-1) { M5.Lcd.setCursor( 1*(13*10)-4, 40); M5.Lcd.print("["); M5.Lcd.setCursor( 1*(13*12)-3, 40); M5.Lcd.print("]"); }
- if (Option1==0) { M5.Lcd.setCursor( 1*(13*14)-10,40); M5.Lcd.print("["); M5.Lcd.setCursor( 1*(13*16)-9, 40); M5.Lcd.print("]"); }
- if (Option1==1) { M5.Lcd.setCursor( 1*(13*18)-11,40); M5.Lcd.print("["); M5.Lcd.setCursor( 1*(13*20)-12,40); M5.Lcd.print("]"); }
- if (Option1==2) { M5.Lcd.setCursor( 1*(13*22)-16,40); M5.Lcd.print("["); M5.Lcd.setCursor( 1*(13*24)-14,40); M5.Lcd.print("]"); }
- if (Option2==-2) { M5.Lcd.setCursor( 1*(13*6)-1, 60); M5.Lcd.print("["); M5.Lcd.setCursor( 1*(13*8)-1, 60); M5.Lcd.print("]"); }
- if (Option2==-1) { M5.Lcd.setCursor( 1*(13*10)-4, 60); M5.Lcd.print("["); M5.Lcd.setCursor( 1*(13*12)-3, 60); M5.Lcd.print("]"); }
- if (Option2==0) { M5.Lcd.setCursor( 1*(13*14)-10,60); M5.Lcd.print("["); M5.Lcd.setCursor( 1*(13*16)-9, 60); M5.Lcd.print("]"); }
- if (Option2==1) { M5.Lcd.setCursor( 1*(13*18)-11,60); M5.Lcd.print("["); M5.Lcd.setCursor( 1*(13*20)-12,60); M5.Lcd.print("]"); }
- if (Option2==2) { M5.Lcd.setCursor( 1*(13*22)-16,60); M5.Lcd.print("["); M5.Lcd.setCursor( 1*(13*24)-14,60); M5.Lcd.print("]"); }
- if (Option3==-2) { M5.Lcd.setCursor( 1*(13*6)-1, 80); M5.Lcd.print("["); M5.Lcd.setCursor( 1*(13*8)-1, 80); M5.Lcd.print("]"); }
- if (Option3==-1) { M5.Lcd.setCursor( 1*(13*10)-4, 80); M5.Lcd.print("["); M5.Lcd.setCursor( 1*(13*12)-3, 80); M5.Lcd.print("]"); }
- if (Option3==0) { M5.Lcd.setCursor( 1*(13*14)-10,80); M5.Lcd.print("["); M5.Lcd.setCursor( 1*(13*16)-9, 80); M5.Lcd.print("]"); }
- if (Option3==1) { M5.Lcd.setCursor( 1*(13*18)-11,80); M5.Lcd.print("["); M5.Lcd.setCursor( 1*(13*20)-12,80); M5.Lcd.print("]"); }
- if (Option3==2) { M5.Lcd.setCursor( 1*(13*22)-16,80); M5.Lcd.print("["); M5.Lcd.setCursor( 1*(13*24)-14,80); M5.Lcd.print("]"); }
- if (Option4==-2) { M5.Lcd.setCursor( 1*(13*6)-1, 100); M5.Lcd.print("["); M5.Lcd.setCursor( 1*(13*8)-1, 100); M5.Lcd.print("]"); }
- if (Option4==-1) { M5.Lcd.setCursor( 1*(13*10)-4, 100); M5.Lcd.print("["); M5.Lcd.setCursor( 1*(13*12)-3, 100); M5.Lcd.print("]"); }
- if (Option4==0) { M5.Lcd.setCursor( 1*(13*14)-10,100); M5.Lcd.print("["); M5.Lcd.setCursor( 1*(13*16)-9, 100); M5.Lcd.print("]"); }
- if (Option4==1) { M5.Lcd.setCursor( 1*(13*18)-11,100); M5.Lcd.print("["); M5.Lcd.setCursor( 1*(13*20)-12,100); M5.Lcd.print("]"); }
- if (Option4==2) { M5.Lcd.setCursor( 1*(13*22)-16,100); M5.Lcd.print("["); M5.Lcd.setCursor( 1*(13*24)-14,100); M5.Lcd.print("]"); }
- if (Option5==-2) { M5.Lcd.setCursor( 1*(13*6)-1, 120); M5.Lcd.print("["); M5.Lcd.setCursor( 1*(13*8)-1, 120); M5.Lcd.print("]"); }
- if (Option5==-1) { M5.Lcd.setCursor( 1*(13*10)-4, 120); M5.Lcd.print("["); M5.Lcd.setCursor( 1*(13*12)-3, 120); M5.Lcd.print("]"); }
- if (Option5==0) { M5.Lcd.setCursor( 1*(13*14)-10,120); M5.Lcd.print("["); M5.Lcd.setCursor( 1*(13*16)-9, 120); M5.Lcd.print("]"); }
- if (Option5==1) { M5.Lcd.setCursor( 1*(13*18)-11,120); M5.Lcd.print("["); M5.Lcd.setCursor( 1*(13*20)-12,120); M5.Lcd.print("]"); }
- if (Option5==2) { M5.Lcd.setCursor( 1*(13*22)-16,120); M5.Lcd.print("["); M5.Lcd.setCursor( 1*(13*24)-14,120); M5.Lcd.print("]"); }
- if (Option6==-2) { M5.Lcd.setCursor( 1*(13*6)-1, 140); M5.Lcd.print("["); M5.Lcd.setCursor( 1*(13*8)-1, 140); M5.Lcd.print("]"); }
- if (Option6==-1) { M5.Lcd.setCursor( 1*(13*10)-4, 140); M5.Lcd.print("["); M5.Lcd.setCursor( 1*(13*12)-3, 140); M5.Lcd.print("]"); }
- if (Option6==0) { M5.Lcd.setCursor( 1*(13*14)-10,140); M5.Lcd.print("["); M5.Lcd.setCursor( 1*(13*16)-9, 140); M5.Lcd.print("]"); }
- if (Option6==1) { M5.Lcd.setCursor( 1*(13*18)-11,140); M5.Lcd.print("["); M5.Lcd.setCursor( 1*(13*20)-12,140); M5.Lcd.print("]"); }
- if (Option6==2) { M5.Lcd.setCursor( 1*(13*22)-16,140); M5.Lcd.print("["); M5.Lcd.setCursor( 1*(13*24)-14,140); M5.Lcd.print("]"); }
- if (Option7==-2) { M5.Lcd.setCursor( 1*(13*6)-1, 160); M5.Lcd.print("["); M5.Lcd.setCursor( 1*(13*8)-1, 160); M5.Lcd.print("]"); }
- if (Option7==-1) { M5.Lcd.setCursor( 1*(13*10)-4, 160); M5.Lcd.print("["); M5.Lcd.setCursor( 1*(13*12)-3, 160); M5.Lcd.print("]"); }
- if (Option7==0) { M5.Lcd.setCursor( 1*(13*14)-10,160); M5.Lcd.print("["); M5.Lcd.setCursor( 1*(13*16)-9, 160); M5.Lcd.print("]"); }
- if (Option7==1) { M5.Lcd.setCursor( 1*(13*18)-11,160); M5.Lcd.print("["); M5.Lcd.setCursor( 1*(13*20)-12,160); M5.Lcd.print("]"); }
- if (Option7==2) { M5.Lcd.setCursor( 1*(13*22)-16,160); M5.Lcd.print("["); M5.Lcd.setCursor( 1*(13*24)-14,160); M5.Lcd.print("]"); }
- if (Option8==-2) { M5.Lcd.setCursor( 1*(13*6)-1, 180); M5.Lcd.print("["); M5.Lcd.setCursor( 1*(13*8)-1, 180); M5.Lcd.print("]"); }
- if (Option8==-1) { M5.Lcd.setCursor( 1*(13*10)-4, 180); M5.Lcd.print("["); M5.Lcd.setCursor( 1*(13*12)-3, 180); M5.Lcd.print("]"); }
- if (Option8==0) { M5.Lcd.setCursor( 1*(13*14)-10,180); M5.Lcd.print("["); M5.Lcd.setCursor( 1*(13*16)-9, 180); M5.Lcd.print("]"); }
- if (Option8==1) { M5.Lcd.setCursor( 1*(13*18)-11,180); M5.Lcd.print("["); M5.Lcd.setCursor( 1*(13*20)-12,180); M5.Lcd.print("]"); }
- if (Option8==2) { M5.Lcd.setCursor( 1*(13*22)-16,180); M5.Lcd.print("["); M5.Lcd.setCursor( 1*(13*24)-14,180); M5.Lcd.print("]"); }
- M5.Lcd.setTextColor(GREEN);
- M5.Lcd.setTextFont(1);
- M5.Lcd.setTextSize(2);
- if (IndexPos<9)
- {
- M5.Lcd.fillRect( 0, 210, 320, 30, BLUE);
- M5.Lcd.drawRect( 0, 210, 105, 30, WHITE);
- // M5.Lcd.setCursor( 0+5+(13*(3)),217); M5.Lcd.print("<");
- M5.Lcd.fillTriangle(0+5+(13*(5)), 220, 0+5+(13*(3)), 225, 0+5+(13*(5)), 230, GREEN);
- M5.Lcd.drawRect( 106, 210, 105, 30, WHITE);
- // M5.Lcd.setCursor(106+5+(13*(3)),217); M5.Lcd.print("V");
- M5.Lcd.fillTriangle(106+5+(13*(3)), 220, 106+5+(13*(4)), 230, 106+5+(13*(5)), 220, GREEN);
- M5.Lcd.drawRect( 212, 210, 105, 30, WHITE);
- // M5.Lcd.setCursor(212+5+(13*(3)),217); M5.Lcd.print(">");
- M5.Lcd.fillTriangle(212+5+(13*(3)), 220, 212+5+(13*(5)), 225, 212+5+(13*(3)), 230, GREEN);
- }
- if (MenuLine==9)
- {
- M5.Lcd.fillRect( 0, 210, 320, 30, BLUE);
- M5.Lcd.drawRect( 0, 210, 105, 30, WHITE);
- M5.Lcd.setCursor( 0+5+(13*(3)),217); M5.Lcd.print(" ");
- M5.Lcd.drawRect( 106, 210, 105, 30, WHITE);
- // M5.Lcd.setCursor(106+5+(13*(3)),217); M5.Lcd.print("V");
- M5.Lcd.fillTriangle(106+5+(13*(3)), 220, 106+5+(13*(4)), 230, 106+5+(13*(5)), 220, GREEN);
- M5.Lcd.drawRect( 212, 210, 105, 30, WHITE);
- M5.Lcd.setCursor(212+5+(13*(2)),217); M5.Lcd.print("Exit");
- }
- displayBatteryLevel();
- }
- void getEuroMillionsOptions()
- {
- while(1)
- {
- if (M5.BtnB.wasPressed())
- {
- MenuLine++;
- redrawEuroMillionsOptions();
- }
- if (M5.BtnA.wasPressed() && MenuLine<9)
- {
- if (MenuLine==1) Option1--; if (Option1==-3) Option1=-2;
- if (MenuLine==2) Option2--; if (Option2==-3) Option2=-2;
- if (MenuLine==3) Option3--; if (Option3==-3) Option3=-2;
- if (MenuLine==4) Option4--; if (Option4==-3) Option4=-2;
- if (MenuLine==5) Option5--; if (Option5==-3) Option5=-2;
- if (MenuLine==6) Option6--; if (Option6==-3) Option6=-2;
- if (MenuLine==7) Option7--; if (Option7==-3) Option7=-2;
- if (MenuLine==8) Option8--; if (Option8==-3) Option8=-2;
- redrawEuroMillionsOptions();
- }
- if (M5.BtnC.wasPressed() && MenuLine<9)
- {
- if (MenuLine==1) Option1++; if (Option1==3) Option1=2;
- if (MenuLine==2) Option2++; if (Option2==3) Option2=2;
- if (MenuLine==3) Option3++; if (Option3==3) Option3=2;
- if (MenuLine==4) Option4++; if (Option4==3) Option4=2;
- if (MenuLine==5) Option5++; if (Option5==3) Option5=2;
- if (MenuLine==6) Option6++; if (Option6==3) Option6=2;
- if (MenuLine==7) Option7++; if (Option7==3) Option7=2;
- if (MenuLine==8) Option8++; if (Option8==3) Option8=2;
- redrawEuroMillionsOptions();
- }
- if (MenuLine>9)
- {
- MenuLine=1;
- redrawEuroMillionsOptions();
- }
- if (M5.BtnC.wasPressed() && MenuLine==9)
- {
- WriteEprom();
- M5.Lcd.fillRect( 0, 0, 320, 240, BLACK);
- displayBattery();
- displayBatteryLevel();
- displayLogo();
- getEuroMillionsNumbers();
- delay(100);
- break;
- }
- displayBatteryLevel();
- M5.update();
- }
- }
- void setup()
- {
- M5.begin();
- Wire.begin();
- EEPROM.begin(16);
- //ClearEprom(); // Use this the first time program is uploaded for initial Eprom values.
- delay(100);
- ReadEprom();
- displayBattery();
- displayBatteryLevel();
- displayLogo();
- getEuroMillionsNumbers();
- }
- void loop()
- {
- if (M5.BtnC.wasPressed())
- {
- M5.Lcd.fillRect( 0, 0, 320, 240, BLACK);
- displayBattery();
- displayBatteryLevel();
- displayLogo();
- getEuroMillionsNumbers();
- delay(100);
- }
- if (M5.BtnB.wasPressed())
- {
- M5.Lcd.fillRect( 0, 0, 320, 240, BLACK);
- displayBattery();
- displayBatteryLevel();
- MenuLine=0;
- drawEuroMillionsOptions();
- redrawEuroMillionsOptions();
- getEuroMillionsOptions();
- delay(100);
- }
- displayBatteryLevel();
- M5.update();
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement