基于物联网的智能窗户day1
基于物联网的智能窗户Day1
- 简介
- 模型及相关元器件
- 重要代码记录
- PWM脉冲驱动步进电机
- 控制DIR实现正反转
- 按键控制步进电机开始与停止
- 相关问题
- Q1:PWM输出后步进电机不旋转
- Q2:不输出PWM脉冲,步进电机仍有杂音
- 意外
简介
预计使用25天完成本设计的基本功能,每日以博客形式记录进度及遇到的问题。
窗户的智能开关,有温湿度,红外,烟雾传感模块,实现自动开关窗户,后期与物联网平台对接,写一个app可以远程控制。
模型及相关元器件
1.铝合金窗户模型
\这个铝合金窗户一点都不好玩,呜呜呜~~~
2.42步进电机+TB6600驱动
3.24V 3A直流电源
重要代码记录
PWM脉冲驱动步进电机
设置PB5引脚为复用输出功能,输出TIM3 CH2的PWM脉冲波形 用来驱动步进电机
void TIM3_PWM_Init(u16 arr,u16 psc)
{ GPIO_InitTypeDef GPIO_InitStructure;TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure;TIM_OCInitTypeDef TIM_OCInitStructure;RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3, ENABLE); //使能定时器3时钟RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB | RCC_APB2Periph_AFIO, ENABLE); //使能GPIO外设和AFIO复用功能模块时钟GPIO_PinRemapConfig(GPIO_PartialRemap_TIM3, ENABLE); //Timer3部分重映射 TIM3_CH2->PB5 //设置该引脚为复用输出功能,输出TIM3 CH2的PWM脉冲波形 GPIOB.5GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5; //TIM_CH2GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP; //复用推挽输出GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;GPIO_Init(GPIOB, &GPIO_InitStructure);//初始化GPIO//初始化TIM3TIM_TimeBaseStructure.TIM_Period = arr; //设置在下一个更新事件装入活动的自动重装载寄存器周期的值TIM_TimeBaseStructure.TIM_Prescaler =psc; //设置用来作为TIMx时钟频率除数的预分频值 TIM_TimeBaseStructure.TIM_ClockDivision = 0; //设置时钟分割:TDTS = Tck_timTIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up; //TIM向上计数模式TIM_TimeBaseInit(TIM3, &TIM_TimeBaseStructure); //根据TIM_TimeBaseInitStruct中指定的参数初始化TIMx的时间基数单位
//初始化TIM3 Channel2 PWM模式 TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM2; //选择定时器模式:TIM脉冲宽度调制模式2TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable; //比较输出使能TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_High; //输出极性:TIM输出比较极性高TIM_OC2Init(TIM3, &TIM_OCInitStructure); //根据T指定的参数初始化外设TIM3 OC2TIM_OC2PreloadConfig(TIM3, TIM_OCPreload_Enable); //使能TIM3在CCR2上的预装载寄存器}
控制DIR实现正反转
采用共阳极解法,只需要控制DIR-高低电平即可实现正反转
主控的PC1输出高低电平控制正反转
#define DIR PCout(1)// PC1
按键控制步进电机开始与停止
理论上,只要没有PWM脉冲的输出,步进电机即停止转动。决定通过按键来完成这一功能。
即每按动按键一次,步进电机旋转一定距离停下。
在TIM3初始化时将其使能关闭,这样通电即为关闭状态,步进电机不动。
等待按键按下,使能TIM3和TIM4.TIM4用来计时,其中断里将TIM3使能关闭。
void TIM4_IRQHandler(void) //TIM4中断
{if (TIM_GetITStatus(TIM4, TIM_IT_Update) != RESET) //检查指定的TIM中断发生与否:TIM 中断源 {LED=!LED;TIM_Cmd(TIM3, DISABLE); //使能TIM3TIM_ClearITPendingBit(TIM4, TIM_IT_Update ); //清除TIMx的中断待处理位:TIM 中断源 TIM_ITConfig(TIM4,TIM_IT_Update,DISABLE);TIM_Cmd(TIM4, DISABLE); //使能TIMx外设}
}
相关问题
Q1:PWM输出后步进电机不旋转
PB5输出PWM波,通过示波器测试,输出无误,但步进电机不转。
原共阳极解法接5V,改为3.3V共阳即可旋转。与TB6600对高低电平的识别有关。
Q2:不输出PWM脉冲,步进电机仍有杂音
理论上只要不输出PWM脉冲,步进电机即停止。
在此基础上测试时,发现虽然其并未转动,但步进电机有“嗡嗡嗡”的杂音。通电在此状态下维持30分钟以上,发现步进电机发热严重。
(原以为是PWM脉冲输出时分频不合适导致,后进行调整,杂音有降低但并未完全消失,今日暂无解决此问题。)
意外
意外总是突如其来,一个不小心,把模型摔了一下…………
我的步进电机丝杆就歪了…………转起来像鬼畜
我用来固定的螺丝都被鬼畜掉完了…………
暂停代码测试,修理模型,呜呜呜~~~
基于物联网的智能窗户day1相关推荐
- 基于单片机的智能窗户(蓝牙)
设计简介: 本设计基于单片机的智能窗户设计,主要有以下功能: 1.通过检测风速大于设置的风俗会自动关窗: 2.通过检测雨量大于设置的雨量会自动关窗: 3.通过检测温度小于最小温度会自动关窗: 4.可以 ...
- (一)基于物联网的智能安防监控机器人2207231212569
基于物联网的智能安防监控机器人2207231212569 项目摘要: 机器人是人类一直期待的东西,但自动化的东西有点不同.理想情况下,机器人能够做的事情比自动化机器人想做的要多得多.自动化机器人希望实 ...
- 基于物联网的智能家居系统设计(课设)
基于物联网的智能家居系统设计(课设) 摘 要 一.概述 二.系统分析 三.系统设计 四.系统实现 1.硬件实现 2.软件实现 五.结论与心得 六.参考文献 摘 要 科技的快速发展给人们的生活带来了 ...
- java ee 物联网 论文_基于物联网的智能社区互助系统的设计研究论文
基于物联网的智能社区互助系统的设计研究论文 1 绪论 目前行业内的智能社区解决方案分为两大阵营,无线阵营和总线阵营,无线阵营主张以互联网为平台,底层传感网使用短距离无线的传输网,并通过耦合两个异构网络 ...
- 基于物联网的智能厨房安全监测系统-下位机程序
CSDN话题挑战赛第2期 参赛话题:学习笔记 最近遇到一个基于TCP/IP网络的远程智能物联网系统,采用Arduino Uno控制器作为下位机,采用LabVIEW作为远程监控软件,两者通过网络实现通信 ...
- 基于物联网的智能家居控制系统【100010619】
智能家居控制系统 一.摘要 智能家居作为家庭信息化的实现方式,已经成为社会信息化发展的重要组成部分,物联网其巨大的应用前景,是智能家居产业发展过程中一个比较现实的突破口,对智能家居的产业发展具有重大意 ...
- 基于单片机的智能窗户窗帘衣架设计(毕业设计资料)
156[毕设课设]基于单片机的智能窗户窗帘衣架设计(毕业设计资料) [资源下载]下载地址如下: https://docs.qq.com/doc/DTlRSd01BZXNpRUxl 51智能窗户-ULN ...
- 【基于物联网的智能草莓种植系统的设计与实现系列教程】0-项目简介 (课程设计、毕设项目、树莓派、yolov5)
[基于物联网的智能草莓种植系统]详细实现教程 项目各章节跳转 教程简介 项目简介 系统操作界面展示 系统主要功能概述 系统硬件结构概述 特别致谢 猜你需要 项目各章节跳转 可点击跳转到对应章节 ==& ...
- 【基于物联网的智能草莓种植系统的设计与实现系列教程】1-项目相关硬件购买清单与资料下载 (课程设计、毕设项目、树莓派、yolov5)
[基于物联网的智能草莓种植系统]项目相关硬件购买清单与资料下载 项目各章节跳转 硬件清单 软件下载 代码下载 猜你需要 项目各章节跳转 可点击跳转到对应章节 ==> 努力更新中... 0.基于物 ...
最新文章
- return 和 方法的递归调用
- oss可用性_对象存储OSS详解
- 数据中心管理:从DCIM过渡到DMAAS
- ThinkPHP采用模块和操作
- SRAM Controller
- S/4HANA key user tool创建的Extension field,点了publish后的执行原理
- Linux命令之hexdump - ”十六“进制查看器
- Android学习笔记(十三)
- [转载] Python列表排序 list.sort方法和内置函数sorted
- 乐山计算机学校新歌王,星歌王第二季乐山市计算机学校专场赛决赛完美落幕!...
- VMware虚拟机下载、安装与使用
- 可编辑ppt地图分布图怎么做?
- WSO2 IS 添加新的证书域名
- 清明节不加班??不存在的
- 《python语言程序设计》笔记
- 技术方案|高精密划片机
- LaTeX模板——英文写作
- Clipboard -- 剪贴板操作
- NMOS的栅极充电过程
- 安卓设置keychain_简单实现KeyChain实例
热门文章
- 【青龙面板辅助】JD账号权重查询(黑号查询)检测接口
- 2022 年 360反馈的好处(所有企业规模)
- python Name Entity Recognition(NER) extract company name 命名实体识别 提取公司名
- 静息态fMRI中的非线性功能网络连接
- 解析两种常见QQ攻击形式以及有效防范措施(转)
- 课工场-JAVA高级特性编程及实战第1章练习题3答案参考
- Java知识体系总结(2020版)
- linux下c语言聊天室程序,纯C语言Socket实现聊天室
- 德迅游戏盾的妙用,分钟级集成,无视任何攻击
- html 联想下拉菜单,excel下拉菜单联想 在Excel中制作具有联想能力的下拉列表的方法...