本实用新型涉及一种电气控制系统,尤其涉及一种基于Arduino单片机控制的电气控制系统。
背景技术:
目前步进电机、直流电机和电磁阀的控制采用数控系统或PLC控制系统实现的工业案例较为常见,数控系统在数控机床领域应用广泛,二在自动机械上PLC控制系统虽然应用比较多,但PLC控制直流电机和步进电机成本较高。
例如中国专利文献CN 103394443A的发明专利提供了一种点胶机,包括PLC控制箱,PLC控制箱与打胶机相连接,打胶机通过胶管与点胶笔相连接,点胶笔与打胶产品相配合。点胶机中需用到步进电机和直流电机,该发明就采用了PLC控制系统实现对步进电机和直流电机的驱动,成本较高。
技术实现要素:
本实用新型为了解决现有技术中存在的问题,提供一种能有效降低自动机械控制系统成本的基于Arduino单片机控制的电气控制系统且能有效提高单片机的抗干扰性能。
为了达到上述目的,本实用新型提出的技术方案为:一种基于Arduino单片机控制的电气控制系统,用于控制步进电机、直流电机、电磁阀和液晶显示屏,包括Arduino单片机、光耦隔离输入电路、用于驱动电磁阀的光耦加继电器隔离输出电路、用于驱动直流电机或步进电机的直流电机隔离驱动电路和用于控制液晶显示屏的显示电路;所述光耦隔离输入电路与Arduino单片机的输入端电联接,所述光耦加继电器隔离输出电路、直流电机隔离驱动电路、步进电机驱动器和显示电路分别与Arduino单片机的输出端电联接。
本实用新型的技术效果为:通过Arduino单片机控制替代传统的PLC控制,大幅降低了电气控制成本;而且Arduino单片机与其他电路的联接均采用光电耦合的方式连接,通过这种隔离电路设计提高了单片机的抗干扰性能,使其能在工业干扰环境下正常工作。
对上述技术方案的进一步改进为:所述Arduino单片机的基本工作电路中包含16MHZ晶振、22PF起振电容以及复位电路,所述Arduino单片机工作时采用5V隔离电源。单片机采用5V隔离电源工作的目的是通过光电耦合器让单片机与外部输入输出电路、驱动电路完全隔离开。
对上述技术方案的进一步改进为:所述光耦隔离输入电路中包括PC817光电耦合器,所述PC817光电耦合器用于将24V控制信号转化为5V控制信号,所述PC817光电耦合器的输入端还连接有限流电阻。由于PC817光耦的输入电流一般在20MA以下,所以需要加2K的限流电阻,否则会因电流过大烧坏光耦。
对上述技术方案的进一步改进为:所述光耦加继电器隔离输出电路中包括PC817光电耦合器、TIP122三极管和继电器,所述继电器上还并联有一个反向二极管,所述PC817光电耦合器用于将Arduino单片机输出的5V控制信号转化为24V控制信号,所述TIP122三极管用于将PC817光电耦合器的输出电流放大。由于PC817光耦的最大输出电流为30MA左右,这个电流不足以驱动电磁阀或继电器,所以需要通过TIP122三极管放大驱动电流;此驱动电路主要用于驱动电磁阀,通过电磁阀控制气缸,而电磁阀和继电器都属于电感性负载,在电磁阀或继电器断开的瞬间,会产生反向电动势,由于反向电动势的电压一般都比较高,容易击穿三极管,所以需要在电磁阀或继电器上并联一个反向二极管,用来吸收断开瞬间产生的电动势能量。
对上述技术方案的进一步改进为:所述电气控制系统采用PWM技术调节直流电机速度,所述直流电机隔离驱动电路中包括两个PC817光电耦合器和一个L298N模块,所述L298N模块用于实现PWM技术对直流电机速度的调节,所述L298N模块在与直流电机连接的连接端设有四个1N4007二极管。由于直流电机属于感性负载,为了防止电机停止时产生的反向电动势击穿L298N内部驱动电路,所以在与直流电机连接的连接端设有1N4007二极管。
对上述技术方案的进一步改进为:所述液晶显示屏为采用12864液晶屏幕。
对上述技术方案的进一步改进为:还包括与所述Arduino单片机的输出端电联接用于驱动步进电机的步进电机驱动电路,所述步进电机驱动电路中包括TB6600步进电机驱动器,所述TB6600步进电机驱动器中设有光电耦合器,Arduino单片机信号不需要做隔离处理。
附图说明
图1为本实用新型实施例的工作原理图;
图2为图1中Arduino单片机的基本工作电路图;
图3为图1中光耦加继电器隔离输出电路的原理图;
图4为图1中直流电机隔离驱动电路的原理图;
图5为本实施例中PWM技术的原理图;
图6为图1中光耦隔离输入电路的原理图;
图7为图1中显示电路的原理图;
图8为本实施例中步进电机驱动电路的原理图。
具体实施方式
下面结合附图以及具体实施例对本实用新型进行详细说明。
实施例
如图1所示为本实施例的基于Arduino单片机控制的电气控制系统的原理图,包括Arduino单片机1、光耦隔离输入电路4、用于驱动电磁阀的光耦加继电器隔离输出电路2、用于驱动直流电机或步进电机的直流电机隔离驱动电路3和用于控制液晶显示屏的显示电路5;光耦隔离输入电路与Arduino单片机的输入端电联接,光耦加继电器隔离输出电路、直流电机隔离驱动电路、步进电机驱动器和显示电路分别与Arduino单片机的输出端电联接。
本实施例中Arduino单片机基本工作电路、光耦加继电器隔离输出电路、直流电机隔离驱动电路、光耦隔离输入电路以及液晶显示电路,电路各部分功能在满足控制要求的同时均需要考虑抗电磁干扰,以保证电路的高可靠性。
本实施例中Arduino单片机1最小系统的基本工作电路如图2所示,包含16MHZ晶振,22PF起振电容,以及复位电路。在本实施例中,单片机采用5V隔离电源工作,使用5V隔离电源的目的是接下来能通过光耦让单片机与外部输入输出电路,驱动电路完全隔离开。
本实施例中光耦加继电器隔离输出电路2如图3所示,包括PC817光电耦合器、TIP122三极管和继电器,继电器上还并联有一个反向二极管,Arduino单片机1通过PC817光耦实现5V控制信号转24V控制信号,同时实现了单片机控制端与驱动电路之间电气上完全隔离,驱动电路与单片机控制信号之间只有光信号的交换,但由于PC817最大输出电流为30MA左右,这个电流不足以驱动电磁阀或继电器,所以需要通过TIP122三极管放大驱动电流,最大可达2A。光耦加继电器隔离输出电路2主要用于驱动电磁阀,电磁阀和继电器都属于电感性负载,在电磁阀或继电器断开的瞬间,会产生反向电动势,由于反向电动势的电压一般都比较高,容易击穿三极管,所以需要在电磁阀或继电器上并联一个反向二极管,用来吸收断开瞬间产生的电动势能量。在本实施例中,因为继电器的功率比电磁阀的功率小,同时为了方便驱动电路的维护,所以采用了先控制中间继电器再通过中间继电器触点控制电磁阀通断的方式。
本实施例中直流电机隔离驱动电路3如图4所示,包括两个PC817光电耦合器和一个L298N模块,直流电机电压采用24V,本实施例要求Arduino单片机1能控制直流电机的调速,由于普通的继电器只能实现电路的通断实现不了调速,所以在本实施例中采用了PWM技术调节直流电机速度。PWM也称脉宽调制技术,就是在同样的脉冲周期中改变高低电平在周期中的比例。
PWM技术的工作原理图如图5所示,在脉冲周期为10MS即脉冲频率是100HZ的波形中,第一个脉冲周期中为4MS的高电平,6MS的低电平;第二个脉冲周期中为6MS的高电平,4MS的低电平;第三个脉冲周期中为8MS的高电平,2MS的低电平。这三段脉冲占空比分别是百分之四十,百分之六十,百分之八十。由于PWM需要很高的通断频率,所以普通的继电器无法实现PWM功能,本实施例中采用L298N模块来实现PWM调速,L298N内部有4通道逻辑驱动电路,可以用来驱动一个步进电机或两个直流电机。如图4所示,IN1、IN2、 IN3、 IN4分别对应OUT1、OUT2、OUT3、OUT4,当IN引脚为低电平时,对应的OUT引脚也为低电平;如果IN为高电平,对应OUT引脚也为高电平。不同的是IN端是单片机控制端,信号电压为0~5V,而OUT端则是0~24V电压,并且最大电流能达到2A,本质上L298N的作用就是将驱动信号放大。L29N8由于是电子关断,所以频率可以很高。Arduino单片机1有6个引脚可以输出PWM信号,分别是D3,D5,D6,D9,D10,D11引脚,在本实施例中采用D10,D11引脚,采用两个PWM输出引脚的原因是直流电机需要控制工件正反两个方向旋转。图4中IN1和IN2端口通过下电阻保持低电平,当单片机输出信号为高电平状态时,IN端口电平被上拉;输出为低电平时光耦关断,此时通过下拉电阻将信号拉为低电平,斗则IN端口将处于浮动状态。因为直流电机属于感性负载,为了防止电机停止时产生的反向电动势击穿L298内部驱动电路,所以电机的引脚上连接了四个1N4007二极管。
本实施例中光耦隔离输入电路4如图6所示,包括PC817光电耦合器, PC817光电耦合器的输入端还连接有限流电阻。由于本实施例中采用的传感器为24V NPN型,为了统一输入信号的电压范围,将所有的开关按钮,磁性开关都设计为采用24V电压,比5V抗干扰性更高。PC817的输入电流一般在20MA以下,所以需要加2K限流电阻,否则会电流过大烧坏光耦。单片机输入信号设计为低电平有效,当光耦关断时,通过上拉电阻确保引脚处于高电平状态,没有上拉电阻单片机引脚将处于浮动状态,并容易受周围电磁场影响,使引脚信号表现为忽高忽低的状态。
本实施例中显示电路5如图7所示,本实施例中采用12864液晶屏幕,12864数据总线采用八位并口或SPI串口方式,12864的R/S引脚接单片机的D8脚(硬件SPI串口上的CS引脚),屏幕的R/W引脚接单片机的D9引脚(硬件SPI串口上的SID脚)。屏幕的E引脚接单片机的D3引脚(硬件SPI串口上的SCLK脚)。12864液晶屏幕可显示四行八列共32个16*16点阵的汉字。或者显示64个ASCII码字符。12864液晶屏幕主要用于工作参数及状态显示。在本实施例中12864液晶屏幕SPI串口接线方式,相对于并口接线方式(需要接11根数据线到单片机),将用掉Arduino单片机一半左右的IO口,而SPI串口控制方式只需要单片机三根IO,大幅度减少了对IO的占用。
本实施例中步进电机驱动方式与直流电机一样,控制四个IN口的电平使得步进电机A相绕组跟B相绕组交替得电使电机转动,虽然这种方法最经济,但是会用掉单片机四个IO点,并且步进电机的细分操作全都需要用程序来控制,程序比较繁杂也加大了程序执行量。
本实施例的中驱动步进电机的另一种实现方式为在Arduino单片机1的输出端电联接用于驱动步进电机的步进电机驱动电路,步进电机驱动电路中包括TB6600步进电机驱动器,所述TB6600步进电机驱动器中设有光电耦合器,其工作原理如图8所示,本实施例中采用两相四线制的步进电机,并采用脉冲信号控制,TB6600步进电机驱动器只需要用单片机两个IO,一个发出脉冲信号,一个发出方向信号。假设步进电机的步距角为1.8度,步进电机驱动器设置的细分为4细分,则步进电机转一圈需要发送800个脉冲,步进电机转动的速度靠脉冲发送的频率决定,如果脉冲发送频率为400HZ,那么电机的转速则是每秒180度。步进的运行电流也可通过步进电机驱动器上的拨码开关来设置,在发热和转矩之间实现平衡,另外可以设置步进电机静止状态下半流模式,此设置可使步进电机静止状态下电流减半,进一步减少步进电机发热量。还由于步进电机驱动器内部自带光耦隔离,所以单片机信号不需要做隔离处理。
本实用新型的基于Arduino单片机控制的电气控制系统不局限于上述各实施例,凡采用等同替换方式得到的技术方案均落在本实用新型要求保护的范围内。