晋中建设集团网站,网站建设推广注册公司,网站域名注册时间查询,开封公司网站如何制作文章目录 一、功能简介二、软件设计三、实验现象联系作者 一、功能简介
本项目使用Proteus8仿真Arduino单片机控制器#xff0c;使用LCD1602液晶、光敏传感器、ADC模块、按键模块、28BYJ48步进电机驱动模块、直流电机模块等。
主要功能#xff1a; 系统运行后#xff0c;L… 文章目录 一、功能简介二、软件设计三、实验现象联系作者 一、功能简介
本项目使用Proteus8仿真Arduino单片机控制器使用LCD1602液晶、光敏传感器、ADC模块、按键模块、28BYJ48步进电机驱动模块、直流电机模块等。
主要功能 系统运行后LCD1602显示四个方向光线强度、工作模式及控制状态 系统默认工作在自动模式当系统检测为白天晴天可以开始工作当上光线值比下光线值还高于阈值则直流电机工作上升 当下光线值比上光线值还高于阈值则直流电机工作下降 当左光线值比右光线值还高于阈值则步进电机工作左转 当右光线值比左光线值还高于阈值则步进电机工作右转 当系统检测为夜晚停止工作。 当按下K1键切换为手动模式可通过K2-K5键对上下左右方向控制 二、软件设计
/*
作者嗨小易QQ技术交流群570487280*///系统数据显示
void sys_data_show(void)
{while(1){//光线显示lcd1602_show_nums(2,0,sys_ctrl.light[0],2,0);//上lcd1602_show_nums(8,0,sys_ctrl.light[1],2,0);//下lcd1602_show_nums(2,1,sys_ctrl.light[2],2,0);//左lcd1602_show_nums(8,1,sys_ctrl.light[3],2,0);//右//自动手动显示if(sys_ctrl.auto_flag)lcd1602_show_string(12,0,SD);else lcd1602_show_string(12,0,Au);//上升下降状态显示if(sys_ctrl.udrun0)lcd1602_show_string(15,0,N);else if(sys_ctrl.udrun1)lcd1602_show_string(15,0,U);else if(sys_ctrl.udrun2)lcd1602_show_string(15,0,D);//左右转状态显示if(sys_ctrl.lrrun0)lcd1602_show_string(15,1,N);else if(sys_ctrl.lrrun1)lcd1602_show_string(15,1,L);else if(sys_ctrl.lrrun2)lcd1602_show_string(15,1,R);break; }
}//系统功能控制
void sys_fun_ctrl(void)
{//手动模式下if(sys_ctrl.auto_flag1){switch(sys_ctrl.udrun){case 0: _dc_motor_stop();break;//停止case 1: _dc_motor_fturn();break;//上升case 2: _dc_motor_zturn();break;//下降}switch(sys_ctrl.lrrun){case 1: step_motor_28BYJ48_send_pulse(8,0,STEPMOTOR_MAXSPEED,1,1);break;//左转case 2: step_motor_28BYJ48_send_pulse(8,1,STEPMOTOR_MAXSPEED,1,1);break;//右转} }//自动控制模式else{//如果是晴天根据4个传感器检测光线强弱自动调节if(sys_ctrl.light[0]LIGHT_D_MIN sys_ctrl.light[1]LIGHT_D_MIN sys_ctrl.light[2]LIGHT_D_MIN sys_ctrl.light[3]LIGHT_D_MIN){//上比下亮下降if(sys_ctrl.light[0]sys_ctrl.light[1]LIGHT_VALUE){sys_ctrl.udrun2;_dc_motor_zturn(); }//下比上亮上升else if(sys_ctrl.light[1]sys_ctrl.light[0]LIGHT_VALUE){sys_ctrl.udrun1;_dc_motor_fturn();}//上下亮度差不多停止else {sys_ctrl.udrun0;_dc_motor_stop(); }//左比右亮左转if(sys_ctrl.light[2]sys_ctrl.light[3]LIGHT_VALUE){sys_ctrl.lrrun1;step_motor_28BYJ48_send_pulse(8,0,STEPMOTOR_MAXSPEED,1,1); }//右比左亮右转else if(sys_ctrl.light[3]sys_ctrl.light[2]LIGHT_VALUE){sys_ctrl.lrrun2;step_motor_28BYJ48_send_pulse(8,1,STEPMOTOR_MAXSPEED,1,1); }else{sys_ctrl.lrrun0;}}//如果是夜晚系统不工作else if(sys_ctrl.light[0]LIGHT_N_MIN sys_ctrl.light[1]LIGHT_N_MIN sys_ctrl.light[2]LIGHT_N_MIN sys_ctrl.light[3]LIGHT_N_MIN){sys_ctrl.udrun0;sys_ctrl.lrrun0;_dc_motor_stop(); }}
}//应用控制系统
void appdemo_show(void)
{sys_parm_init();//系统参数初始化KEY_Init();pcf8591_init();dc_motor_init();step_motor_gpio_init();lcd1602_init();//LCD1602初始化sys_open_show();//系统初始界面显示while(1){sys_data_get();//系统数据获取sys_data_show();//系统数据显示sys_data_set();//系统数据设置sys_fun_ctrl();//系统功能控制 }
} 三、实验现象
B站演示视频https://space.bilibili.com/444388619 联系作者
视频地址https://space.bilibili.com/444388619/video 专注于51单片机、STM32、国产32、DSP、Proteus、ardunio、ESP32、物联网软件开发PCB设计视频分享技术交流。