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

STM32项目分享:简易自动门设计

“我们不做一锤子买卖,只做技术成长的长期伙伴!”

目录

一、视频展示

二、项目简介

三、原理图设计

四、PCB硬件设计

五、程序设计

六、资料分享


一、视频展示

简易自动门设计 -视频分享

二、项目简介

题目:简易自动门设计
主控:STM32
显示:LCD1602
超声波检测
四按键
功能:

1、自动门可上锁,输入密码后进入工作状态;
2、当检测到有人准备通过门时,步进电机顺时针转动,10s后逆时针转动’相同的角度。
3、关门过程中,若检测到有人,立刻制动并重新进入开门状态;
4、LCD显示自动门状态,共有四个状态locked,opening.closing,closed

三、原理图设计

四、PCB硬件设计

五、程序设计

#include "stm32f10x.h"                  // Device header
#include "delay.h"
#include "lcd.h"
#include "timer.h"
#include "IOput.h"
#include "LCD1602.h"
#include "STEPMOTOR.h"
#include "wave.h"u8 distance,distance_DEC=10,count,ren_flag,door_flag=0,number=5,number1=0,code;int main (void)
{delay_init();NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);OLED_Init();delay_ms(1);OLED_Clear();TIM2_Int_Init(71,9999);LCD_INIT();		//LCD1602初始化input_init();output_init();stepmotor_init();CH_SR04_Init();while(1){if(time_count>=100){time_count=0;count++;}distance=Senor_Using();if(distance<=distance_DEC)ren_flag=1;elseren_flag=0;key_scan(1,1,1,1);LCD_WRITE_StrDATA( "DOOR:",0,0 );LCD_WRITE_StrDATA( "DIST:",1,0 );LCD_WRITE_CharDATA(distance/10 + '0',1,5);	LCD_WRITE_CharDATA(distance%10 + '0',1,6);
//		LCD_WRITE_CharDATA(count/10 + '0',1,14);	
//		LCD_WRITE_CharDATA(count%10 + '0',1,15);if(door_flag==0){count=0;LCD_WRITE_StrDATA( "locked ",0,5 );}else if(door_flag==1){if(count<=5){MotorCCW(1200,32);}else if(count>5 && count<=15){if(ren_flag==1){TIM_Cmd(TIM2, DISABLE);count=6;}else{TIM_Cmd(TIM2, ENABLE);}LCD_WRITE_StrDATA( "opening",0,5 );MotorStop();}else if(count>15){door_flag=2;count=0;}}else if(door_flag==2){LCD_WRITE_StrDATA( "closing",0,5 );if(count<=5 && ren_flag==0){MotorCW(1200,32);}else if(ren_flag==1){door_flag=1;MotorStop();count=0;}else if(count>5){door_flag=3;MotorStop();count=0;}}else if(door_flag==3){LCD_WRITE_StrDATA( "closed ",0,5 );if(count>=5){door_flag=0;count=0;}}if(add_flag==1){number1++;add_flag=0;number=number+2;}if(dec_flag==1){number1++;dec_flag=0;number=code-5;}if(thr_flag==1){number1++;thr_flag=0;code=number*5;}if(set_flag==1){set_flag=0;if(number==30){door_flag=1;number=5;number1=0;}else{number=5;number1=0;door_flag=0;}}if(number1==0)LCD_WRITE_StrDATA( "   ",0,13 );else if(number1==1)LCD_WRITE_StrDATA( "*  ",0,13 );else if(number1==2)LCD_WRITE_StrDATA( "** ",0,13 );else if(number1>=3)LCD_WRITE_StrDATA( "***",0,13 );}
}

六、资料分享

点击即可查看当前资料分享。

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

相关文章:

  • 小白怎样建设公司网站奔奔网站建设
  • YouTube评论情感分析项目84%正确率:基于BERT的实战复现与原理解析
  • 【Shell】Shell变量
  • 华为OD机考:计算正方形数量(Python C/C++ JAVA JS GO)
  • 基于 STM32 的语音识别智能垃圾桶设计与实现
  • 【基础复习3】决策树
  • 网站设计公司驻马店市住房和城乡建设局网站首页
  • Microsoft AI Genius | 用智能 Microsoft Copilot 副驾驶® 构建高韧性 DevOps 流程
  • wordpress网站布置电子商务网站建设的心得
  • nicegui 无框模式最小化关闭例子
  • 【气动技术】气动控制元件及其选型计算
  • LCL滤波器传递函数及波特图绘制
  • 银河麒麟v10 sp1更改data目录挂载
  • 在安卓中基于OpenGL ES实现随风飘荡3D动画效果
  • Java坐标转换技术详解
  • AWS Systems Manager:批量服务器管理的隐藏利器
  • 如何分析对手网站关键词网页版游戏平台
  • 招聘网站建设初衷远程数据库 wordpress
  • 驱动隔离芯片:电子系统的安全与效能守护者
  • 【经验】Word/WPS|用邮件合并批量填写表格或教案,单个Word导出成多个文件
  • Git工作流
  • 简单企业网站青岛天元建设集团网站
  • C#/.NET 微服务架构:从入门到精通的完整学习路线
  • 从 MySQL 过渡到 PostgreSQL 学习计划(暂定)
  • JAVA算法练习题day53
  • 在 C# .NETCore 中使用 RabbitMQ 实现发布、订阅示例
  • 【MySQL-笔记】数据库MySQL的安装与卸载
  • 网站没有域名wordpress修改鼠标
  • LeetCode 刷题【133. 克隆图】
  • [人工智能-大模型-74]:模型层技术 - 模型训练六大步:③神经网络,预测输出:基本功能与对应的基本组成函数