亿迅智能制造网
工业4.0先进制造技术信息网站!
首页 | 制造技术 | 制造设备 | 工业物联网 | 工业材料 | 设备保养维修 | 工业编程 |
home  MfgRobots >> 亿迅智能制造网 >  >> Manufacturing Technology >> 制造工艺

带 Arduino 的数码时钟 |最简单的设计

组件和用品

Arduino UNO
× 1
UTSOURCE 电子零件
× 1

关于这个项目

经过一天的辛苦工作,终于成功制作了带有Arduino和光隔离芯片的数码时钟,不需要很难购买的数码驱动。

观看视频了解完整说明:

制作项目的零件清单:

1. Arduino UNO https://amzn.to/2P58O7s

2. 数码管 6 个 https://amzn.to/3aHyJvX

3. 光耦芯片TLP627

4. DC 升压模块从 12VDC 到 390VDC https://amzn.to/30kpdK9

5.面包板https://amzn.to/2uCrnsW

6. 实时时钟模块 DS3231 https://amzn.to/2SIyEzI

utsource.net 上购买电子元件

Step 1. 电路设计

该电路采用光电隔离芯片,通过Arduino(使用5VDC)控制数码管(使用150VDC)。通过矩阵连接,所以我们只需要Arduino的16个输出就可以控制6个数码管的60个灯。实时时钟模块DS3231用于保持时间(甚至关闭电源),它通过I2C网络与Arduino通信。 Arduino会实时读取,然后按顺序高频开/关数码管,使人眼看到6个数字是永久性的

步骤 2. Arduino 代码

//Youtube频道:engineer2you
#include
#include "DS3231.h"
RTClib RTC;
DS3231 Clock;
int 小时;
int 分钟;
int 秒;
const int nixie_0 =2;
const int nixie_1 =3;
const int nixie_2 =4;
const int nixie_3 =5;
const int nixie_4 =6;
const int nixie_5 =7;
const int nixie_6 =8;
const int nixie_7 =9;
const int nixie_8 =10;
const int nixie_9 =11;
const int row_1 =0;
const int row_2 =1;
const int row_3 =14;
const int row_4 =15;
const int row_5 =16;
const int row_6 =17;
const int time_on =2;
void setup() {
pinMode(nixie_0, OUTPUT);
pinMode(nixie_1, OUTPUT);
pinMode(nixie_2, OUTPUT);
pinMode(nixie_3, OUTPUT);
pinMode(nixie_4, OUTPUT);
pinMode( nixie_5, OUTPUT);
pinMode(nixie_6, OUTPUT);
pinMode(nixie_7, OUTPUT);
pinMode(nixie_8, OUTPUT);
pinMode(nixie_9, OUTPUT);
pinMode(row_1, OUTPUT);
pinMode(row_2, OUTPUT);
pinMode(row_3, OUTPUT);
pinMode(row_4, OUTPUT);
pinMode(row_5) , OUTPUT);
pinMode(row_6, OUTPUT);
//Serial.begin(9600); //不应该使用seiral println,它会影响输出引脚D0 &D1
Wire.begin();
}
void loop() {
//--- ----------------获取时钟值---------------------------
DateTime now =RTC.now();
hour =now.hour();
minute =now.minute();
second =now.second();
/ /-------------------显示时钟编号----------------------
int j; //从右数第二个数字
int k; //从右边开始的第一个数字
j =second/10;
k =second%10;
//-----------显示第二个的第一个数字
off_all();
on_number(0,k+2);
delay(time_on);
//-----------显示秒数
off_all();
on_number(1,j+2);
delay(time_on);

j =分钟/10;
k =minute%10;
//-----------显示第一个分钟数
off_all();
on_number(14,k+2);
delay(time_on);
//-----------显示分钟的秒数
off_all();
on_number(15,j+2 );
delay(time_on);
j =小时/10;
k =小时%10;
//-----------先显示小时数
off_all();
on_number(16,k+2);
delay(time_on);
//-----------显示第二个小时数
off_all();
on_number(17,j+2 );
延迟(time_on);
}
void on_number(int row, int nixie){
digitalWrite(row, HIGH);
digitalWrite(nixie, HIGH );
}
void off_all(){
digitalWrite(row_1, LOW);
digitalWrite(row_2, LOW);
digitalWrite(row_3, LOW);
digitalWrite(row_4, LOW);
digitalWrite(row_5, LOW);
digitalWrite(row_6, LOW);
digitalWrite(nixie_0, LOW);
digitalWrite(nixie_1) , LOW);
digitalWrite(nixie_2, LOW);
digitalWrite(nixie_3, LOW);
digitalWrite(nixie_4, LOW);
digitalWrite(nixie_5, LOW);
digitalWrite(nixie_6, LOW);
digitalWrite(nixie_7, LOW);
digitalWrite(nixie_8, LOW);
digitalWrite(nixie_9, LOW);
delayMicroseconds(400); //防止对其他管产生“鬼”效应
}

