在前面完成了液体流量检测DIY项目的开箱贴,下面就逐步的开始过程贴的开发和梳理,首先是各个部件的熟悉,按照购买的器件清单,清单如下:
具体各部件的详细介绍如下:
1.STM32 开发板 - NUCLEO-F103RB
开发板的引脚分配表如下所示:
实际开发过程中可以按照此引脚分配进行其他部件的连接和驱动开发。
2.OLED 显示屏 - 104020208
此处的OLED屏幕是0.96寸的,I2C接口驱动芯片是SSD1315,不过和经常用的1306的驱动兼容,能够驱动点亮1306的程序,同样可以驱动点亮该屏幕,屏幕自带四根引线,两个是电源,接3.3V和GND,两个是I2C通信线,一个是SCL,一个是SDA,按照开发板的引脚分类分配,直接连接到开发板上对应的引脚就可以进行后续驱动程序的开发了。
3. 抽水泵 - COM3700
抽水泵是通过继电器模块来控制来实现的,而MCU来控制继电器模块,抽水泵的接线只有两根线,一个电源正极一个电源负极,开关上电和断电就可以控制抽水泵的转动抽水,继电器 COM → 抽水泵的电源正极(红线),继电器 NO →供电电源的正极, 抽水泵的电源负极(白线)→供电电源的地GND,抽水泵的相关详细参数如下图:
4.液体流量传感器 - 314150001
液体流量传感器有进水口和出水口,内部有一个叶轮,当液体从里面流过时,带动叶轮转动,进而出发内部的霍尔传感器输出脉冲信号,输出的信号频率和流程成正比,具体计算公式为:公式:流量(L/min) = 脉冲频率(Hz) / 7.5,硬件输出共有三根线,其中的红线代表连接到VCC-5V,黑色代表连接到GND,黄线是输出脉冲信号线,具体的参数如下图所示:
5.继电器模块 - DFR0017
继电器模块是为了实现单片机控制继电器,进而继电器来控制抽水泵,继电器模块详细参数介绍如下所示:
6.电源模块 - DFR0140
电源模块输入可以是D口的USB,也可以是DC2.1接口的6V~9V适配器接口,有按压开关,能够输出5V和3.3V的电源,可以给继电器,流量计等模块供电,电源模块的详细介绍如下:
首先实现的任务是利用定时器实现LED亮灭1秒,这里是利用定时器中断计时,每1ms一次,计数到1000就为1秒,控制的LED亮灭是开发板上LD2,该LED是MCU的PA5引脚控制的,关键的实现代码如下:
其次实现的任务是OLED显示文字信息,这里要用到字符生成的软件PCto2002完美版,想要显示设计的字符在这个软件里面设计并生成对应的字库码,打开软件,需要进行简单的设置,相关的设置参数界面信息如下:
设置好之后确认就可以,想要生成对应字符的字库码,可以参考如下的界面:
输入要生成的字符,点击“生成字模”就可以在下面生成需要的字模,然后把对应的字模复制到程序中,指定显示OLED屏幕就可以显示对应的字符,屏幕的硬件接线连接方面,用到的OLED是I2C接口,共有四根接线,对应的接线是,电源VCC接开发板的3.3V,地GND接开发板的GND,时钟SCL接开发板的A0引脚,数据SDA接开发板的A1引脚,关键的程序代码如下:
最终的显示效果如下:
完成OLED的文字信息显示任务。
最后的任务是继电器控制抽水泵的通断,找到一个能够输出DC12V的电源适配器,给电源模块供电,这样电源模块就能够输出3.3V和5V的电压,给继电器,水泵和流量计供电,继电器模块的输入端O控制引脚接开发板上的PA12引脚,+端引脚接电源模块的3.3V电源,-端接电源模块的地GND,输出控制端,ON端接电源模块的5V电源,COM端接水泵的红线电源正极线,而水泵的负极白线接电源模块的地GND,完成继电器控制水泵的硬件接线连接。这里设计用开发板上的USER按键来控制继电器的通断,进而控制水泵的通断,并通过LD2指示灯来指示,主体的实现代码如下:
最终实现的效果是按下USER按键,LD2指示灯亮,并控制继电器打开,进而控制水泵进行抽水,当再次按下USER按键,LD2指示灯灭,并控制继电器关闭,进而关闭水泵停止水泵抽水。
至此,初步完成液体流量检测仪的开发过程熟悉,完成过程贴的任务,具体后续的驱动效果在后续的成果贴中展现。