当前位置: 首页 > news >正文

江门做网站设计百度惠生活

江门做网站设计,百度惠生活,小白怎么学做网站,为什么网站需要维护目录 一、前言 二、项目简介 1.功能详解 2.主要器件 三、原理图设计 四、PCB硬件设计 PCB图 五、程序设计 六、实验效果 七、资料内容 项目分享 一、前言 项目成品图片: 哔哩哔哩视频链接: STM32智能洗碗机(资料分享见文末&am…

目录

一、前言

二、项目简介

1.功能详解

2.主要器件

三、原理图设计

四、PCB硬件设计

PCB图 

五、程序设计 

六、实验效果 

七、资料内容

项目分享


一、前言

项目成品图片:

哔哩哔哩视频链接:

STM32智能洗碗机

(资料分享见文末) 

二、项目简介

1.功能详解

基于STM32的智能洗碗机

功能如下:

  1. STM32F103C8T6单片机作为主控单元
  2. 检测功能:系统检测水位数据、检测温度数据。
  3. 显示功能:将检测到的数据显示在oled屏幕上。
  4. 控制功能:通过按键控制洗碗机的开始/暂停/取消。
  5. 洗碗流程:继电器1(模拟加水)→检测水位是否超出阈值→加热片加热到预定温度→直流电机启动(模拟洗碗)→继电器2闭合(模拟排水)→检测水是否排空→风扇烘干→消毒灯消毒。
  6. 阈值调节:系统传感器阈值大小可以通过按键设置调节。
  7. 机智云APP:通过WIFI模块连接网络,可以通过APP查看数据与控制下发

2.主要器件

  • STM32F103C8T6单片机
  • OLED 屏幕
  • DS18B20温度传感器
  • 水位传感器
  • TB6612电机驱动模块
  • ESP8266模块(WIFI)
  • 风扇模块
  • 直流电机
  • 水泵模块
  • 紫外线消毒灯
  • PTC加热片

三、原理图设计

四、PCB硬件设计

PCB图 

五、程序设计 

#include "stm32f10x.h"                  // Device header
#include "oled.h"
#include "menu.h"
#include "delay.h"
#include "tb6612.h"
#include "adcx.h"
#include "pwm.h"
#include "watersensor.h"
#include "ds18b20.h"
#include "relay.h"
#include "key.h"
#include "tim2.h"
#include "tim3.h"
#include "usart.h"
#include "flash.h"
#include "led.h"
#include "heater.h"
#include "buzzer.h"
#include "myrtc.h"
#include "iwdg.h"
#include "gizwits_product.h" #define FLASH_START_ADDR	0x0801f000	u8 Menu = 1;	
u8 select = 1;	u16 Water_level_value;	
u8 Temp_value;	
u8 Dishwashing_time;	
u16 Dishwashing_dynamics;	
u8 Drying_time, Disinfection_time;	u8 Dishwashing_Flag;		
u8 Dishwashing_time_Flag;	
u8 Drying_time_Flag;	
u8 Disinfection_time_Flag;	u8 hour,minute,second;	
u8 i;void Dishwashing_process(void)
{switch(Dishwashing_Flag){case 1:Relay_ON(1);Heater_ON();		if(Water_level_value < system_data_buff[1]){Dishwashing_Flag = 2;Relay_OFF(1);}break;case 2:Heater_ON();if(Temp_value < system_data_buff[2]){Heater_OFF();Dishwashing_Flag = 3;}break;case 3:Motor_Direction(1,Dishwashing_dynamics);if(Dishwashing_time_Flag > Dishwashing_time){Motor_STOP();Dishwashing_time_Flag = 0;Dishwashing_Flag = 4;}	break;case 4:Relay_ON(0);	if(system_data_buff[1] < 15)	{Relay_OFF(0);Dishwashing_Flag = 5;}break;case 5:Fan_ON();if(Drying_time_Flag > Drying_time){Fan_OFF();Drying_time_Flag = 0;Dishwashing_Flag = 6;}break;case 6:LED_ON();if(Disinfection_time_Flag > Disinfection_time){LED_OFF();Disinfection_time_Flag = 0;Dishwashing_Flag = 0;Buzzer_ON();Delay_ms(500);Buzzer_OFF();}break;case 7:	Relay_OFF(1);Heater_OFF();Motor_STOP();Relay_OFF(0);Fan_OFF();LED_OFF();break;case 8:	Relay_OFF(1);Heater_OFF();Motor_STOP();Relay_OFF(0);Fan_OFF();LED_OFF();Dishwashing_Flag = 0;break;default:break;}}void value_adjust(void)
{if(KeyNum == 3){switch(select){case 1:	KeyNum = 0;Menu = 4;break;case 2:		KeyNum = 0;Water_level_value += 100;if(Water_level_value >= 4000){Water_level_value = 100;}break;case 3:	KeyNum = 0;Temp_value++;if(Temp_value >= 100){Temp_value = 1;}break;case 4:	KeyNum = 0;Dishwashing_time++;if(Dishwashing_time >= 100){Dishwashing_time = 1;}		break;case 5:	KeyNum = 0;Dishwashing_time++;if(Dishwashing_time >= 100){Dishwashing_time = 1;}break;case 6:	KeyNum = 0;Dishwashing_dynamics++;if(Dishwashing_dynamics >= 1000){Dishwashing_dynamics = 500;}break;case 7:	KeyNum = 0;Drying_time++;if(Drying_time >= 100){Drying_time = 1;}break;case 8:	KeyNum = 0;Disinfection_time++;if(Disinfection_time >= 100){Disinfection_time = 1;}break;default:break;}}if(KeyNum == 4){switch(select){case 1:KeyNum = 0;Menu = 4;break;case 2:	KeyNum = 0;Water_level_value -= 100;if(Water_level_value >= 4000){Water_level_value = 4000;}break;case 3:	KeyNum = 0;Temp_value--;if(Temp_value >= 100){Temp_value = 99;}break;case 4:	KeyNum = 0;Dishwashing_time--;if(Dishwashing_time >= 100){Dishwashing_time = 99;}		break;case 5:	KeyNum = 0;Dishwashing_time--;if(Dishwashing_time >= 100){Dishwashing_time = 99;}break;case 6:	KeyNum = 0;Dishwashing_dynamics--;if(Dishwashing_dynamics <= 500){Dishwashing_dynamics = 999;}break;case 7:	KeyNum = 0;Drying_time--;if(Drying_time >= 100){Drying_time = 99;}break;case 8:	KeyNum = 0;Disinfection_time--;if(Disinfection_time >= 100){Disinfection_time = 99;}break;default:break;}}
}void Time_adjust(void)
{if((KeyNum == 3) && (Menu == 5)){KeyNum = 0;switch(select){case 1:hour++;if(hour > 24){hour = 0;}break;case 2:minute++;if(minute > 60){minute = 0;}						break;case 3:second++;if(second > 60){second = 0;}							break;}}if((KeyNum == 4) && (Menu == 5)){KeyNum = 0;switch(select){case 1:hour--;if(hour > 24){hour = 24;}break;case 2:minute--;if(minute > 60){minute = 60;}						break;case 3:second--;if(second > 60){second = 60;}							break;}}
}int main(void)
{OLED_Init();PWM_Init(1000 - 1,72 -1);ADCX_Init();Timer2_Init(9,14398);uart2_init(9600);uart1_init(115200);MyRTC_Init();LED_Init();	DS18B20_Init();Motor_Init();Fan_Init();Relay_Init();Key_Init();Heater_Init();	Buzzer_Init();IWDG_Init();GENERAL_TIM_Init();userInit();		gizwitsInit();	Water_level_value = FLASH_R(FLASH_START_ADDR);	Temp_value = FLASH_R(FLASH_START_ADDR+2);	Dishwashing_time = FLASH_R(FLASH_START_ADDR+4);	Dishwashing_dynamics = FLASH_R(FLASH_START_ADDR+6);	Drying_time = FLASH_R(FLASH_START_ADDR+8);	Disinfection_time = FLASH_R(FLASH_START_ADDR+10);	Delay_ms(1000);gizwitsSetMode(WIFI_AIRLINK_MODE);Delay_ms(1000);while (1){MyRTC_ReadTime();	IWDG_Init();	switch(Menu){case 1:Menu1();	System_data_state();	if(KeyNum == 2){KeyNum = 0;Dishwashing_Flag = 1;	}Dishwashing_process();	break;case 2:OLED_Clear();	Menu = 3;	break;case 3:if(KeyNum == 1){KeyNum = 0;select++;if(select == 5){OLED_Clear();}if(select > 8){select = 1;OLED_Clear();}}		if(select >= 5){OLED_Option(select-4);Menu3();	Data_Menu2();}else{OLED_Option(select);Menu2();Data_Menu1();}value_adjust();	if(KeyNum == 2){KeyNum = 0;FLASH_W(FLASH_START_ADDR,Water_level_value,Temp_value,Dishwashing_time,Dishwashing_dynamics,Drying_time,Disinfection_time);Menu = 1;	select = 1;	OLED_Clear();	}break;case 4:	OLED_Clear();Menu = 5;hour = MyRTC_Time[3];minute = MyRTC_Time[4];second = MyRTC_Time[5];break;				case 5:	Menu_Time();	if((KeyNum == 1) && (Menu == 5)){KeyNum = 0;select++;if(select > 3){select = 1;}}OLED_Time_Option(select);	Time_adjust();	if((KeyNum == 2) && (Menu == 5)){KeyNum = 0;MyRTC_Time[3] = hour;MyRTC_Time[4] = minute;MyRTC_Time[5] = second;					MyRTC_SetTime();select = 1;Menu = 2;}default:break;}userHandle();	gizwitsHandle((dataPoint_t *)&currentDataPoint);}
}

六、实验效果 

七、资料内容

项目分享

http://www.dtcms.com/a/475692.html

相关文章:

  • 学做游戏 网站深圳建设工程交易服务网站
  • 大型网站开发公司网站工商网监标
  • asp网站图片如何做微信朋友圈网站
  • 威海做网站多少钱南京江宁区住房建设局网站
  • 网站建设或网站优化排名dede 后门暴网站
  • 原创音乐网站源码新闻摘抄四年级下册
  • 网站架构设计图东莞做网站的公司
  • 栈和队列的学习
  • 怎么样做网站页面wordpress短代码参数值带
  • 网站建设 会计分录wordpress 性能怎么样
  • Go语言技术与应用(四):网络编程之TCP端口扫描器实现
  • 济南正规网站制作怎么选择兰州做网站哪家专业
  • 企业的网站做一个要多少网站建设经验王者荣耀恺和
  • 个人网站备案核验单郴州
  • 共晶焊料选择指南
  • 一个优秀的个人网站海南人才网
  • 福田皇岗社区做网站wordpress 图库主题
  • 网站建设视频教程集南宁网站推广营销
  • 网站建设方案实施西安网站群公司
  • 网络直播网站开发国外服务器购买平台
  • 建设网站的流程可分为哪几个阶段推广方式都有哪些
  • DVWA通关全解
  • 广州网站建设是什么成都旅游网站建设规划方案
  • 企业网站推广的线上渠道有哪些网站建设吕凡科技
  • DOM 解析
  • 网站价值 批量查询免费网页设计教程视频教程
  • 想做一个个人网站怎么做长沙网站推广公司哪家好
  • 建网站要多少钱建一个网络平台需要多少钱舆情优化
  • 一元购网站的建设营销型网站大全
  • 互动类网站滁州市建设工程管理处网站