四位数显表头设计
扫描二维码
随时随地手机看文章
去年帮别人定制了一个四位数显小表头,可以用于测量4-20mA或者0-5V、0-10V输出的的各种传感器,可设置显示范围、上下限报警灯。由于后面更改方案,此方案暂时搁置不用。今天来分享一下软硬件的设计过程。
1.硬件设计1.1电源电源采用一个TL431+一个三极管构成线性稳压电路。采用这种方式,一方面是因为成本较低,另一方面,可以做大较大的电源输入范围(普通的1117-3.3等芯片输入范围也就到16V)。另外,TL431还可以为ADC提供参考电压。1.2显示设计可以使用单片机直接驱动数码管,但是会占用较多的IO口,且软件设计上稍复杂,这里采用一个TM1650驱动一个4位共阴极数码管。1.3单片机及AD采样单片机使用STM32G030F6,内置ADC支持硬件过采样,可以达到16位分辨率。采集电流或电压,通过选择合适的电阻即可。采集4-20mA电流时,R12为0R,R4为150R。采样电压时,R12和R4选择合适的电阻分压,使输入范围在3.3V以内。如果是直接采集电源电压,短接R13即可。另外一路ADC通道采集TL431的VREF引脚,作为参考电压。1.4报警设计两个光耦隔离报警(超高报警、超低报警)输出,外部增加了三极管,用于驱动继电器等较大电流的设备。另外板载一个蜂鸣器(无源),同时引出蜂鸣器接口,也可外接蜂鸣器。1.5按键两个按键用于设置显示参数、报警参数、校准等。两个按键同时引出到端子上,也可外接按键。同时2个按键使用的是串口功能的引脚,可修改程序实现串口输出及设置。最终的PCB板如下,背面为数码管。
2.软件设计软件上,使用STM32CubeMx设计,使用硬件I2C1接口驱动TM1650。使用了2个ADC通道采集输入电流和TL431的参考电压。使用TIM3CH1输出PWM波驱动蜂鸣器。其它就是2个报警IO和2个按键IO。如下:软件实现功能如下:东西只做了一版,软硬件设计上可能还不太完善,仅供参考。