基本上,代码会从DS3231模块实时获取,并通过光隔离芯片显示给6个数码管。

步骤 3. 构建电路

这只是实验,所以我在面包板上制作了所有东西。幸运的是,它第一次运行,没有任何问题

下一步,我会尝试在MDF外壳中制作一个装饰精美的数码钟,这样我就可以把它放在我的房间里了。

代码

  • 代码片段 #1
代码片段 #1纯文本
//Youtube频道:engineer2you#include #include "DS3231.h"RTClib RTC;DS3231 Clock;int hour;int minute;int second;const int nixie_0 =2;const int nixie_1 =3; const int nixie_2 =4;const int nixie_3 =5; const int nixie_4 =6;const int nixie_5 =7;const int nixie_6 =8;const int nixie_7 =9;const int nixie_8 =10;const int nixie_9 =11;const int row_1 =0;const int row_2 =1;const int row_3 =14;const int row_4 =15;const int row_5 =16;const int row_6 =17;const int time_on =2;void setup() { pinMode(nixie_0, OUTPUT); pinMode(nixie_1,输出); pinMode(nixie_2,输出); pinMode(nixie_3,输出); pinMode(nixie_4,输出); pinMode(nixie_5,输出); pinMode(nixie_6,输出); pinMode(nixie_7,输出); pinMode(nixie_8,输出); pinMode(nixie_9,输出); pinMode(row_1,输出); pinMode(row_2,输出); pinMode(row_3, 输出); pinMode(row_4,输出); pinMode(row_5,输出); pinMode(row_6,输出); //Serial.begin(9600); //不应该使用seiral println,它会影响输出引脚D0 &D1 Wire.begin();}void loop() { //--------------------获取时钟值--------------------------- DateTime now =RTC.now();小时 =now.hour();分钟 =now.minute();第二 =now.second(); //--------------------显示时钟号---------------------- int j; //从右数第二个数字 int k; //从右数第一个数字 j =second/10; k =秒%10; //-----------显示第二个的第一个数字 off_all(); on_number(0,k+2);延迟(时间); //-----------显示秒的秒数 off_all(); on_number(1,j+2);延迟(时间); j =分钟/10; k =分钟%10; //-----------显示第一个分钟数 off_all(); on_number(14,k+2);延迟(时间); //-----------显示秒数 off_all(); on_number(15,j+2);延迟(时间); j =小时/10; k =小时%10; //-----------显示第一个小时数 off_all(); on_number(16,k+2);延迟(时间); //-----------显示第二个小时数 off_all(); on_number(17,j+2);延迟(time_on);}void on_number(int row,int nixie){ digitalWrite(row,HIGH); digitalWrite(nixie, HIGH);}void off_all(){ digitalWrite(row_1, LOW);数字写入(row_2,低);数字写入(row_3,低);数字写入(row_4,低);数字写入(row_5,低);数字写入(row_6,低);数字写入(nixie_0,低);数字写入(nixie_1,低);数字写入(nixie_2,低);数字写入(nixie_3,低);数字写入(nixie_4,低);数字写入(nixie_5,低);数字写入(nixie_6,低);数字写入(nixie_7,低);数字写入(nixie_8,低);数字写入(nixie_9,低);延迟微秒(400); //防止对其他管产生“鬼”效应}

制造工艺

  1. Arduino pov 视觉时钟
  2. DIY 最简单的 IV9 Numitron 时钟与 Arduino
  3. 利用 E3.series 进行设计
  4. 简单字时钟(Arduino)
  5. 带有伊斯兰祈祷时间的 Arduino 时钟
  6. 主时钟
  7. 使用 Arduino 控制硬币接收器
  8. Arduino 温度。使用 3.2 显示的监视器和实时时钟
  9. Arduino 带蓝牙控制 LED!
  10. 在 MDF 木箱中用 Arduino 制作数码时钟
  11. 7 段阵列时钟
  12. 带 DS1302 RTC 的简单闹钟