void setup() { pinMode(beeper, OUTPUT); pinMode(led_RGB_1, OUTPUT); pinMode(led_RGB_2, OUTPUT); pinMode(button_set_mins_in, INPUT); pinMode(button_set_hrs_in, INPUT); pinMode(button_settings_in, INPUT); pinMode(alarm_off_1, INPUT); pinMode(alarm_off_2, INPUT); pinMode(alarm_wire, INPUT); digitalWrite(beeper, LOW); digitalWrite(led_RGB_1, LOW); digitalWrite(led_RGB_2, LOW); Serial.begin(9600); Serial.println("7 Segment Backpack Test"); matrix.begin(0x70); matrix.setBrightness(brightness); }
void setup() { #ifndef __AVR_ATtiny85__ Serial.begin(9600); Serial.println("7 Segment Backpack Test"); #endif matrix.begin(0x70); matrix.setBrightness(1); }
///////////////////////////////////////////////////////////////////////////////////////////////////////////////// // Print :[ rolling void print_sad(){ matrix.drawColon(true); matrix.writeDigitRaw(0,B00000000); //" " matrix.writeDigitRaw(1,B00000000); //" " matrix.writeDigitRaw(3,B00111001); //"[" matrix.writeDigitRaw(4,B00000000); //" " matrix.writeDisplay(); delay(del*2); }
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //Draw dots every second - On/Off void drawDots(){ gettime(); if((s%2) == 1){ matrix.drawColon(false); matrix.writeDisplay(); } else{ matrix.drawColon(true); matrix.writeDisplay(); } }
//display the current time on the 7-segment display void refreshDisplayTime() { unsigned long currentTime = Time.now(); int minute = Time.minute(currentTime); int hour; int digits; if(preferences.hourFormat == 12) { hour = Time.hourFormat12(currentTime); } else { hour = Time.hour(currentTime); } digits = hour/10*1000 + hour%10*100 + minute/10*10 + minute%10; display.print(digits); display.drawColon(true); display.writeDisplay(); }
void writetime(){ gettime(); h1 = time/1000; time -= h1*1000; h2 = time/100; time -= h2*100; m3 = time/10; m4 = time%10; matrix.writeDigitNum(0, h1); matrix.writeDigitNum(1, h2); matrix.writeDigitNum(3, m3); matrix.writeDigitNum(4, m4); matrix.writeDisplay(); }
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //Function to set time offset in minutes and hours void set_hrs_mins(){ if (digitalRead(button_set_mins_in) == HIGH){ //check minutes button offset_m = offset_m + 60000; //add one minute to offset beep(); Serial.print("Increment minutes"); Serial.print(offset_m); Serial.print("\n"); delay(200); } if (digitalRead(button_set_hrs_in) == HIGH){ //check hours button offset_m = offset_m + 60*60000; //add 60*1 minutes to offset the time beep(); Serial.print("Increment hours"); Serial.print(offset_m); Serial.print("\n"); delay(200); } beepOK = 0; gettime(); //Now make the display blink while setting the time. if((millis_left%1000) > 500){ //0.5 seconds lit up writetime(); matrix.drawColon(true); matrix.writeDisplay(); } else{ matrix.drawColon(false); //0.5 seconds lit off matrix.writeDigitRaw(0,B00000000); //" " matrix.writeDigitRaw(1,B00000000); //" " matrix.writeDigitRaw(3,B00000000); //" " matrix.writeDigitRaw(4,B00000000); //" " matrix.writeDisplay(); } }
void loop() { // try to print a number thats too long matrix.print(10000, DEC); matrix.writeDisplay(); delay(500); // print a hex number matrix.print(0xBEEF, HEX); matrix.writeDisplay(); delay(500); // print a floating point matrix.print(12.34); matrix.writeDisplay(); delay(500); // print with print/println for (uint16_t counter = 0; counter < 9999; counter++) { matrix.println(counter); matrix.writeDisplay(); delay(10); } // method #2 - draw each digit uint16_t blinkcounter = 0; boolean drawDots = false; for (uint16_t counter = 0; counter < 9999; counter ++) { matrix.writeDigitNum(0, (counter / 1000), drawDots); matrix.writeDigitNum(1, (counter / 100) % 10, drawDots); matrix.drawColon(drawDots); matrix.writeDigitNum(3, (counter / 10) % 10, drawDots); matrix.writeDigitNum(4, counter % 10, drawDots); blinkcounter+=50; if (blinkcounter < 500) { drawDots = false; } else if (blinkcounter < 1000) { drawDots = true; } else { blinkcounter = 0; } matrix.writeDisplay(); delay(10); } }
void setup() { //EEPROM.clear(); testString = "zo345566"; EEPROM.get(0, preferences); testString += "get"; if(preferences.version != 0) { preferences.version = 0; preferences.timeZone = -8; preferences.hourFormat = 12; preferences.piezoHertz = 2000; preferences.LEDCurrent = 700; preferences.LEDBrightness = 100; preferences.dstRule = DST_US; for(int i=0; i<32; ++i) { preferences.alarmTimes[i][0] = -1; } EEPROM.put(0, preferences); testString += "put"; } //Converts preferences.alarmTimes to vectorAlarmTimes for(int i=0; i<32; ++i) { if(preferences.alarmTimes[i][0] != -1) { std::vector<int> temp; temp.push_back(preferences.alarmTimes[i][0]); temp.push_back(preferences.alarmTimes[i][1]); temp.push_back(preferences.alarmTimes[i][2]); temp.push_back(preferences.alarmTimes[i][3]); temp.push_back(preferences.alarmTimes[i][4]); temp.push_back(preferences.alarmTimes[i][5]); temp.push_back(preferences.alarmTimes[i][6]); temp.push_back(preferences.alarmTimes[i][7]); vectorAlarmTimes.push_back(temp); } } testString += preferences.timeZone; testString += preferences.hourFormat; testString += preferences.piezoHertz; testString += preferences.LEDCurrent; testString += preferences.LEDBrightness; testString += preferences.dstRule; if(preferences.dstRule == DST_US) { DSTJumpHour = 2; } else if(preferences.dstRule == DST_EU) { DSTJumpHour = 1 + preferences.timeZone; } else { DSTJumpHour = 0; } //Set the proper time zone according to DST status Time.zone(isDST(Time.day(), Time.month(), Time.weekday(), preferences.dstRule) ? preferences.timeZone + 1 : preferences.timeZone); //testString += isDST(Time.day(), Time.month(), Time.weekday(), preferences.dstRule); //Setup the 7-segment display, temperature sensor, and audio amp display.begin(0x70); display.setBrightness(15); //TODO: adjust brightness to optimize for veneer/time tempSensor.begin(); tempSensor.setResolution(MCP9808_SLOWEST); audioAmp.begin(); //Pin setup pinMode(LEDPin, OUTPUT); //Add alarms stored in eeprom addAlarms(); //Cloud functions and variables Particle.function("CreateAlarm", createAlarm); Particle.function("DeleteAlarm", deleteAlarm); Particle.variable("Temperature", temp); Particle.variable("alarmString", alarmString); Particle.variable("testString", testString); }
void print_alarm_off(){ matrix.drawColon(false); matrix.writeDigitRaw(0,B00000000); //" " matrix.writeDigitRaw(1,B00000000); //" " matrix.writeDigitRaw(3,B00000000); //" " matrix.writeDigitRaw(4,B00000000); //" " matrix.writeDisplay(); delay(del); matrix.writeDigitRaw(0,B00000000); //" " matrix.writeDigitRaw(1,B00000000); //" " matrix.writeDigitRaw(3,B00000000); //" " matrix.writeDigitRaw(4,B01110111); //"A" matrix.writeDisplay(); delay(del); matrix.writeDigitRaw(0,B00000000); //" " matrix.writeDigitRaw(1,B00000000); //" " matrix.writeDigitRaw(3,B01110111); //"A" matrix.writeDigitRaw(4,B00111000); //"l" matrix.writeDisplay(); delay(del); matrix.writeDigitRaw(0,B00000000); //" " matrix.writeDigitRaw(1,B01110111); //"A" matrix.writeDigitRaw(3,B00111000); //"l" matrix.writeDigitRaw(4,B11010000); //"r." matrix.writeDisplay(); delay(del); matrix.writeDigitRaw(0,B01110111); //"A" matrix.writeDigitRaw(1,B00111000); //"l" matrix.writeDigitRaw(3,B11010000); //"r." matrix.writeDigitRaw(4,B00000000); //" " matrix.writeDisplay(); delay(del2); matrix.writeDigitRaw(0,B00111000); //"l" matrix.writeDigitRaw(1,B11010000); //"r." matrix.writeDigitRaw(3,B00000000); //" " matrix.writeDigitRaw(4,B00111111); //"O" matrix.writeDisplay(); delay(del); matrix.writeDigitRaw(0,B11010000); //"r." matrix.writeDigitRaw(1,B00000000); //" " matrix.writeDigitRaw(3,B00111111); //"O" matrix.writeDigitRaw(4,B01110001); //"F" matrix.writeDisplay(); delay(del); matrix.writeDigitRaw(0,B00000000); //" " matrix.writeDigitRaw(1,B00111111); //"O" matrix.writeDigitRaw(3,B01110001); //"F" matrix.writeDisplay(); delay(del); matrix.writeDigitRaw(0,B00111111); //"O" matrix.writeDigitRaw(1,B01110001); //"F" matrix.writeDigitRaw(4,B00000000); //" " matrix.writeDisplay(); delay(del2); matrix.writeDigitRaw(0,B01110001); //"F" matrix.writeDigitRaw(3,B00000000); //" " matrix.writeDisplay(); delay(del); matrix.writeDigitRaw(1,B00000000); //" " matrix.writeDisplay(); delay(del); matrix.writeDigitRaw(0,B00000000); //" " matrix.writeDisplay(); delay(del*3); }
void loop() { //Write time Serial.print(" --- Time \n"); writetime(); delay(30); //Draw dots drawDots(); delay(30); //Check whether to go into settings mode if(digitalRead(button_settings_in) == HIGH){ beep(); Serial.print("In settings \n"); settings(); } delay(30); //Now check if we have alarm acivated! gettime(); //Serial.print("Before: Alarm = "); //Serial.print(alarm); //Serial.print("\n"); //delay(30); if( time == alarm_1_time && alarm){ //alarm = 0; alarm_beep(); //Play the beep Serial.print("NO MORE BEEP \n"); delay(500); } else if(time != alarm_1_time) alarm = 1; //Serial.print("After: Alarm = "); //Serial.print(alarm); //Serial.print("\n"); //Serial.print("NO ALARM \n"); //delay(60); //Check brightness if (digitalRead(button_set_mins_in) == HIGH){ //check minutes button brightness++; //increase brightness beep(); if( brightness > 15 ) { brightness = 15; delay(beep_delay); beep(); delay(beep_delay); beep(); } matrix.setBrightness(brightness); Serial.print("Brightness level changed:"); Serial.print(brightness); Serial.print("\n"); delay(150); } if (digitalRead(button_set_hrs_in) == HIGH){ //check hours button brightness--; //decrease brightness beep(); if( brightness < 0 ) { brightness = 0; delay(beep_delay); beep(); delay(beep_delay); beep(); } matrix.setBrightness(brightness); Serial.print("Brightness level changed:"); Serial.print(brightness); Serial.print("\n"); delay(150); } }
//Print "Set Alr. 1" on screen - Rolling void print_set_alrarm_1(){ matrix.drawColon(false); matrix.writeDigitRaw(0,B00000000); //" " matrix.writeDigitRaw(1,B00000000); //" " matrix.writeDigitRaw(3,B00000000); //" " matrix.writeDigitRaw(4,B00000000); //" " matrix.writeDisplay(); delay(del); //" " //" " //" " matrix.writeDigitRaw(4,B01101101); //"S" matrix.writeDisplay(); delay(del); //" " //" " matrix.writeDigitRaw(3,B01101101); //"S" matrix.writeDigitRaw(4,B01111001); //"E" matrix.writeDisplay(); delay(del); //" " matrix.writeDigitRaw(1,B01101101); //"S" matrix.writeDigitRaw(3,B01111001); //"E" matrix.writeDigitRaw(4,B01111000); //"t" matrix.writeDisplay(); delay(del); matrix.writeDigitRaw(0,B01101101); //"S" matrix.writeDigitRaw(1,B01111001); //"E" matrix.writeDigitRaw(3,B01111000); //"t" matrix.writeDigitRaw(4,B00000000); //" " matrix.writeDisplay(); delay(del2); matrix.writeDigitRaw(0,B01111001); //"E" matrix.writeDigitRaw(1,B01111000); //"t" matrix.writeDigitRaw(3,B00000000); //" " matrix.writeDigitRaw(4,B01110111); //"A" matrix.writeDisplay(); delay(del); matrix.writeDigitRaw(0,B01111000); //"t" matrix.writeDigitRaw(1,B00000000); //" " matrix.writeDigitRaw(3,B01110111); //"A" matrix.writeDigitRaw(4,B00111000); //"l" matrix.writeDisplay(); delay(del); matrix.writeDigitRaw(0,B00000000); //" " matrix.writeDigitRaw(1,B01110111); //"A" matrix.writeDigitRaw(3,B00111000); //"l" matrix.writeDigitRaw(4,B11010000); //"r." matrix.writeDisplay(); delay(del); matrix.writeDigitRaw(0,B01110111); //"A" matrix.writeDigitRaw(1,B00111000); //"l" matrix.writeDigitRaw(3,B11010000); //"r." matrix.writeDigitRaw(4,B00000000); //" " matrix.writeDisplay(); delay(del2); matrix.writeDigitRaw(0,B00111000); //"l" matrix.writeDigitRaw(1,B11010000); //"r." matrix.writeDigitRaw(3,B00000000); //" " matrix.writeDigitRaw(4,B00000110); //"1" matrix.writeDisplay(); delay(del); matrix.writeDigitRaw(0,B11010000); //"r." matrix.writeDigitRaw(1,B00000000); //" " matrix.writeDigitRaw(3,B00000110); //"1" matrix.writeDigitRaw(4,B00000000); //" " matrix.writeDisplay(); delay(del); matrix.writeDigitRaw(0,B00000000); //" " matrix.writeDigitRaw(1,B00000110); //"1" matrix.writeDigitRaw(3,B00000000); //" " matrix.writeDisplay(); delay(del); matrix.writeDigitRaw(0,B00000110); //"1" matrix.writeDigitRaw(1,B00000000); //" " matrix.writeDisplay(); delay(del2); matrix.writeDigitRaw(0,B00000000); //" " matrix.writeDisplay(); delay(del*3); }
void print_out(){ //Print "Out" on screen. Rolling. matrix.drawColon(false); matrix.writeDigitRaw(0,B00000000); //" " matrix.writeDigitRaw(1,B00000000); //" " matrix.writeDigitRaw(3,B00000000); //" " matrix.writeDigitRaw(4,000000000); //" " matrix.writeDisplay(); delay(del); //matrix.writeDigitRaw(0,B00000000); //" " //matrix.writeDigitRaw(1,B00000000); //" " //matrix.writeDigitRaw(3,B00000000); //" " matrix.writeDigitRaw(4,B00111111); //"O" matrix.writeDisplay(); delay(del); //matrix.writeDigitRaw(0,B00000000); //" " //matrix.writeDigitRaw(1,B00000000); //" " matrix.writeDigitRaw(3,B00111111); //"O" matrix.writeDigitRaw(4,B00011100); //"u" matrix.writeDisplay(); delay(del); //matrix.writeDigitRaw(0,B00000000); //" " matrix.writeDigitRaw(1,B00111111); //"O" matrix.writeDigitRaw(3,B00011100); //"u" matrix.writeDigitRaw(4,B01111000); //"t" matrix.writeDisplay(); delay(del); matrix.writeDigitRaw(0,B00111111); //"O" matrix.writeDigitRaw(1,B00011100); //"u" matrix.writeDigitRaw(3,B01111000); //"t" matrix.writeDigitRaw(4,B00000000); //" " matrix.writeDisplay(); delay(del2); matrix.writeDigitRaw(0,B00011100); //"E" matrix.writeDigitRaw(1,B01111000); //"t" matrix.writeDigitRaw(3,B00000000); //" " //matrix.writeDigitRaw(4,B00000000); //" " matrix.writeDisplay(); delay(del); matrix.writeDigitRaw(0,B01111000); //"t" matrix.writeDigitRaw(1,B00000000); //" " //matrix.writeDigitRaw(3,B00000000); //" " //matrix.writeDigitRaw(4,B00000000); //" " matrix.writeDisplay(); delay(del); matrix.writeDigitRaw(0,B00000000); //" " matrix.writeDisplay(); delay(del*3); }
//Print "Set Hour" on screen - Rolling void print_set(){ matrix.drawColon(false); matrix.writeDigitRaw(0,B00000000); //" " matrix.writeDigitRaw(1,B00000000); //" " matrix.writeDigitRaw(3,B00000000); //" " matrix.writeDigitRaw(4,000000000); //" " matrix.writeDisplay(); delay(del); //" " //" " //" " matrix.writeDigitRaw(4,B01101101); //"S" matrix.writeDisplay(); delay(del); //" " //" " matrix.writeDigitRaw(3,B01101101); //"S" matrix.writeDigitRaw(4,B01111001); //"E" matrix.writeDisplay(); delay(del); //" " matrix.writeDigitRaw(1,B01101101); //"S" matrix.writeDigitRaw(3,B01111001); //"E" matrix.writeDigitRaw(4,B01111000); //"t" matrix.writeDisplay(); delay(del); matrix.writeDigitRaw(0,B01101101); //"S" matrix.writeDigitRaw(1,B01111001); //"E" matrix.writeDigitRaw(3,B01111000); //"t" matrix.writeDigitRaw(4,B00000000); //" " matrix.writeDisplay(); delay(del2); matrix.writeDigitRaw(0,B01111001); //"E" matrix.writeDigitRaw(1,B01111000); //"t" matrix.writeDigitRaw(3,B00000000); //" " matrix.writeDigitRaw(4,B01110110); //"H" matrix.writeDisplay(); delay(del); matrix.writeDigitRaw(0,B01111000); //"t" matrix.writeDigitRaw(1,B00000000); //" " matrix.writeDigitRaw(3,B01110110); //"H" matrix.writeDigitRaw(4,B01011100); //"o" matrix.writeDisplay(); delay(del); matrix.writeDigitRaw(0,B00000000); //" " matrix.writeDigitRaw(1,B01110110); //"H" matrix.writeDigitRaw(3,B01011100); //"o" matrix.writeDigitRaw(4,B00011100); //"u" matrix.writeDisplay(); delay(del); matrix.writeDigitRaw(0,B01110110); //"H" matrix.writeDigitRaw(1,B01011100); //"o" matrix.writeDigitRaw(3,B00011100); //"u" matrix.writeDigitRaw(4,B01010000); //"r" matrix.writeDisplay(); delay(del2); matrix.writeDigitRaw(0,B01011100); //"o" matrix.writeDigitRaw(1,B00011100); //"u" matrix.writeDigitRaw(3,B01010000); //"r" matrix.writeDigitRaw(4,B00000000); //" " matrix.writeDisplay(); delay(del); matrix.writeDigitRaw(0,B00011100); //"u" matrix.writeDigitRaw(1,B01010000); //"r" matrix.writeDigitRaw(3,B00000000); //" " matrix.writeDisplay(); delay(del); matrix.writeDigitRaw(0,B01010000); //"r" matrix.writeDigitRaw(1,B00000000); //" " matrix.writeDisplay(); delay(del); matrix.writeDigitRaw(0,B00000000); //" " matrix.writeDisplay(); delay(del*3); }
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //Function to set Alarm time 1 void set_alarm_1(){ if (digitalRead(button_set_mins_in) == HIGH){ //check minutes button if(alarm_1_time==2400){ alarm_1_time = 0; } alarm_1_time++; //add one minute to offset beep(); Serial.print("Increment alarm minutes "); Serial.print(alarm_1_time); Serial.print("\n"); delay(200); } if (digitalRead(button_set_hrs_in) == HIGH){ //check hours button if(alarm_1_time==2400){ alarm_1_time = 0; } alarm_1_time += 100; //add 60*1 minutes to offset the time beep(); Serial.print("Increment alarm hours "); Serial.print(alarm_1_time); Serial.print("\n"); delay(200); } if(alarm_1_time%100 == 60){ //alarm time is now maybe 1260, but it should not be! alarm_1_time += 40; //alarm time goes to 1300 Serial.print("Alarm 1 time corrected to +40\n"); } if(alarm_1_time > 2359){ //alarm time is now 2401, but it should not be! alarm_1_time = 2400; //alarm time goes to 0000 Serial.print("Alarm 1 time corrected to 0000\n"); } Serial.print("Alarm 1 time: "); Serial.print(alarm_1_time); Serial.print("\n"); gettime(); //Now make the display blink while setting the Alarm 1 time. if((millis_left%1000) > 500){ //0.5 seconds lit up if(alarm_1_time == 2400){ //If alarm is deactivated from user matrix.drawColon(false); matrix.writeDigitRaw(0,B01000000); //"-" matrix.writeDigitRaw(1,B01000000); //"-" matrix.writeDigitRaw(3,B01000000); //"-" matrix.writeDigitRaw(4,B01000000); //"-" matrix.writeDisplay(); } else{ a1h1 = alarm_1_time/1000; a1h2 = ( alarm_1_time - a1h1 * 1000 ) / 100; a1m3 = ( alarm_1_time - a1h1 * 1000 - a1h2 * 100 ) / 10; a1m4 = alarm_1_time % 10; matrix.drawColon(true); matrix.writeDigitNum(0, a1h1); matrix.writeDigitNum(1, a1h2); matrix.writeDigitNum(3, a1m3); matrix.writeDigitNum(4, a1m4); matrix.writeDisplay(); } } else{ matrix.drawColon(false); //0.5 seconds lit off matrix.writeDigitRaw(0,B00000000); //" " matrix.writeDigitRaw(1,B00000000); //" " matrix.writeDigitRaw(3,B00000000); //" " matrix.writeDigitRaw(4,B00000000); //" " matrix.writeDisplay(); } }