本帖最后由 lxf 于 2020-8-17 13:30 编辑
目标
利用超声波传感器控制舵机转动
实验材料
Arduino UNO开发板 HC-SR04超声波传感器模块 MG90S金属齿轮舵机 配套USB数据线 配套杜邦线若干 Arduino IDE软件
内容
当物体接近超声波,小于20时,舵机转动到30度,否则保持在90度位置。
接线图
接线方式
Arduino UNO <------> HC-SR04超声波传感器模块 5V <------> VCC GND <------> GND 7 <------> Trig 3 <------> Echo Arduino UNO <------> MG90S金属齿轮舵机 5 <------> 信号线 5V <------> 正极 GND <------> 负极
流程图
程序实现代码
- #include <Servo.h>
- Servo servo_5;
- float checkdistance_7_3() { //定义一个浮点型函数checkdistance_7_3()
- digitalWrite(7, LOW); //低高低电平发一个短时间脉冲去Trigpin
- delayMicroseconds(2);
- digitalWrite(7, HIGH);
- delayMicroseconds(10);
- digitalWrite(7, LOW);
- float distance = pulseIn(3, HIGH) / 58.00; //将回波时间换算成distance
- delay(10);
- return distance; //向调用函数返回distance
- }
- void setup(){
- pinMode(7, OUTPUT); //定义7号引脚为输出管脚
- pinMode(3, INPUT); //定义3号引脚为输入管脚
- servo_5.attach(5); //定义5号为舵机管脚
- }
- void loop(){
- if (checkdistance_7_3() < 20) { //当物体接近超声波的距离小于20时,舵机转动到30度位置
- servo_5.write(30);
- } else { //否则舵机保持在90度位置
- servo_5.write(90);
- }
- }
复制代码 |