ESP8266控制步进电机

张开发
2026/4/7 16:18:02 15 分钟阅读

分享文章

ESP8266控制步进电机
硬件esp8266uln200328BYJ-48 电机杜绑线首先写代码的软件Arduino IDE,直接要这个文章我就不手把手写了不要便携版我实在是搞这个便携版太烧脑了弄不明白https://blog.csdn.net/weixin_32047493/article/details/156187218?fromshareblogdetailsharetypeblogdetailsharerId156187218sharereferPCsharesourceweixin_70422048sharefromfrom_link这是接线的D1 → IN1D2 → IN2D3 → IN3D4 → IN4ESP GND ↔ ULN2003 GNDULN2003 VCC → 5V电机直接插驱动板打开 Arduino → 左上角文件→首选项在「附加开发板管理器地址」里粘贴这一行http://arduino.esp8266.com/stable/package_esp8266com_index.json确定 → 然后工具→开发板→开发板管理器搜索esp8266→ 安装esp8266 by ESP8266 Community3、开发板选择工具→开发板→ESP8266 Boards→ 选NodeMCU 1.0 (ESP-12E Module)用数据线把 ESP8266 插电脑工具→端口选对应的 COM 口这个com可以识别不到需要装驱动查资料了我好久没有弄了名字都忘记了点右上角 → 箭头上传#include ESP8266WiFi.h // ESP自己开热点手机连这个WiFi const char* ap_ssid ESP8266电机控制; //手机搜到的WiFi名 const char* ap_pwd 12345678; //手机连热点的密码 // #define IN1 D1 #define IN2 D2 #define IN3 D3 #define IN4 D4 WiFiServer server(80); // 八拍步进驱动 const uint8_t stepMotor[8][4] { {1,0,0,0},{1,1,0,0},{0,1,0,0},{0,1,1,0}, {0,0,1,0},{0,0,1,1},{0,0,0,1},{1,0,0,1} }; void setup() { pinMode(IN1, OUTPUT); pinMode(IN2, OUTPUT); pinMode(IN3, OUTPUT); pinMode(IN4, OUTPUT); motorStop(); Serial.begin(115200); // 开启热点模式 WiFi.softAP(ap_ssid, ap_pwd); IPAddress ip WiFi.softAPIP(); server.begin(); Serial.println(✅ ESP热点已开启); Serial.print( 手机连WiFi);Serial.println(ap_ssid); Serial.print( 密码);Serial.println(ap_pwd); Serial.print( 浏览器输入IP);Serial.println(ip); } void motorStop(){ digitalWrite(IN1,LOW);digitalWrite(IN2,LOW); digitalWrite(IN3,LOW);digitalWrite(IN4,LOW); } void stepForward(int steps){ for(int i0;isteps;i) for(int j0;j8;j){ digitalWrite(IN1,stepMotor[j][0]); digitalWrite(IN2,stepMotor[j][1]); digitalWrite(IN3,stepMotor[j][2]); digitalWrite(IN4,stepMotor[j][3]); delay(2); } motorStop(); } void stepBackward(int steps){ for(int i0;isteps;i) for(int j7;j0;j--){ digitalWrite(IN1,stepMotor[j][0]); digitalWrite(IN2,stepMotor[j][1]); digitalWrite(IN3,stepMotor[j][2]); digitalWrite(IN4,stepMotor[j][3]); delay(2); } motorStop(); } void loop(){ WiFiClient client server.available(); if(!client) return; String req client.readStringUntil(\r); if(req.indexOf(/FORWARD)!-1) stepForward(100); if(req.indexOf(/BACKWARD)!-1) stepBackward(100); if(req.indexOf(/STOP)!-1) motorStop(); client.println(HTTP/1.1 200 OK); client.println(Content-Type:text/html); client.println(Connection:close); client.println(); client.println(htmlheadmeta charsetUTF-8/head); client.println(h1ESP8266 热点控制电机/h1); client.println(pa href/FORWARDbutton stylefont-size:30px;width:200px;height:80px正转/button/a/p); client.println(pa href/BACKWARDbutton stylefont-size:30px;width:200px;height:80px反转/button/a/p); client.println(pa href/STOPbutton stylefont-size:30px;background:red;width:200px;height:80px停止/button/a/p); client.println(/html); client.stop(); }手机浏览器输入 IP192.168.4.1打开网页点正转反转停止电机就会跟着动接线图esp8266上面的复位点击的时候uln的那四根线会干扰打开WiFi需要拔掉手机连到WiFi之后再接上去就可以了

更多文章