赞
踩
一、开发环境及硬件
ArduiNo平台

网盘地址:https://pan.baidu.com/s/1w3MHxkCUBOlbqKRxRhlwbQ
提取码:o6gk
硬件

WeMos D1
板载无线网卡
支持AP(路由), STA(上网设备)模式
特性

L9110s步进电机
1.模块供电电压2.5V-12V
2.VCC接2.5V-12V电压
3.GND接GND
4.IA1\IB1\IA2\IB2外接单片机IO口

遥控小车

超声波传感器模块上面通常有两个超声波元器件,一个用于发射,一一个用于接收。电路板上有4个引脚: VCC (正极)、Trig (触发)
Echo (回应)、GND (接地)
二、硬件准备
(一)、拆车

仅留两个红点处两根黑粗线
(二)、连线
1.超声波传感器模块
VCC ---- Wemos 5v
GND ---- Wemos GND
Trig–Wemos D8
Echo–D2
2. L9110s步进电机
VCC— Wemos 5v
GND—Wemos GND
B-1A—D7
B-2A —D6
A-1A—D4
A-1B—D3
三、Wemos 代码
//定义接口 #define Dong1 D6 #define Dong2 D7 #define Zhuan1 D3 #define Zhuan2 D4 #define Echo D2 #define Trig D8 #include <ESP8266WiFi.h> char* ssid = "WiFi热点名称"; //“wifi热点名称” char* passwd = "WiFi密码"; //”wifi热点密码” int port = 8888; //端口号 WiFiServer server(port); // 设置服务器端口号 void initWifiSta() { WiFi.mode(WIFI_STA); // 设置STA模式 WiFi.begin(ssid, passwd); //连接网络 while (WiFi.status() != WL_CONNECTED) { Serial.print("."); delay(500); } Serial.println(WiFi.localIP()); //通过串口打印wemos的IP地址 } //初始化函数 void initXiaoche19220() { //定义为输出引脚 pinMode(Dong1, OUTPUT); pinMode(Dong2, OUTPUT); pinMode(Zhuan1, OUTPUT); pinMode(Zhuan2, OUTPUT); } //前进 void QianJin() { digitalWrite(Dong1, HIGH); digitalWrite(Dong2, LOW); } //后退 void Houtui() { digitalWrite(Dong1, LOW); digitalWrite(Dong2, HIGH); } //右转 void Youzhuan() { digitalWrite(Zhuan1, HIGH); digitalWrite(Zhuan2, LOW); } //左转 void Zuozhuan() { digitalWrite(Zhuan1, LOW); digitalWrite(Zhuan2, HIGH); } //方向摆正 void Zheng() { digitalWrite(Zhuan1, LOW); digitalWrite(Zhuan2, LOW); } //停止 void Stop() { digitalWrite(Dong1, LOW); digitalWrite(Dong2, LOW); } //获取方波在传输过程中的时间 long getTime() { digitalWrite(Trig, HIGH); delayMicroseconds(10); digitalWrite(Trig, LOW); return pulseIn(Echo, HIGH); } void initChaoShengBo() { pinMode(Trig, OUTPUT); pinMode(Echo, INPUT); } void setup() { // put your setup code here, to run once: initXiaoche19220(); Serial.begin(115200);//开启串口 //启动连接WIFI initWifiSta(); server.begin();//启动服务器 initChaoShengBo();//初始化超声波 } void loop() { // put your main code here, to run repeatedly: char cmd;//定义存放数据的变量 int mark = 0;//用作遇到障碍物时只做后退动作的标记变量 //定义获取距离变量 long dis; WiFiClient client = server.available();//服务初始化 while (client.connected()) { //查看是否有客户端接入 while (client.available() > 0) //接入后查看是否有数据传入 { cmd = client.read(); dis = getTime() / 58; if (dis < 10) { Houtui(); delay(200); Stop(); mark = 1; } else { mark = 0; } if (mark == 0) { switch (cmd) { case 'q': QianJin(); break; case 'h': Houtui(); break; case 'z': Zuozhuan(); break; case 'y': Youzhuan(); break; case 's': Stop(); break; case 'd': Zheng(); break; } } } } }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。