Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- An open-source binary clock for Arduino.
- Based on code by Rob Faludi (http://www.faludi.com) and
- Daniel Spillere Andrade (www.danielandrade.net).
- Code under CC, see http://creativecommons.org/license/cc-gpl
- Depends on the time library from http://www.arduino.cc/playground/Code/Time
- */
- #include <Time.h>
- void setup() {
- // Initialize the LED pins 1-13 (connect LEDs as described at http://www.danielandrade.net/2008/07/15/binary-clock-with-arduino/)
- for (int i=1; i<=13; i++) {
- pinMode(i, OUTPUT);
- }
- setClock(16,31);// Set clock to current time (hh,mm). Time has to be set manually in the code before uploading!
- }
- void loop() {
- setLEDs();
- delay(1000);
- }
- void setLEDs() {
- int munit = minute()%10; //sets the variable munit and hunit for the unit digits
- int hunit = hour()%10;
- //minutes units
- 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);}
- //minutes
- 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);}
- //hour units
- 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);}
- //hour
- if(hour() >= 10 && hour() < 20) {digitalWrite(12, HIGH);} else {digitalWrite(12,LOW);}
- if(hour() >= 20 && hour() < 24) {digitalWrite(13, HIGH);} else {digitalWrite(13,LOW);}
- }
- void setClock(int hour, int minute) {
- setTime(hour,minute,00,00,00,2000);
- }
RAW Paste Data