使用28BYJ-48步进电机esp8266-12f (或节点MCU ) mqtt基于arduino IDE开发实现
用mqtt向wifi模块发送指令,控制电机,电机拖动窗帘开关
效果演示地址:
链接
做模型怎么做电动窗帘,牛人会给你解释其原理
参考这个视频制作窗帘模型
构建模型很重要。 即使电机能够稳定控制,搭建模型不好的窗帘的打开和关闭也会受到影响
我在第一次实验中讨论能否顺利进行时,做了一个窗帘模型:选择细而粗糙的(摩擦力大的)窗帘,选择软的纸或滑轮,必须认真做(对旋转有影响)。 犯了很多错误也很丑陋
但是实验成功了!
第二次我们的窗帘模型是我和另一个java大人物熬夜做的,两个工科生动手做真是折磨人…
步进电机原理28BYJ-48步进电机
28BYJ-48是指外径28mm四相八拍式永磁减速型步进电机
驱动28BYJ-48步进电机的最常见方法是使用ULN2003驱动器板。
虽然可以快速测试如何使用Arduino开发板5V电源直接为ULN2003驱动器板供电,但不要长时间使用Arduino为ULN2003驱动器板供电。
更详细的原理分析链接
控制步进电机电路接线图
使用Stepper库
创建步进电机对象
定义电机控制端子及电机基本信息。
电机控制端子为8、9、10、11
上面的端子依次连接到ULN2003驱动程序板In1、In2、In3、In4
创建电动机对象
示例代码
参考dianji.ino学习stepper库的使用方法
创建对象steppersteppermotor (steps _ per _ rotor _ rev,8,10,9,11 );
的第一个参数是一次旋转的步数
这里可以设定为2048
示例代码
/* Arduino控制28BYJ-48步进电机测试程序本示例程序旨在演示如何通过Arduino控制28BYJ-48步进电机。 //在本示例程序中,使用Stepper库#include //电机控制用常数//电机内部输出轴1圈步进数const int STEPS_PER_ROTOR_REV=32; //减速比const int GEAR_REDUCTION=64; /*转子转一圈需要走32步。 转子每转一圈,电机输出轴只转1/64圈。 *电机内部有多个减速齿轮,这些齿轮的作用是转子每转1圈,*输出轴旋转1/64圈。 *因此,电机输出轴旋转1圈时,转子必须前进32X64=2048步。 也就是说,它由以下常数定义: //电机外部输出轴1转步进数(2048 ) constfloatsteps _ per _ out _ rev=steps _ per _ rotor _ rev * gear _ redu ction; //电机控制用变量//定义电机旋转步数int StepsRequired; //创建步进电机对象//定义电机控制端子和电机基本信息。 //电机控制端子为8、9、10、11//以上的端子为ULN2003驱动板In1、In2、In3、in4 steppersteppermotor (steps _ per _ rotor _ rev,8. 9 )依次连接的void setup () {//setup函数内无内容) } void loop () ) ) /极低速旋转4步,用于观察ULN2003电机驱动板的LED变化的stepper mottop StepsRequired=4; stepper motor.step (步骤要求; 延迟(1000; //缓慢地顺时针旋转steps required=steps _ per _ out _ rev; seppermotor.setspeed(500; stepper motor.step (步骤要求; 延迟(1000; //steps required=-steps _ per _ out _ rev; seppermotor.setspeed(800; stepper motor.step (步骤要求; 延迟(2000; }参见太极创客链接
wifi模块控制马达仍在使用的stepper库更改了GPIO引脚
创建对象
steppersteppermotor (steps _ per _ out _ rev,D1、D2、D5、D6 );
steppersteppermotor (steps _ per _ out _ rev,5,4,14,12 );
(两个相同) ) )。
看到了使用国外的nodemcu mqtt和28BYJ-48步进电机的使用方法
更换了销,变更了部分参数
接线图
(支持的GPIO分别为GPIO 5、GPIO 4、GPIO14、GPIO12 )
创建的对象是steppersteppermotor (steps _ per _ out _ rev,D1、D2、D5、D6 );
将第一个参数设置为200速度的80小于arduino
第一个参数提高到600时,电机转不动…找不到原因
在项目参考代码以下,学习更多教程ESP开发学习的基础知识。 包括了解ESP模块、了解mqtt协议、充分利用arduino IDE的代码编写等。
arduino基础学习esp系列模块介绍和使用mqtt协议介绍和使用mqtt esp模块arduino IDE开发方法基于esp模块的AT指令画笔固件esp模块使用休眠模式esp8266-01s的介绍和使用使用NodeMcu介绍和使用esp开发IOT APP应用程序基于esp8266的模块和其他
基于FRID arduino继电器电磁锁开发的FRID门禁系统esp32-cam视频流图像获取处理基于步进电机esp8266 mqtt开发的自动窗帘控制基于DHT11 Esp8266 mqtt获取室内温湿度CCC 基于tt获取室内空气质量红外模块esp8266 mqtt开发的基于智能遥控ws2812 esp8266 mqtt开发的基于智能多级照明灯ws2812 esp8266 mqtt开发的智能多模氛围灯MP3 plaplar 基于tt开发的智能语音播报系统IOT综合应用智能教室项目开发以上内容对你有帮助或者对IOT开发感兴趣的话,欢迎来到http://ww.SOT
本人接下来暂时承担关注等相关项目(毕设比赛等)
需要可以联系的QQ:1639206518