一、功能简介
本项目使用Proteus8仿真51单片机控制器,使用LCD1604显示模块、按键模块、LED和蜂鸣器、DHT11温湿度、DS18B20温度传感器、SR04超声波,声音传感器、L298N直流电机、语音蓝牙控制等。
主要功能:
系统运行后,LCD1604显示DHT11检测环境湿度值、DS18B20检测体温、HC-SR04超声波检测距离、声音传感器检测是否有声音;如果超声波检测距离大于报警值120CM,则蜂鸣器报警。否则,如果检测到儿童哭泣,开启摇篮,如果检测到没有声音,则停止摇篮。
当检测没有声音时,可通过语音/蓝牙控制摇篮的开启和关闭;
当检测到有声音时,可通过语音/蓝牙控制打开和关闭声音。
语音/蓝牙控制指令:
0X01–>开启摇篮
0X02–>停止摇篮
0X03–>开启声音
0X04–>关闭声音
二、软件设计
/*
作者:嗨小易(QQ:3443792007)
*/
//系统功能控制
void sys_fun_ctrl(void)
{
static u16 i=0;
static u8 cnt=0;
//如果检测距离超限,蜂鸣器报警
if(sys_ctrl.dis>ALARM_DIS)
{
beep_alarm(100,20);//蜂鸣器报警
}
//有效距离内
else
{
//如果检测到有声音,开启摇床
if(sys_ctrl.sound==1)
{
sys_ctrl.run=1;
i++;
if(i%10==0)
{
cnt++;
if(cnt>2)cnt=0;
dc_motor_dir_ctrl(cnt);//开启摇床
}
//如果语音/蓝牙播放音乐
if(UART_RX_BUF[0]==PLAY_MUSIC_CMD)
{
beep_alarm(1000,10);
}
}
//如果检测到没有声音
else
{
//如果语音/蓝牙打开摇床,开启摇床
if(UART_RX_BUF[0]==START_CMD)
{
sys_ctrl.run=1;
i++;
if(i%10==0)
{
cnt++;
if(cnt>2)cnt=0;
dc_motor_dir_ctrl(cnt);//开启摇床
}
}
//如果语音/蓝牙关闭摇床,关闭摇床
else if(UART_RX_BUF[0]==STOP_CMD)
{
UART_RX_BUF[0]=0;
sys_ctrl.run=0;
dc_motor_dir_ctrl(0);//停止摇床
}
//没有收到语音/蓝牙指令
else
{
sys_ctrl.run=0;
dc_motor_dir_ctrl(0);//停止摇床
}
}
}
}
//应用控制系统
void appdemo_show(void)
{
u8 i=10;
sys_parm_init();//系统参数初始化
lcd1604_init();
DHT11_Init();
ds18b20_init();
UART_Init();//串口初始化,4800
UART_SendString("UART Init OK\r\n");
//读取温度数据,等待稳定
while(i--)
{
//读取DHT11温湿度值
DHT11_Read_Data(&sys_ctrl.htemp,&sys_ctrl.humi);
//读取DS18B20温度值
sys_ctrl.temp=ds18b20_read_temperture()*10;
delay_ms(100);
}
ultrasonicwave_init();//超声波初始化
sys_open_show();//系统开机界面显示
while(1)
{
sys_data_get();//系统数据获取
sys_data_show();//系统数据显示
sys_data_set();//系统数据设置
sys_fun_ctrl();//系统功能控制
}
}
三、实验现象
B站演示视频:https://space.bilibili.com/444388619
文章来源:https://www.toymoban.com/news/detail-472643.html
联系作者
专注于51单片机、STM32、国产32、DSP、Proteus、ardunio、ESP32、物联网软件开发,PCB设计,视频分享,技术交流。文章来源地址https://www.toymoban.com/news/detail-472643.html
到了这里,关于【Proteus仿真】【51单片机】智能婴儿车的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!