一设计思路:1硬件电路选择:1.1选用开发板: 因为开学前我自学了stm32,arduino,stm8s,想到该实验的难易程度,没有选择赵新宇学长们用的stm32f103vet6,考虑到stm32f030的引脚不够用,所以我最终选择具有32位性能的8位单片机stm8s105k4t6.24个引脚。Stm8s105k4t6是双通道6路10位ad,一个串口通信,一路spi,一路iic,一个八位定时器timer4,两个16位通用定时器timer2,ttimer3,一个高级定时器timer1.在系统速度要求不高,数据处理量不大的情况下,选用stm8s已经很满足课题的要求。 1.2选用显示装置:我看了下,赵新宇学长用的是3.2寸正点原子出品的触摸屏,大概需要16更数据线,程序编写起来有些吃力,且要占用很大的Flash空间,做一个高精度可控恒温系统,完全是一种浪费。我选用的是4段共阴数码管,用12线控制。当然可以用74hc595或者74hc164作为并转串节省io口资源,但程序模块已经调好,实验最终也没有完全占完io口资源,所以用12线控制还是可以满足要求的。 1.3控制按钮: 因为我选用的是数码管,所以最好的办法就是用按键选择控制温度。我一共设计了4个按键,最上面的按键代表的是串口发送功能。程序启动后,如果按下最上面的按键,就可以启动串口发送数据功能,可以实时的将采集到的数据发送到上位机,通过按下按钮,可以切换是否需要发送当前温度或设定温度的功能。 下面3个按键是设定加热温度。第一个是选择更改温度的位数,十位,个位,小数位。第二个按键是逻辑加的功能,根据你选择的位数,加10,1,0.1。而第3个按键的功能与第二个按键的功能类似,只是逻辑减的功能。 四个按键就可以具有设定加热温度,串口发送的功能。 1.4两路PWM控制波 因为不确定加热装置,所以我选择用一路控制电机,通过搅拌使水加热均匀,另一类控制加热装置。目前只是知道加热装置要选用加热炉,并不清楚控制芯片类型选择,所以不好确定PWM波的频率和相应的电路。 1.5指示灯 为了验证按键是否正确按下,我设置了一个指示灯,只要一个按键有效按下,指示灯就可以翻转一下。温度采集了一次,指示灯也翻转一次,这在实际过程中,可以显示硬件是否出现故障。 1.6温度采集:之前我和李瑞鹏商量去买lm35.但不知道怎么的,买来的lm35按照给定的电路图就是没有反应,而且出来的是一些莫名其妙的数据,感无解。而且我在第一次接电路的时候,突然发现有一个lm35烧了,很是无语,所以我后来选择了精度稍微差点,速度特慢的ds18b20.因为不知道我们的控制速度是多大的,所以只能先试下,可以用。两个ds18b20,每秒只能采集1-2组数据。 1.7电源模块之前是用蓄电池做实验,因为充电器爆了,所以只能选用开关可调稳压电源芯片lm2596,xl6003.
|