top of page
Search

Clock project code and schematics

  • Writer: Jason Ron
    Jason Ron
  • Feb 2, 2019
  • 2 min read






#include "LedControl.h" // need the library

LedControl lc=LedControl(1,2,3,1); // lc is our object

// pin 1 is connected to the MAX7219 pin 1

// pin 2 is connected to the CLK pin 13

// pin 3 is connected to LOAD pin 12

// 1 as we are only using 1 MAX7219


//encodervariables

const int encoderPinA=9;

const int encoderPinB=10;

const int button1Pin = 11;

const int button2pin=12;

int encoderPos;

int buttonPushCounter = 0; // counter for the number of button presses

int buttonPushCounter2=0;

int buttonState = 0; // current state of the button

int lastButtonState = 0; // previous state of the button

int lastButtonState2=0;



boolean encoderALast=LOW;


void setup()

{

// the zero refers to the MAX7219 number, it is zero for 1 chip

lc.shutdown(0,false);// turn off power saving, enables display

lc.setIntensity(0,8);// sets brightness (0~15 possible values)

lc.clearDisplay(0);// clear screen

//encoder//

pinMode(encoderPinA, INPUT);

pinMode(encoderPinB, INPUT);

pinMode(button1Pin, INPUT);

digitalWrite(encoderPinA,HIGH);

digitalWrite(encoderPinB,HIGH);




}

void loop()

