电子说
步骤1:设备
设备
1。 Arduino Uno R3
2。 16X2 LCD显示屏(仅用于测试,在最终组装时移除)
3。 BME280传感器
4。带备用电池的RTC实时时钟
5。 12V - 150V DC-DC升压转换器
6。 12V - 5V DC-DC降压转换器
7。 12V 1A - 电源适配器
8。 5V步进电机28BY-48和控制器ULN2003
9。用于基础,平台和规模的木材。
10。玻璃穹顶
11。 3mm黄铜棒
12。 3毫米黄铜圆顶螺母
13。黄铜板,2毫米(300毫米x 600毫米)
14。黑色100gsm纸
15。各种电缆
16。单极开关
17。 5v红色LED
18。 12V正中心适配器入口
19。各种螺丝,塑料支架,热缩,PCB引脚,电线
20。 PCB板(3 X 40mm X 20mm)
21。 5mm红色LED
22。电流调节器:
a。 1K电阻
b。 1uF容量
c。 470欧姆电阻
d。 220K电阻
e。 2K装饰罐,3296
f。 MJE340 NPN晶体管
步骤2:构造
我附上了一张Fritzing图,显示了这个项目的完整接线。
我附上了俄罗斯原装IN-13数据表,MJE340数据表,TSR-3296数据表,MS Publisher Scales格式,和电流调节器原理图
检查IN-13时,您会注意到管底部玻璃内有一个粉红点。在右侧,从左到右读取的导线为:辅助阴极,Ind阴极和阳极。重要的是阳极不要过载,建议最大值为140V。
检查2K微调电位器时,抽头连接是中心连接,可以使用两个外部连接中的任何一个。在检查MJE340晶体管时,查看黑色塑料侧,而不是散热器侧,从左到右读取连接,给出发射器(E-1),收集器(C-2)和基座(B-3)。
构建电流调节器时,电阻器可以安装在任一方向,但电容器必须安装时“负”灰色条朝向GND。同时确保所有GND返回单点,这对于高压GND也是最重要的,高压GND也必须返回到同一点。
最常见的错误是错误地连接MJE340。
第3步:CURRENT REGULATOR
电流调节器将来自Arduino Uno的PWM数字脉冲转换为IN-使用的模拟电流脉冲13 IND-阴极为显示器供电。
每个电子管需要一个电流调节器。根据原理图,Arduino Uno通过引脚3和6,两个PWM使能,通过1K电阻控制MJE340的集电极。 1uF电容可以平滑电流波动。一个470欧姆的电阻为2K微调电位器提供电流,220K电阻为辅助阴极提供电源。微调电位器允许设置最大和最小显示值。 Trim电位为MJE340的发射极供电,Base引脚连接到Ind Cathode。
步骤4:步进电机
用360度伺服电机测试系统后我决定使用步进电机提供更准确的。步进电机通过Arduino Uno的四条控制线进行控制。步进电机臂连接到3毫米的铜棒上,铜棒已经钻过三角形的木块。杆的顶部被攻丝并穿过铜板并用圆顶黄铜螺母固定。
步进电机与每组值的显示相匹配,小时+分钟,摄氏+华氏,湿度+压力。每张脸与另一张脸成120度。为了计算出需要旋转一次臂的步骤数,我们得到:360/11.25 = 32步(4步顺序,步幅为11.25)。连同64的齿轮比,我们得到(32 * 64)= 2048来完成一圈的旋转。
因此,我们需要一个683的值来将手臂旋转120度。
步进电机安装在顶板的底部,通过控制器8,9,10和11连接到Arduino Uno的控制器,连接到5V电源。
第5步:软件
我附加了三个库文件,全部来自https ://github.com/网站。附加的NCO文件中的其他“包含”文件都是标准库文件。
我附上了两个Arduino NCO文件,一个显示Nixie管的校准,另一个显示用于控制项目的完整程序。摄氏温度,华氏温度,压力和湿度获得的值都转换为整数,并且还受限于使用CONSTRAIN Arduino函数。此外,MAP函数还用于将这些整数值映射到40到255的固定范围(IN-13管的最小值和最大值),关键代码如下:
对于小时和分钟:
小时=约束(小时,0,23);
分钟=约束(分钟,0,59);
new_hours = map(小时,0,23,40,255);
new_minutes = map(分钟,0,59,40,255);
对于Celsius和华氏度:
摄氏度=约束(摄氏10,35);
fahrenheit = constrain(fahrenheit,50,100);
new_celsius = map(摄氏10,35,40,255);
new_fahrenheit = map(fahrenheit,50,100,40,255);
对于压力和湿度:
Bar_pressure = constrain(Bar_pressure,980,1030);
Percentage_humidity = constrain(Percentage_humidity,30,80);
new_Bar_pressure = map(Bar_pressure,980,1030,40,255);
new_Percentage_humidity = map(Percentage_humidity,30,80,40,255);
注意:固定范围通过使用固定值校准IN-13M并观察光柱的最终位置来确定40至255的值。
注意:已添加软件的V2版本。这个版本纠正了两个问题,一个是使用步进电机转动三面木块,另一个是光检测处理。
步骤6:结论和审查
这个项目很有意思,因为它让我第一次使用步进电机和IN-13 Nixie管。步进电机最终是中央显示器运动的最佳选择,因为伺服电机无法提供我所需的精度。
有必要使用校准程序以提供尽可能多的每个IN-13数码管显示的显示器或显示器高度尽可能准确。虽然时间,温度,压力和湿度读数准确地将这些值映射到IN-13上并不容易,但Arduino MAP功能为这个过程提供了很大的帮助。
我已经包含了一个MS Publisher文件保存每个值的打印比例。我决定将这些打印到黄色的100 GSM纸上,以提供背景和打印的字母和数字之间的最大对比度。
全部0条评论
快来发表一下你的评论吧 !