ARDUINO二进制时钟

释放双眼,带上耳机,听听看~!
ARDUINO二进制时钟

简介:Arduino二进制时钟

ARDUINO二进制时钟

首先,让我们来看看如何理解8421二进制系统。你的时钟将有两列用于“小时”,两列用于“分钟”。

我们正在使用24小时制。

话虽如此,如果是早上8点,时间是0800小时,如果是晚上8点,时间将被读取为20:00小时。在美国陆军基础训练中,当你第一次学习这个时间系统时,他们教会我们在下午时间倒数2。例如,如果我被告知要在2100小时之前成立。在我的脑子里,我想2 1 00 -因此1,0,9,知道他们的意思9 PM。

或者如果我们在16:30工作,我脑子里想的是1 630 – 所以6,5,4知道这一天在下午4:30结束了。我希望这是有道理的,我觉得有必要为那些不习惯用这种方法告诉时间的人解释。

查看8421二进制示例图像,在小时LED的第一列中,如果第一个LED点亮,其值将为1,如果第四个(顶部)LED点亮,则在第二列中,其值将为值得8.因此,您将拥有18. 

现在有了分钟LED,让我们说第一列有第三个LED,第一个LED点亮。该值为4 + 1 = 5。第二列,第三列被点亮将给出值4.所以你将共有54. 

总时间将读为18:54,这将是下午6:54 

看第二个图像示例。时间是21:37

创建Arduino二进制时钟PCB

ARDUINO二进制时钟
ARDUINO二进制时钟
ARDUINO二进制时钟

电阻器和LED将从第二个protoboard连接到你设计的Arduino板。按照所附示意图执行此步骤。

Arduino引脚1连接到电阻1,电阻1连接到LED 1,连接到GND。

Arduino引脚2连接到电阻2,电阻2连接到LED 2,LED 2连接到GND。

*对所有13个电阻,引脚和LED重复此过程。

焊接提示。

在您要焊接的区域放置一层微薄的焊料,然后用一只手握住烙铁,另一只用一把镊子将元件放在要焊接的区域上。用镊子将其固定,然后重新加热焊料。用镊子保持压力并移开烙铁。现在你可以放开镊子,将部件连接到位。

/*
An open-source binary clock for Arduino. 
Based on the code from by Rob Faludi (http://www.faludi.com)
Code under (cc) by Daniel Spillere Andrade, www.danielandrade.net
http://creativecommons.org/license/cc-gpl
*/
int second=0, minute=0, hour=0; //start the time on 00:00:00
int munit,hunit,valm=0,valh=0,ledstats,i;
void setup() { //set outputs and inputs
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);
}
void loop() {
static unsigned long lastTick = 0; // set up a local variable to hold the last time we moved forward one second
// (static variables are initialized once and keep their values between function calls)
// move forward one second every 1000 milliseconds
if (millis() - lastTick >= 1000) {
 lastTick = millis();
 second++;
}
// move forward one minute every 60 seconds
 if (second >= 60) {
 minute++;
 second = 0; // reset seconds to zero
}
// move forward one hour every 60 minutes
if (minute >=60) {
 hour++;
 minute = 0; // reset minutes to zero
}
if (hour >=24) {
 hour=0;
 minute = 0; // reset minutes to zero
}
 munit = minute%10; //sets the variable munit and hunit for the unit digits
 hunit = hour%10;

 ledstats = digitalRead(0); // read input value, for setting leds off, but keeping count
 if (ledstats == LOW) {
    
 for(i=1;i<=13;i++){
 digitalWrite(i, LOW);}
  
 } else {
 //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);}
 }
 valm = analogRead(0);   // add one minute when pressed
 if(valm<800) {
 minute++;
 second=0;
 delay(250);
 }
  
 valh = analogRead(5);   // add one hour when pressed
 if(valh<800) {
 hour++;
 second=0;
 delay(250);
 }

}

给TA打赏
共{{data.count}}人
人已打赏
Arduino

Arduino点阵~跳动的心

2018-9-18 18:47:37

Arduino

Arduino智能盆栽温控阀门控制器

2018-9-22 16:58:05

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索
'); })();