概述
基于Arduino的温控风扇系统,经DS18B20温度采集,将数据传送到Arduino,通过PWM调节占空比进而控制电机转速,经过驱动电路驱动电机,由电机的计数模块得到电机转速并用LCD1602显示。
设计方案
高电平时电压为U,占空比为 ,则单个周期内平均电压为 ,所以占空比越大,直流电机转速越快。所用直流电机转一圈输出41个脉冲,设一个脉冲的频率为fHz,则电机转速为:v=f/41*60 r/min。
硬件设计
温度采集电路:在此设计中将DS18B20接在Arduino的10号脚上实现温度的采集。
电机计数模块:通过电机发射脚和接收脚将位移转换成周期性的电信号,再把这个电信号转变成计数脉冲,用脉冲的个数表示位移的大小。将信号反馈给Arduino单片机
驱动电机模块:本设计由Arduino的9口输出PWM脉冲,通过8550驱动直流电机,以实现温控风扇转速的调节。当环境温度升高时,占空比变大,因此转速变快,温度减小时,转速变慢,由于8550时低通的,编程时需要注意。
软件设计
#include <OneWire.h>
#include <DallasTemperature.h>
#include <LiquidCrystal.h>
#include <Servo.h>
#define ONE_WIRE_BUS 10//
LiquidCrystal lcd(12, 11, 7, 6, 5, 4)