//NOKIA 5510 projection clock project working dig clock not fibnished now.. #include -* #include #include //thanks to adafruit // Software SPI (slower updates, more flexible pin options): // pin 7 - Serial clock out (SCLK) // pin 6 - Serial data out (DIN) // pin 5 - Data/Command select (D/C) // pin 4 - LCD chip select (CS) // pin 3 - LCD reset (RST) //Adafruit_PCD8544 display = Adafruit_PCD8544(PA5, PA7, PA4, PB1, PB0); Adafruit_PCD8544 display = Adafruit_PCD8544(PA5, PA7, PA4, PB1, PB0); //Adafruit_PCD8544(int8_t SCLK, int8_t DIN, int8_t DC, int8_t CS, int8_t RST); // 1-> PB0 -- 2->PB1 -- 3->PA4 -- 4->PA7 -- 5->PA5 -- 6->3V3 -- 7->3V3 -- 8->GND (NOKIA 5510 PCB board) //contacts //1=PB0,2--,3=GND,4=3V3,5=PB1,6=PA4,7=PA7,8=PA5,9=3V3 const unsigned char PROGMEM monstercat []= { 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFC, 0x7F, 0xFF, 0x7F, 0xFF, 0xF0, // ############################################## ############### ################### 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF9, 0x3F, 0xFE, 0xFF, 0xFF, 0xC0, // ############################################# # ############# ################## 0xC3, 0x87, 0xFF, 0xFE, 0xFF, 0xFB, 0xBF, 0xFD, 0xFF, 0xFF, 0x30, // ## ### ################## ############# ### ############ ################# ## 0xDD, 0x77, 0xFF, 0xFD, 0x3F, 0x9B, 0xDF, 0xFB, 0xFF, 0xF8, 0xF0, // ## ### # ### ################# # ####### ## #### ########## ############### #### 0xDE, 0xF7, 0xFF, 0xFD, 0xD0, 0x67, 0xDF, 0xFB, 0xFF, 0xE7, 0xF0, // ## #### #### ################# ### # ## ##### ########## ############# ####### 0xDF, 0xF7, 0xFF, 0xFD, 0xEF, 0xFF, 0xEF, 0xF7, 0xFE, 0x1F, 0xF0, // ## ######### ################# #### ############### ######## ########## ######### 0xDB, 0xB7, 0xFF, 0xFD, 0xFC, 0x07, 0xF7, 0xFF, 0xF1, 0xFF, 0xF0, // ## ## ### ## ################# ####### ####### ############### ############# 0xD9, 0x37, 0xCF, 0xFD, 0xF0, 0x1F, 0xFB, 0xFF, 0xCF, 0xFF, 0xF0, // ## ## # ## ##### ########## ##### ########## ############ ################ 0xDA, 0xB7, 0xF3, 0xFD, 0xFF, 0xFF, 0xFD, 0xFF, 0x3F, 0xFF, 0xF0, // ## ## # # ## ####### ######## ####################### ######### ################## 0xC3, 0x87, 0xFC, 0xFB, 0xFF, 0xFF, 0xE5, 0xFF, 0xFF, 0xFF, 0xF0, // ## ### ######### ##### ##################### # ############################# 0xFF, 0xFF, 0xFF, 0xF7, 0xFF, 0xFF, 0xF4, 0xFF, 0xFF, 0xFF, 0xF0, // ############################ ####################### # ############################ 0xFF, 0xFF, 0xFF, 0xED, 0xFF, 0xFF, 0xFF, 0x3F, 0xFF, 0xFF, 0xF0, // ########################### ## ######################### ########################## 0xC0, 0x07, 0xFF, 0xE9, 0xFF, 0xFF, 0xFF, 0x9F, 0x00, 0x00, 0x00, // ## ############## # ########################## ##### 0xDF, 0xF7, 0xFF, 0xEB, 0xFF, 0xFF, 0xFF, 0xCF, 0xFF, 0xFF, 0xF0, // ## ######### ############## # ############################ ######################## 0xDF, 0xF7, 0xFF, 0xDF, 0xFF, 0xFF, 0xFF, 0xCF, 0xFF, 0xFF, 0xF0, // ## ######### ############# ############################### ######################## 0xD8, 0x07, 0x01, 0xDF, 0xFF, 0xE3, 0x1F, 0xDF, 0xFF, 0xFF, 0xF0, // ## ## ### ### ################ ## ####### ######################### 0xDB, 0xFF, 0xFF, 0xDF, 0xFE, 0x01, 0x0F, 0xBF, 0xF3, 0xFF, 0xF0, // ## ## #################### ############ # ##### ########## ############## 0xD8, 0x3F, 0xFF, 0xDF, 0xF2, 0x00, 0x0F, 0x7F, 0x7C, 0x1F, 0xF0, // ## ## ################ ######### # #### ####### ##### ######### 0xDF, 0xBF, 0xFF, 0xEF, 0xE0, 0x00, 0x0C, 0xC0, 0xFF, 0xE0, 0x70, // ## ###### ################# ####### ## ## ########### ### 0xD8, 0x3F, 0xF8, 0x77, 0xE0, 0x00, 0x0C, 0x1E, 0x7F, 0xFF, 0x80, // ## ## ########### ### ###### ## #### ################ 0xDB, 0xFF, 0xE7, 0xF8, 0xF0, 0x00, 0x8C, 0xFF, 0x7F, 0xFF, 0xF0, // ## ## ############# ######## #### # ## ######## ################### 0xD8, 0x07, 0x9F, 0xFF, 0x78, 0x43, 0xFB, 0xFF, 0x7F, 0xFF, 0xF0, // ## ## #### ############# #### # ####### ########## ################### 0xDF, 0xF7, 0x7F, 0xFF, 0xBC, 0x7F, 0xFF, 0xFF, 0x7F, 0xFF, 0xF0, // ## ######### ### ################ #### ####################### ################### 0xDF, 0xF6, 0xFF, 0xFF, 0xCF, 0xFF, 0xFF, 0xFE, 0x7F, 0xFF, 0xF0, // ## ######### ## ################## ########################### ################### 0xC0, 0x07, 0xFF, 0xC0, 0x07, 0xFF, 0xFF, 0xFC, 0xFF, 0xFF, 0xF0, // ## ############# ######################### #################### 0xFF, 0xFF, 0xFF, 0xBF, 0xFF, 0xFF, 0xFF, 0xC0, 0xFF, 0xFF, 0xF0, // ######################### ################################ #################### 0xC0, 0x07, 0xFF, 0x7F, 0xFF, 0xFF, 0xFF, 0x0F, 0xFF, 0xFF, 0xF0, // ## ########### ############################### ######################## 0xDF, 0xF7, 0xFE, 0xFF, 0xFF, 0xFF, 0xFF, 0x9F, 0xFF, 0xFF, 0xF0, // ## ######### ########## ################################# ######################### 0xDF, 0xF7, 0xFE, 0xFF, 0xFF, 0xFF, 0xFF, 0xDF, 0xFF, 0xFF, 0xF0, // ## ######### ########## ################################## ######################### 0xD8, 0x37, 0xFF, 0x7F, 0x3F, 0xFF, 0xFF, 0xDF, 0xFF, 0xFF, 0xF0, // ## ## ## ########### ####### ######################## ######################### 0xDB, 0xB7, 0xFF, 0x80, 0x1F, 0xE7, 0x1F, 0xDF, 0xFF, 0xFF, 0xF0, // ## ## ### ## ############ ######## ### ####### ######################### 0xDB, 0xB7, 0xFE, 0x00, 0x3F, 0xC7, 0xDF, 0xD1, 0xFF, 0xFF, 0xF0, // ## ## ### ## ########## ######## ##### ####### # ##################### 0xD8, 0x37, 0xFC, 0xFC, 0x7F, 0x87, 0xCF, 0x88, 0x3F, 0xFF, 0xF0, // ## ## ## ######### ###### ######## ##### ##### # ################## 0xDF, 0xF7, 0xF9, 0xFF, 0xFF, 0xBF, 0xEF, 0x8F, 0xBF, 0xFF, 0xF0, // ## ######### ######## ################## ######### ##### ##### ################## 0xDF, 0xF7, 0xFB, 0xC0, 0xFF, 0xBF, 0xEF, 0xFF, 0x9F, 0xFF, 0xF0, // ## ######### ######## #### ######### ######### ############# ################# 0xC0, 0x07, 0xFB, 0x9F, 0x7F, 0xBF, 0xEF, 0xFF, 0x9F, 0xFF, 0xF0, // ## ######## ### ##### ######## ######### ############# ################# 0xFF, 0xFF, 0xF8, 0x1F, 0x7F, 0xBF, 0xCF, 0xFF, 0xBF, 0xFF, 0xF0, // ##################### ##### ######## ######## ############# ################## 0xFF, 0xFF, 0xFC, 0x3F, 0x3F, 0x9F, 0xDF, 0xFF, 0x3F, 0xFF, 0xF0, // ###################### ###### ####### ####### ############# ################## 0xC3, 0x87, 0xFF, 0x3F, 0xBF, 0xDF, 0xDF, 0xF8, 0x7F, 0xFC, 0xF0, // ## ### ########### ####### ######## ####### ########## ############# #### 0xDB, 0xB7, 0xFF, 0xFF, 0xDF, 0xCF, 0xC0, 0x03, 0xFF, 0x9F, 0x70, // ## ## ### ## ##################### ####### ###### ########### ##### ### 0xDA, 0xB7, 0xFF, 0xF8, 0x0F, 0xEF, 0xFF, 0xFF, 0xFF, 0x9F, 0x70, // ## ## # # ## ################ ####### ############################# ##### ### 0xD9, 0x37, 0xFF, 0xF7, 0xC7, 0xEF, 0xFF, 0xFF, 0xFF, 0xFF, 0x70, // ## ## # ## ############### ##### ###### #################################### ### 0xDB, 0xB7, 0xFF, 0xEF, 0xFF, 0xEF, 0xFF, 0xFF, 0xFF, 0xFC, 0xF0, // ## ## ### ## ############## ############### ################################## #### 0xDF, 0xF7, 0xFF, 0xEF, 0xFF, 0xE7, 0xFF, 0xFF, 0xFF, 0xFF, 0x70, // ## ######### ############## ############### ################################### ### 0xDE, 0xF7, 0xFF, 0xEF, 0xFF, 0xF7, 0xFF, 0xFF, 0xFF, 0x9F, 0x70, // ## #### #### ############## ################ ############################ ##### ### 0xDD, 0x77, 0xFF, 0xE7, 0xFF, 0xF7, 0xFF, 0xFF, 0xFF, 0x9F, 0x70, // ## ### # ### ############## ############### ############################ ##### ### 0xC3, 0x87, 0xFF, 0xF0, 0x78, 0x03, 0xFF, 0xFF, 0xFF, 0xFC, 0xF0, // ## ### ############### #### ################################ #### 0xFF, 0xFF, 0xFF, 0xF8, 0x03, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF0, // ############################# ############################################## }; /* ---1-- * | | * 3 2 []8 * | | * ---4--- * | | * 5 6 []8 * | | */ #define seg1 PA1 //C13 #define seg2 PA6 //C14 #define seg3 PA2 //C15 #define seg4 PA3 #define seg5 PB10 #define seg6 PB11 #define seg7 PB9 #define dig1 PB12 #define dig2 PB13 #define dig3 PB14 #define dig4 PB15 #define dig5 PA8 #define dig6 PA9 #define dot PA10 #define t1 PB8 #define t2 PB7 #define t3 PB6 #define t4 PB5 #define t5 PA15 #define power PA0 uint16_t digitise[14][10],fadefine=600,ani=599,aus=0,red,powerb,das,zeit1,eintag=86400,vbis =300,contra=56;; uint8_t onpress[10]; long maintime=millis(),maintime2=millis(),flink=micros(); long timez=millis(); long dieZeit=43200,adder; //12uhr String outzi=""; String adzi=""; void setup() { pinMode(dig1,OUTPUT); pinMode(dig2,OUTPUT); pinMode(dig3,OUTPUT); pinMode(dig4,OUTPUT); pinMode(dig5,OUTPUT); pinMode(dig6,OUTPUT); pinMode(seg1,OUTPUT); pinMode(seg2,OUTPUT); pinMode(seg3,OUTPUT); pinMode(seg4,OUTPUT); pinMode(seg5,OUTPUT); pinMode(seg6,OUTPUT); pinMode(seg7,OUTPUT); pinMode(t1, INPUT); pinMode(t2, INPUT); pinMode(t3 ,INPUT); pinMode(t4 ,INPUT); pinMode(t5 ,INPUT);pinMode(dot, OUTPUT); delay(500); display.begin(); display.setContrast(contra);display.setRotation(2); display.display(); // show splashscreen display.clearDisplay(); // clears the screen and buffer display.fillRect(0, 0, 84, 48, WHITE); display.drawBitmap(0,0, monstercat, 84, 48, BLACK); display.display(); delay(500); } uint16_t auswahl=0; void loop() { zeitreise(); } void frame(void){ display.fillRect(0, 0, 84, 48, WHITE); display.setTextSize(1); display.setTextColor(BLACK); display.setCursor(2,2); display.print("VBAT"); display.setCursor(42,2);display.print(powerb); display.setCursor(2,12);display.print("Vbis"); display.setCursor(42,12);display.print(vbis); display.setCursor(2,24); display.print(outzi); display.drawFastHLine(2+(das-1)*6,32,5,BLACK); display.fillRect(1,34,powerb/5,10,BLACK); display.display(); // display.print("[MEOW] :3"); } boolean minusset=false,plusset=false; void istinput(void){zeit1++; if (zeit1 >=2) { if (digitalRead(t1) == HIGH && onpress[0] ==0) { onpress[0] =1;das++; if(das>7){das=0;}} if (onpress[0] == 1) { onpress[1]++;}if (onpress[1] >= 10) { onpress[1] =0; onpress[0]=0; } if (digitalRead(t2) == HIGH && onpress[2] ==0 &&das>0) { onpress[2] =1;das--; } if (onpress[2] == 1) { onpress[3]++;}if (onpress[3] >= 15) { onpress[3] =0; onpress[2]=0; } if (digitalRead(t3) == HIGH && onpress[4] ==0) { onpress[4] =1;plusset=true; } if (onpress[4] == 1) { onpress[5]++;}if (onpress[5] >= 5) { onpress[5] =0; onpress[4]=0; } if (digitalRead(t4) == HIGH && onpress[6] ==0) { onpress[6] =1; plusset=true;} if (onpress[6] == 1) { onpress[7]++;} if (onpress[7] >= 5) { onpress[7] =0; onpress[6]=0;} if (digitalRead(t5) == HIGH && onpress[8] ==0) { onpress[8] =1; minusset=true; } if (onpress[8] == 1) { onpress[9]++;}if (onpress[9] >= 5) { onpress[9] =0; onpress[8]=0; } setz(); zeit1=0;} } void setz(void){ if (das==1) {adder=36000; if (plusset ==true ){plusset=false; dieZeit+=adder;} if (minusset==true && dieZeit >=adder){minusset=false; dieZeit-=adder;}} if (das==2) {adder=3600; if (plusset ==true ){plusset=false; dieZeit+=adder;} if (minusset==true && dieZeit >=adder){minusset=false; dieZeit-=adder;}} if (das==3) {adder=600; if (plusset ==true && dieZeit ){plusset=false; dieZeit+=adder;} if (minusset==true && dieZeit >=adder){minusset=false; dieZeit-=adder;}} if (das==4) {adder=60; if (plusset ==true && dieZeit ){plusset=false; dieZeit+=adder;} if (minusset==true && dieZeit >=adder){minusset=false; dieZeit-=adder;}} if (das==5) {adder=10; if (plusset ==true && dieZeit ){plusset=false; dieZeit+=adder;} if (minusset==true && dieZeit >=adder){minusset=false; dieZeit-=adder;}} if (das==6) {adder=10; if (plusset ==true ){plusset=false; vbis+=adder;} if (minusset==true && vbis >=adder){minusset=false; vbis-=adder;}} if (das==7) {adder=1; if (plusset ==true ){plusset=false; contra+=adder;} if (minusset==true && contra >=adder){minusset=false; contra-=adder;} display.setContrast(contra);} } void zeitreise(void){ if (dieZeit >=86400) {dieZeit=0;} while ((millis()- maintime) >= 10) { powerb=analogRead(power); istinput();maintime = millis();} while ((millis()- maintime2) >= 100) { frame();red=random(300,600); maintime2 = millis();} while ((millis()- timez) >= 999) { dieZeit++; zeigzeit(dieZeit); frame(); timez = millis();} while ((micros()- flink) >= 1000) { if(powerb>vbis){machlicht();} flink=micros();} } void setzbalken(String showme) {zeigzeugs(0,showme[0]); zeigzeugs(1,showme[1]); zeigzeugs(2,showme[2]); zeigzeugs(3,showme[3]); zeigzeugs(4,showme[4]); zeigzeugs(5,showme[5]); zeigzeugs(6,showme[6]);} void zeigzeit(long itstime) { outzi=""; adzi=""; if ((itstime%2)==0) {adzi=":";} else {adzi=";";} if (((itstime/60/60)%60) <=9){outzi+="0";} outzi+=String(((itstime/60)/60)%60); if (((itstime/60)%60) <=9){outzi+="0";} outzi+=String((itstime/60)%60); if ((itstime%60) <=9){outzi+="0";} outzi+=String(itstime%60); setzbalken(outzi);} /*thingy the dig "PLAN" for setting array stuff (bars in digital display) for havving stuff there if build own digitdisplay must be a plan for translation somwhere usable: * zeigzeugs(position(number),character(number,alpha,ascii)); =1) { if (fcount1 == ((fadefine)-digitise[0][sekt])) { digitalWrite(dig1,HIGH);} if (fcount1 == ((fadefine)-digitise[1][sekt])) { digitalWrite(dig2,HIGH);} if (fcount1 == ((fadefine)-digitise[2][sekt])) { digitalWrite(dig3,HIGH);} if (fcount1 == ((fadefine)-digitise[3][sekt])) { digitalWrite(dig4,HIGH);} if (fcount1 == ((fadefine)-digitise[4][sekt])) { digitalWrite(dig5,HIGH);} if (fcount1 == ((fadefine)-digitise[5][sekt])) { digitalWrite(dig6,HIGH);} if (fcount1 == ((fadefine)-red)) { digitalWrite(dot,HIGH);} } if (fcount1 >= (fadefine)) {nodig();norest();} }}}} void nodig(void) { digitalWrite(dig1,LOW); digitalWrite(dig2,LOW); digitalWrite(dig3,LOW); digitalWrite(dig4,LOW); digitalWrite(dig5,LOW); digitalWrite(dig6,LOW);} void noseg(void) { digitalWrite(seg1,HIGH); digitalWrite(seg2,HIGH); digitalWrite(seg3,HIGH); digitalWrite(seg4,HIGH); digitalWrite(seg5,HIGH); digitalWrite(seg6,HIGH); digitalWrite(seg7,HIGH);} void norest(void){ digitalWrite(dot,LOW); } //[MEOW] project by marderchen us3e it or parts if usefull :3