{

int minutegiven, hourgiven,minute1,hour1, buttonState,buttonState2, sec, minute, hour, secsadj;

hourgiven=0;



buttonState=digitalRead(button1Pin);

buttonState2=digitalRead(button2pin);

boolean encoderA = digitalRead(encoderPinA);




if ((encoderALast == HIGH) && (encoderA == LOW) )

{

if( digitalRead(encoderPinB) == LOW )

{

encoderPos-- ;

}

else

{

encoderPos++;

}

}

if (buttonState != lastButtonState) {

if (buttonState == HIGH) {


buttonPushCounter++;

}


}

lastButtonState = buttonState;

if(buttonPushCounter>12)

{

buttonPushCounter=1;

}

// save the current state as the last state,




encoderALast=encoderA;

minutegiven = abs(encoderPos);

hourgiven=buttonPushCounter;

minute1=minutegiven;

hour1=hourgiven;


if( (minute1<10)&& (hour1<10) )

{

lc.setDigit(0,0,0,true);

lc.setDigit(0,1,hour1,true);

lc.setDigit(0,2,0,true);

lc.setDigit(0,3,minute1,true);

}

else if( (minute1<20) && (hour1<10) )

{

lc.setDigit(0,0,0,true);

lc.setDigit(0,1,hour1,true);

lc.setDigit(0,2,1,true);

lc.setDigit(0,3,minute1%10,true);

}

else if( (minute1<30)&& (hour1<10) )

{

lc.setDigit(0,0,0,true);

lc.setDigit(0,1,hour1,true);

lc.setDigit(0,2,2,true);

lc.setDigit(0,3,minute1%10,true);

}

else if( (minute1<40)&& (hour1<10))

{

lc.setDigit(0,0,0,true);

lc.setDigit(0,1,hour1,true);

lc.setDigit(0,2,3,true);

lc.setDigit(0,3,minute1%10,true);

}

else if((minute1<50)&& (hour1<10) )

{

lc.setDigit(0,0,0,true);

lc.setDigit(0,1,hour1,true);

lc.setDigit(0,2,4,true);

lc.setDigit(0,3,minute1%10,true);

}

else if( (minute1<60)&& (hour1<10))

{

lc.setDigit(0,0,0,true);

lc.setDigit(0,1,hour1,true);

lc.setDigit(0,2,5,true);

lc.setDigit(0,3,minute1%10,true);

}

//////////////////////////hrstuff/////////////////////

if( (minute1<10)&& (hour1>=10) )

{

lc.setDigit(0,0,1,true);

lc.setDigit(0,1,hour1-10,true);

lc.setDigit(0,2,0,true);

lc.setDigit(0,3,minute1,true);

}

else if( (minute1<20) && (hour1>=10) )

{

lc.setDigit(0,0,1,true);

lc.setDigit(0,1,hour1-10,true);

lc.setDigit(0,2,1,true);

lc.setDigit(0,3,minute1%10,true);

}

else if( (minute1<30)&& (hour1>=10) )

{

lc.setDigit(0,0,1,true);

lc.setDigit(0,1,hour1-10,true);

lc.setDigit(0,2,2,true);

lc.setDigit(0,3,minute1%10,true);

}

else if( (minute1<40)&& (hour1>=10))

{

lc.setDigit(0,0,1,true);

lc.setDigit(0,1,hour1-10,true);

lc.setDigit(0,2,3,true);

lc.setDigit(0,3,minute1%10,true);

}

else if((minute1<50)&& (hour1>=10) )

{

lc.setDigit(0,0,1,true);

lc.setDigit(0,1,hour1-10,true);

lc.setDigit(0,2,4,true);

lc.setDigit(0,3,minute1%10,true);

}

else if((minute1<60)&& (hour1>=10) )

{

lc.setDigit(0,0,1,true);

lc.setDigit(0,1,hour1-10,true);

lc.setDigit(0,2,5,true);

lc.setDigit(0,3,minute1%10,true);

}

if (buttonState2 != lastButtonState2) {

if (buttonState2 == HIGH) {


buttonPushCounter2++;

}


}

lastButtonState2 = buttonState2;

while(buttonPushCounter2==2){

unsigned long count=0;

count = count+ (millis()/1000);

int minute =(minutegiven+(count/60))%60;

// int secadj=(minutegiven*60)+count;

int hour = ((hourgiven-1+( (count+minutegiven*60)/3600 ) )%12)+1;


///////////////////////////////////////set start time min/////////////////

if( (minute<10)&& (hour<10) )

{

lc.setDigit(0,0,0,true);

lc.setDigit(0,1,hour,true);

lc.setDigit(0,2,0,true);

lc.setDigit(0,3,minute,true);

}

else if( (minute<20) && (hour<10) )

{

lc.setDigit(0,0,0,true);

lc.setDigit(0,1,hour,true);

lc.setDigit(0,2,1,true);

lc.setDigit(0,3,minute%10,true);

}

else if( (minute<30)&& (hour<10) )

{

lc.setDigit(0,0,0,true);

lc.setDigit(0,1,hour,true);

lc.setDigit(0,2,2,true);

lc.setDigit(0,3,minute%10,true);

}

else if( (minute<40)&& (hour<10))

{

lc.setDigit(0,0,0,true);

lc.setDigit(0,1,hour,true);

lc.setDigit(0,2,3,true);

lc.setDigit(0,3,minute%10,true);

}

else if((minute<50)&& (hour<10) )

{

lc.setDigit(0,0,0,true);

lc.setDigit(0,1,hour,true);

lc.setDigit(0,2,4,true);

lc.setDigit(0,3,minute%10,true);

}

else if( (minute<60)&& (hour<10))

{

lc.setDigit(0,0,0,true);

lc.setDigit(0,1,hour,true);

lc.setDigit(0,2,5,true);

lc.setDigit(0,3,minute%10,true);

}

//////////////////////////hrstuff/////////////////////

if( (minute<10)&& (hour>=10) )

{

lc.setDigit(0,0,1,true);

lc.setDigit(0,1,hour-10,true);

lc.setDigit(0,2,0,true);

lc.setDigit(0,3,minute,true);

}

else if( (minute<20) && (hour>=10) )

{

lc.setDigit(0,0,1,true);

lc.setDigit(0,1,hour-10,true);

lc.setDigit(0,2,1,true);

lc.setDigit(0,3,minute%10,true);

}

else if( (minute<30)&& (hour>=10) )

{

lc.setDigit(0,0,1,true);

lc.setDigit(0,1,hour-10,true);

lc.setDigit(0,2,2,true);

lc.setDigit(0,3,minute%10,true);

}

else if( (minute<40)&& (hour>=10))

{

lc.setDigit(0,0,1,true);

lc.setDigit(0,1,hour-10,true);

lc.setDigit(0,2,3,true);

lc.setDigit(0,3,minute%10,true);

}

else if((minute<50)&& (hour>=10) )

{

lc.setDigit(0,0,1,true);

lc.setDigit(0,1,hour-10,true);

lc.setDigit(0,2,4,true);

lc.setDigit(0,3,minute%10,true);

}

else if((minute<60)&& (hour>=10) )

{

lc.setDigit(0,0,1,true);

lc.setDigit(0,1,hour-10,true);

lc.setDigit(0,2,5,true);

lc.setDigit(0,3,minute%10,true);

}

/////////////////////////////////////////////



}//let time roll loop

}//voidloop











 
 
 

Comments


Post: Blog2_Post
  • Facebook
  • Twitter
  • LinkedIn

©2018 by Jason JCAD. Proudly created with Wix.com

bottom of page