利用ARDUINO和继电器模块制作爆闪灯
创作立场声明:今年过年我们不放鞭炮,放爆闪灯吧
ARDUINO从入门到创客带师第0期
利用ARDUINO制作爆闪灯
其实就是驱动继电器/开关管模块的实际应用
灵感来源是群友说要用NE555做爆闪灯……我说NE 555有现成的模块可以用,2块钱那样吧,频率之类的都有现成的调节电路三根线甩上电源调电位器就能输出
但是我还是建议10多块钱包邮买个arduino玩, 十多个PWM数字输出够玩了
至于说不会的,ARDUINO还用学?直接找现成的库往上一套就完事了 加个8266库甚至还能用手机直接遥控
首先ARDUINO之前几期已经讲过了不少了就不说了,来认识一下5V继电器模块吧
这种兼容ARDUINO的继电器模块成本非常便宜,基本上控制在了两元以内,再加上ARDUINO开发板的产量和使用量如此巨大,导致开发板+模块的整体成本基本都在15元以内。
总之这种模块其实结构非常简单,就一个继电器和驱动电路,三根线分别代表电源正负和驱动信号,信号脚输入高电平(5V)或者低电平触发继电器动作,改变继电器导通不同的触点(一般这种继电器模块都是单路双掷)
继电器线圈驱动电压是5V,输入控制电平也可以是5V以内
单路继电器模块说明:
引脚定义
1、输出驱动能力:250VAC-10A、125VAC-10A、30VDC-10A、28VDC-10A; (可以看到这里其实开关的输出能力完全取决于电流,而不在乎电压的大小,所以以前我们做电磁弹射的时候经常告诉各位的就是如果选用机械开关就可以相应的提高系统的电压从而提高效率) 2、使用方便,每组输出简单3线结构,预留输出接线柱; 3、输入直接与单片机IO口或数字电路连接,输入高电平继电器吸合,输入低电平继电器释放(或者反之,但是因为这种继电器都是双掷开关,所以高电平触发还是低电平触发的区别意义不大); 4、工作电压5V,吸合电流约70mA每路,带继电器状态指示灯;
5、全贴片元件,最合理驱动电路设计,采用8050三极管驱动继电器动作;
6、设有固定螺丝孔方便安装,电路板尺寸1.8cm*4.0cm*1.9cm,重15g;
简单测试说明: 模块输入与输出电气绝缘,供上对应正确电压后,只需在输入排针上接上高电平(如与VCC短路)就能让继电器吸合,不接或接低电平(如与GND短路)继电器不动作
继电器模块有两个触点:常开常闭触点分别接两路LED不就行了
简单来说这期的教程真的是异常简单,放在第一期之前写第0期都不为过,简单的利用代码驱动单片机IO输出一定频率变化的高低电平就行了
代码实现:
const int relayPin = 13;
int relayState = 0;
void setup ()
{
Serial. begin (9600);
pinMode (relayPin, OUTPUT);
}
void switchRelay ()
{
if (relayState == 0)
relayState= 1;
else
relayState = 0;
digitalWrite (relayPin, relayState);
Serial. print( "Relay status:");
Serial. println (relayState) ;
}
void loop ()
{
switchRelay();
delay (5000);
}
这样就能在ARDUINO开发板的13号输出端口上输出每5秒钟变化一次的高低电平
对于继电器来说就是每隔5s切换断开 接通状态
想要改变频率把那个DELAY改一下就行了,写多少就是多少毫秒切换一次电平。其实ARDUINO支持的PWM的频率还挺高的,最高可以到16Mhz呢,ARDUINO还有PWM频率库可用。软PWM库驱动使用定时器+国产的LGT的芯片频率可以很高。
扩展:PWM的概念咱之前应该是上期还是上上期已经讲过了,至于NE555其实就是关于PWM应用很广的一种模拟电路。但是相对数字电路来说,它的可调节性和精确度都不如数字电路理想,简单来说就拿占空比来说,之前说的555模块输出占空比可以微调,占空比和频率不是分别可调的,调占空比会改变频率,而且调节范围也不宽。
占空比是指在一个脉冲循环内,通电时间相对于总时间所占的比例。像是上述代码每隔固定时间改变通电状态,这样通电时间相对于总时间就是二分之一的关系,占空比就是50%,当然,通过修改代码理论上可以调节0-100%之间任意数值的占空比,555模块就很难实现。此外555模块正常情况下输出电流只有15mA,最大输出电流(外加最大电压)也只有35mA,是很难驱动需要70mA的继电器模块的。
所以这种模块便宜倒是真便宜,就是不太好用就是了
硬件接线
值得注意的是ARDUINO一旦程序上传烧写完毕之后可以脱机使用,也就是说可用直接插根电源线就能用了,不一定必须要用到电脑。所以如果手上没有电脑也可以用有arduino环境的电脑把程序烧录完了之后把开发板带回去接线
首先我们掏出ARDUINO开发板,这里咱用的是UNO官方版,前两天把之前那个改音乐盒的给我小弟送去之后又重买的,20包邮吧
板子丝印和之前不太一样了,好像又更新了
总之我们分别把13号数字引脚 5V GND引脚和继电器模块连接好就可以了
VCC就是5V正极 GND是接地 IN是信号输入,这里我们代码定义的是13号数字输出,可以通过改变代码定义修改实际具体接线
爆闪灯一般都是中功率的LED模组,和普通的单体LED不同的是模组一般都是经过串并联的LED+限流电路组成的,需要的电压也不是普通LED的3V而是随着不同串联方案变化的,像咱现在用的这个就是3串的模块,加上限流电路总共需要12V供电。也有高功率LED灯需要36V甚至48V供电的,但是这里其实对于我们这个方案来说都一样只是换个电源的事,毕竟继电器的工作电压是很高的,最高支持到250V呢,当然为了安全还是不建议在家接强电(高于安全电压可以称为强电)。尤其是家用电,非常容易死人的。
这里我们已经把LED模组通过导线和插头连接好了,正好我手头有一个已经接好线的继电器模块,直接拿过来就能用
这里如果需要自己接线的话需要把继电器串联在整个回路中的LED和电源之间。不是很难
总之一切准备就绪之后就可以上电了,正常情况下LED就开始以代码设定的频率爆闪了
继电器本身其实支持的频率也挺高的,像这种小型继电器可以上KHZ
频率等于周期的倒数f=1/T 频率单位是赫兹 周期的单位是秒 1赫兹表示周期是1秒 50赫兹表示周期单位是0.02秒,这个频率正好是家用电的交流电频率,对人体来说低频中压交流电刚好是非常致命的。
视频:
PS:其实有兴趣的话各位可以像我说的那样自己组两路LED模块,弄一组红蓝灯之类的分别接在继电器模块的两端,这样就可以制作红蓝交替闪烁的警灯了
这样的警灯经常在乡村路段的路口出现,而现代LED灯的原理早已不是过去的转盘结构,都是通过电子开关来控制LED闪烁而不是物理遮挡了。
PS:其实到了这一步各位就打下来了基础了,接下来如果进阶的话就可以搞一些类似H桥驱动电路、电子开关之类的制作了,H桥这种能够通过桥式电路控制负载上电压方向的电路不仅可以用于自制遥控车或者智能小车,还非常常见于逆变器或者音箱功放。
亚克力板的智能小车,其实也过去接触这个东西的时候那会儿大伙还都在用51单片机做这个,如今已经没人用了吧……
毕竟51单片机都好几十年的东西了,AVR单片机虽然性能也没强多少但是Arduino是专门基于AVR单片机特定开发板的开源开发环境,它有一套完整的高级语言和自成体系的支持库函数,相对于51开发板来说入门相当容易,这些都是非常应用友好的。
将来各位可能直接使用树莓派编程、用PYTHON或者更高级的语言做代码实现,至于C语言的底层和汇编语言一样,作为了解性的存在即可。毕竟应用上能完成需求才是最后的真理。
舍木
校验提示文案
sonypsx
校验提示文案
奔IV程序猿
校验提示文案
奔IV程序猿
校验提示文案
舍木
校验提示文案
sonypsx
校验提示文案