这是很久之前的demo了,今天整理下做个记录,毕竟是学习的过程。
准备材料以及简述
WeMos D1
特性
-
基于ESP-8266EX
-
Arduino兼容,使用rduino IDE来编程
-
11 x I/O 引脚
-
1 x ADC 引脚(输入范围0-3.3V)
-
板载5V 1A开关电源(高输入电压24V)
工作中:
和stm32模块开发类似,集成度高
STM32方案也更经济便宜
超声波模块
超声波传感器模块上面通常有两个超声波元器件,一个用于发射,一个用于接收。电路板上有4个引脚: VCC(正极)、Trig(触发)Echo(回应)、GND(接地),主要参数:
1.工作电压与电流:5V、15mA。
2.感测距离:2~400cm。
3.感测角度:不大于15°。
4.被测物的面积不要小于50cm2并且尽量平整,具备温度补偿电路。
5.在超声波模块的触发脚位输入10微妙以上的高电位,即可发射超声波,发射超声波之后,与接收到传回的超声波之前,“响应”脚位呈现高电位。因此,程序可从“响应”脚位的高电位脉冲持续时间,换算出被测物的距离。
S90舵机
型号:SG90重量13克角度90度-180度通用
红色是电压,粽色是地线,橙色是信号线
主要参数:
尺寸:21.5mm×11.8mm×22.7mm
重量:9克
无负载速度:0.12秒/60度(4.8V)
堵转扭矩:1.2-1.4公斤/厘米(4.8V)
使用温度:-30N~+60摄氏度
死区设定:7微秒
工作电压:4.8V-6V
另外,开发环境是Arduino,和keil对比,Arduino可以集成很多开发库如串口、网络、sg90等;包含各种硬件开发接口,迅捷开发;自带串口调试工具,缺点就是程序编译速度慢。
操作过程
首先我们看看硬件的连接线。
超声波传感器:
VCC——wemos 5V
GND——wemos GND
Trig——wemos D8
Echo——wemos D2
舵机SG90:
红色——3.3V(正极)
棕色——wemos GND(负极)
橙色——wemos D5(信号线)
然后写入代码。
#include <Servo.h>
#define DuoPIN D5
#define Echo D2
#define Trig D8
Servo myDuoJi;//Servo类
long getTime(){
digitalWrite(Trig, HIGH);
delayMicroseconds(10);
digitalWrite(Trig, LOW);
return pulseIn(Echo, HIGH);//返回方波在空气中运行的时间
}
void initChaoShengBo(){
pinMode(Echo, INPUT);
pinMode(Trig, OUTPUT);
}
void setup() {
initChaoShengBo();//初始化超声波模块两个引脚
myDuoJi.attach(DuoPIN);
Serial.begin(115200);//串口测试用了
}
void loop() {//loop不断地循环获取数据
//获取距离
long dis;
dis = getTime() / 58;//根据超声波的粗略测距原理,除以58
Serial.print(dis);
Serial.println("cm");
if(dis < 10){
myDuoJi.write(180);
delay(1000);
}else{
myDuoJi.write(60);
}
delay(400);
}
代码写好之后保存上传。
运行效果
接下来我们看看运行效果吧。