基于物联网的智能窗户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. 基于单片机的智能窗户(蓝牙)

    设计简介: 本设计基于单片机的智能窗户设计,主要有以下功能: 1.通过检测风速大于设置的风俗会自动关窗: 2.通过检测雨量大于设置的雨量会自动关窗: 3.通过检测温度小于最小温度会自动关窗: 4.可以 ...

  2. (一)基于物联网的智能安防监控机器人2207231212569

    基于物联网的智能安防监控机器人2207231212569 项目摘要: 机器人是人类一直期待的东西,但自动化的东西有点不同.理想情况下,机器人能够做的事情比自动化机器人想做的要多得多.自动化机器人希望实 ...

  3. 基于物联网的智能家居系统设计(课设)

    基于物联网的智能家居系统设计(课设) 摘 要 一.概述 二.系统分析 三.系统设计 四.系统实现 1.硬件实现 2.软件实现 五.结论与心得 六.参考文献 摘 要   科技的快速发展给人们的生活带来了 ...

  4. java ee 物联网 论文_基于物联网的智能社区互助系统的设计研究论文

    基于物联网的智能社区互助系统的设计研究论文 1 绪论 目前行业内的智能社区解决方案分为两大阵营,无线阵营和总线阵营,无线阵营主张以互联网为平台,底层传感网使用短距离无线的传输网,并通过耦合两个异构网络 ...

  5. 基于物联网的智能厨房安全监测系统-下位机程序

    CSDN话题挑战赛第2期 参赛话题:学习笔记 最近遇到一个基于TCP/IP网络的远程智能物联网系统,采用Arduino Uno控制器作为下位机,采用LabVIEW作为远程监控软件,两者通过网络实现通信 ...

  6. 基于物联网的智能家居控制系统【100010619】

    智能家居控制系统 一.摘要 智能家居作为家庭信息化的实现方式,已经成为社会信息化发展的重要组成部分,物联网其巨大的应用前景,是智能家居产业发展过程中一个比较现实的突破口,对智能家居的产业发展具有重大意 ...

  7. 基于单片机的智能窗户窗帘衣架设计(毕业设计资料)

    156[毕设课设]基于单片机的智能窗户窗帘衣架设计(毕业设计资料) [资源下载]下载地址如下: https://docs.qq.com/doc/DTlRSd01BZXNpRUxl 51智能窗户-ULN ...

  8. 【基于物联网的智能草莓种植系统的设计与实现系列教程】0-项目简介 (课程设计、毕设项目、树莓派、yolov5)

    [基于物联网的智能草莓种植系统]详细实现教程 项目各章节跳转 教程简介 项目简介 系统操作界面展示 系统主要功能概述 系统硬件结构概述 特别致谢 猜你需要 项目各章节跳转 可点击跳转到对应章节 ==& ...

  9. 【基于物联网的智能草莓种植系统的设计与实现系列教程】1-项目相关硬件购买清单与资料下载 (课程设计、毕设项目、树莓派、yolov5)

    [基于物联网的智能草莓种植系统]项目相关硬件购买清单与资料下载 项目各章节跳转 硬件清单 软件下载 代码下载 猜你需要 项目各章节跳转 可点击跳转到对应章节 ==> 努力更新中... 0.基于物 ...

最新文章

  1. return 和 方法的递归调用
  2. oss可用性_对象存储OSS详解
  3. 数据中心管理:从DCIM过渡到DMAAS
  4. ThinkPHP采用模块和操作
  5. SRAM Controller
  6. S/4HANA key user tool创建的Extension field,点了publish后的执行原理
  7. Linux命令之hexdump - ”十六“进制查看器
  8. Android学习笔记(十三)
  9. [转载] Python列表排序 list.sort方法和内置函数sorted
  10. 乐山计算机学校新歌王,星歌王第二季乐山市计算机学校专场赛决赛完美落幕!...
  11. VMware虚拟机下载、安装与使用
  12. 可编辑ppt地图分布图怎么做?
  13. WSO2 IS 添加新的证书域名
  14. 清明节不加班??不存在的
  15. 《python语言程序设计》笔记
  16. 技术方案|高精密划片机
  17. LaTeX模板——英文写作
  18. Clipboard -- 剪贴板操作
  19. NMOS的栅极充电过程
  20. 安卓设置keychain_简单实现KeyChain实例

热门文章

  1. 【青龙面板辅助】JD账号权重查询(黑号查询)检测接口
  2. 2022 年 360反馈的好处(所有企业规模)
  3. python Name Entity Recognition(NER) extract company name 命名实体识别 提取公司名
  4. 静息态fMRI中的非线性功能网络连接
  5. 解析两种常见QQ攻击形式以及有效防范措施(转)
  6. 课工场-JAVA高级特性编程及实战第1章练习题3答案参考
  7. Java知识体系总结(2020版)
  8. linux下c语言聊天室程序,纯C语言Socket实现聊天室
  9. 德迅游戏盾的妙用,分钟级集成,无视任何攻击
  10. html 联想下拉菜单,excel下拉菜单联想 在Excel中制作具有联想能力的下拉列表的方法...