【单片机毕业设计选题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三个版本),源代码,系统框图,主程序流程图,物料清单(包含使用到的器件手册),功能操作说明等。

相关推荐
QQ5471760523 分钟前
stm32实现回调功能
stm32·单片机·嵌入式硬件
B站计算机毕业设计超人1 小时前
计算机毕业设计PySpark+Hadoop中国城市交通分析与预测 Python交通预测 Python交通可视化 客流量预测 交通大数据 机器学习 深度学习
大数据·人工智能·爬虫·python·机器学习·课程设计·数据可视化
wenchm1 小时前
细说STM32F407单片机轮询方式读写SPI FLASH W25Q16BV
stm32·单片机·嵌入式硬件
委员2 小时前
基于NodeMCU的物联网电灯控制系统设计
单片机·物联网·嵌入式·nodemcu··lu_asr01·gy-302
北国无红豆2 小时前
【CAN总线】STM32的CAN外设
c语言·stm32·嵌入式硬件
单片机学习之路2 小时前
【C语言】结构
c语言·开发语言·stm32·单片机·51单片机
m0_748254094 小时前
STM32--超声波模块(HC—SR04)(标准库+HAL库)
stm32·单片机·嵌入式硬件
南城花随雪。4 小时前
单片机:实现FFT快速傅里叶变换算法(附带源码)
单片机·嵌入式硬件·算法
逝灮4 小时前
【蓝桥杯——物联网设计与开发】基础模块8 - RTC
stm32·单片机·嵌入式硬件·mcu·物联网·蓝桥杯·rtc
LXL_245 小时前
模拟——郑益慧_笔记1_绪论
嵌入式硬件