【单片机毕业设计选题24105】-基于单片机的自动配料机控制系统

系统功能:

系统分为自动状态和手动状态上电默认为手动状态,手动状态下可以通过按键和蓝牙手动控制步进电机正反转,

自动状态下根据采集到的两路接近传感器信号自动控制步进电机正反转。

系统上电后,OLED显示"欢迎使用请稍后",两秒后进入正常页面显示,第一行显示采集到的温湿度,第二行

显示系统状态(正转反转或停止状态),第四行显示系统模式(手动或自动)

短按B4按键切换系统模式,手动或自动

短按B5按键步进电机正转

短按B6按键步进电机反转

手机APP连接蓝牙模块后,自动模式下系统定时上报温湿度信息和系统状态, 手动模式下可以通过APP下发控制命令

控制步进电机正反转, 控制命令分别为字符F和R

主要功能模块原理图:

电源时钟烧录接口:

单片机和按键输入电路:

传感器采集电路:

资料获取地址

系统主要功能模块代码

初始化代码:

cpp 复制代码
  /* USER CODE END 1 */


  /* MCU Configuration--------------------------------------------------------*/


  /* Reset of all peripherals, Initializes the Flash interface and the Systick. */

  HAL_Init();


  /* USER CODE BEGIN Init */

    InitVar();


  /* USER CODE END Init */


  /* Configure the system clock */

  SystemClock_Config();


  /* USER CODE BEGIN SysInit */


  /* USER CODE END SysInit */


  /* Initialize all configured peripherals */

  MX_GPIO_Init();

  MX_USART1_UART_Init();

  /* USER CODE BEGIN 2 */

    HAL_Delay(100);

    SetUart1RxToInput();

    HAL_Delay(50);

//uart1打开接收中断

    HAL_UART_Receive_IT(&huart1, (uint8_t*)&uart1RecBuff, 1);

//初始化显示

    InitOled();

    InitOledDisp();

    ResetDHT11();


  /* USER CODE END 2 */

系统控制代码;

cpp 复制代码
//系统信息更新

void SystemControl(void)

{

    static uint8_t sysCnt = 0;

   

    sysCnt++;   

    if(sysCnt>=SYS_UPDATE_INTER)

    {

        sysCnt = 0;

        if(DHT11ReadData()==0)  //DHT11温湿度读取OK

        {

            ;

        }  

//系统模式为自动模式       

        if(sysMode==SYS_AUTO)

        {

//打印温湿度值

            printf("Temp:%02d Humi:%02d\r\n", DHT11_Data.temp_int, DHT11_Data.humi_int);

//打印系统状态

            if(sysState==SYS_STOP)

            {

                printf("State:Stop\r\n"); 

            }

            else if(sysState==SYS_FORWARD)

            {

                printf("State:Forward\r\n"); 

            }

            else if(sysState==SYS_REVERSAL)

            {

                printf("State:Reversal\r\n"); 

            }

        }        

    }

//自动模式下判断系统状态

    if(sysMode==SYS_AUTO)

    {

        if(GetForwardStatus()==LOW_LEVEL)

        {

            sysState = SYS_FORWARD;

        }

        else if(GetReversalStatus()==LOW_LEVEL)

        {

            sysState = SYS_REVERSAL;

        }

        else

        {

            sysState = SYS_STOP;

        }

    }

//根据系统状态控制步进电机正反转

    if(sysState==SYS_FORWARD)

    {

        LED_ON();

        StepperRotateForward();

        LED_OFF();

        sysState = SYS_STOP;

    }

    else if(sysState==SYS_REVERSAL)

    {

        LED_ON();

        StepperRotateReversal();  

        LED_OFF();

        sysState = SYS_STOP;

    }

}

系统显示:

cpp 复制代码
//处理OLED显示内容

void SystemDisplay(void)

{

    char textBuf[20];


//第一行显示采集到的温度值

    sprintf(textBuf, "Temp:%02d Humi:%02d", DHT11_Data.temp_int, DHT11_Data.humi_int);   

    OledShowString(0, 0, (uint8_t*)textBuf, OLED_FONT_8X16); 

//第二行显示系统状态

    if(sysState==SYS_STOP)

    {

        sprintf(textBuf, "State:Stop    "); 

    }

    else if(sysState==SYS_FORWARD)

    {

        sprintf(textBuf, "State:Forward "); 

    }

    else if(sysState==SYS_REVERSAL)

    {

        sprintf(textBuf, "State:Reversal"); 

    }

    OledShowString(0, 2, (uint8_t*)textBuf, OLED_FONT_8X16);

//第三行显示系统模式,手动或自动

    if(sysMode==SYS_AUTO)

    {

        sprintf(textBuf, "Mode:Auto  "); 

    }

    else

    {

        sprintf(textBuf, "Mode:Manual"); 

    }

    OledShowString(0, 4, (uint8_t*)textBuf, OLED_FONT_8X16);

}

此设计提供的资料包含原理图PCB(包含PDF,AD,立创EDA三个版本),源代码,系统框图,主程序流程图,物料清单(包含使用到的器件手册),功能操作说明等。

相关推荐
B站计算机毕业设计超人12 小时前
计算机毕业设计Django+Vue.js高考推荐系统 高考可视化 大数据毕业设计(源码+LW文档+PPT+详细讲解)
大数据·vue.js·hadoop·django·毕业设计·课程设计·推荐算法
计算机程序猿学长12 小时前
大数据毕业设计-基于django的音乐网站数据分析管理系统的设计与实现(源码+LW+部署文档+全bao+远程调试+代码讲解等)
大数据·django·课程设计
B站计算机毕业设计超人12 小时前
计算机毕业设计Django+Vue.js音乐推荐系统 音乐可视化 大数据毕业设计 (源码+文档+PPT+讲解)
大数据·vue.js·hadoop·python·spark·django·课程设计
悠哉悠哉愿意12 小时前
【单片机学习笔记】串口、超声波、NE555的同时使用
笔记·单片机·学习
Lester_110114 小时前
STM32霍尔传感器输入口设置为复用功能输入口时,还能用GPIO函数直接读取IO的状态吗
stm32·单片机·嵌入式硬件·电机控制
LCG元14 小时前
低功耗显示方案:STM32L0驱动OLED,动态波形绘制与优化
stm32·嵌入式硬件·信息可视化
三佛科技-1873661339714 小时前
120W小体积碳化硅电源方案(LP8841SC极简方案12V10A/24V5A输出)
单片机·嵌入式硬件
z203483152014 小时前
STM32F103系列单片机定时器介绍(二)
stm32·单片机·嵌入式硬件
Alaso_shuang17 小时前
STM32 核心输入、输出模式
stm32·单片机·嵌入式硬件
脚后跟17 小时前
AI助力嵌入式物联网项目全栈开发
嵌入式硬件·物联网·ai编程