Binary clock help
hey guys,
i trying create binary clock 13 leds connected digital pins, , 2 switches connected analogue pins. have soldered onto proto board, , want solder atmega328p onto board well. because time related software, atmega running @ 8mhz, instead of 16mhz. instead of buying caps , crystal, please me modify program won't need crystal?
i need on how connect 2 switches analogue pins 0 , 5. pretty sure switches spdt.
i trying create binary clock 13 leds connected digital pins, , 2 switches connected analogue pins. have soldered onto proto board, , want solder atmega328p onto board well. because time related software, atmega running @ 8mhz, instead of 16mhz. instead of buying caps , crystal, please me modify program won't need crystal?
code: [select]
int second=0, minute=0, hour=0;
int munit,hunit,valm=0,valh=0,ledstats,i;
void setup()
{
pinmode(1, output);
pinmode(2, output);
pinmode(3, output);
pinmode(4, output);
pinmode(5, output);
pinmode(6, output);
pinmode(7, output);
pinmode(8, output);
pinmode(9, output);
pinmode(10, output);
pinmode(11, output);
pinmode(12, output);
pinmode(13, output);
pinmode(0, input);
pinmode(5, input);
}
void loop()
{
static unsigned long lasttick = 0;
if (millis() - lasttick >= 1000)
{
lasttick = millis();
second++;
}
if (second >= 60)
{
minute++;
second = 0;
}
if (minute >=60)
{
hour++;
minute = 0;
}
if (hour >=24)
{
hour=0;
minute = 0;
}
munit = minute%10;
hunit = hour%10;
ledstats = digitalread(0);
if (ledstats == low)
{
for(i=1;i<=13;i++){
digitalwrite(i, low);}
}
else
{
if(munit == 1 || munit == 3 || munit == 5 || munit == 7 || munit == 9) { digitalwrite(1, high);} else { digitalwrite(1,low);}
if(munit == 2 || munit == 3 || munit == 6 || munit == 7) {digitalwrite(2, high);} else {digitalwrite(2,low);}
if(munit == 4 || munit == 5 || munit == 6 || munit == 7) {digitalwrite(3, high);} else {digitalwrite(3,low);}
if(munit == 8 || munit == 9) {digitalwrite(4, high);} else {digitalwrite(4,low);}
if((minute >= 10 && minute < 20) || (minute >= 30 && minute < 40) || (minute >= 50 && minute < 60)) {digitalwrite(5, high);} else {digitalwrite(5,low);}
if(minute >= 20 && minute < 40) {digitalwrite(6, high);} else {digitalwrite(6,low);}
if(minute >= 40 && minute < 60) {digitalwrite(7, high);} else {digitalwrite(7,low);}
if(hunit == 1 || hunit == 3 || hunit == 5 || hunit == 7 || hunit == 9) {digitalwrite(8, high);} else {digitalwrite(8,low);}
if(hunit == 2 || hunit == 3 || hunit == 6 || hunit == 7) {digitalwrite(9, high);} else {digitalwrite(9,low);}
if(hunit == 4 || hunit == 5 || hunit == 6 || hunit == 7) {digitalwrite(10, high);} else {digitalwrite(10,low);}
if(hunit == 8 || hunit == 9) {digitalwrite(11, high);} else {digitalwrite(11,low);}
if(hour >= 10 && hour < 20) {digitalwrite(12, high);} else {digitalwrite(12,low);}
if(hour >= 20 && hour < 24) {digitalwrite(13, high);} else {digitalwrite(13,low);}
}
valm = analogread(0);
if(valm<800)
{
minute++;
second=0;
delay(250);
}
valh = analogread(5);
if(valh<800)
{
hour++;
second=0;
delay(250);
}
}
i need on how connect 2 switches analogue pins 0 , 5. pretty sure switches spdt.
the price pay not using crystal inaccurate clock. is want?
Arduino Forum > Forum 2005-2010 (read only) > Software > Syntax & Programs > Binary clock help
arduino
Comments
Post a Comment