① 超声波模块 hc-sr04 arino 怎么接线
HC-SR04模块上面有四个脚,分别为GND、ECHO、TRIG、VCC。
下面都以Arino UNO R3为例。
其中GND接Arino上的GND,VCC接5V,ECHO接D8,TRIG接D9。
然后烧录这一段程序:
/*****************************华丽丽分割线**************************************/
int inputPin = 8; // 定义超声波信号接收接口
int outputPin = 9; // 定义超声波信号发出接口
void setup()
{
Serial.begin(9600);//设置串口波特率为9600
pinMode(inputPin, INPUT);
pinMode(outputPin, OUTPUT);
}
void loop()
{
digitalWrite(outputPin, LOW); // 使发出发出超声波信号接口低电平2ms
delayMicroseconds(2);
digitalWrite(outputPin, HIGH); // 使发出发出超声波信号接口高电平10ms,这里是至少10μs
delayMicroseconds(10);
digitalWrite(outputPin, LOW); // 保持发出超声波信号接口低电平
int distance = pulseIn(inputPin, HIGH); // 读出脉冲时间
distance = distance / 58; // 将脉冲时间转化为距离(单位:厘米)
Serial.print(distance);
Serial.println("cm");//向串口监视器中输出距离信息
delay(500);//刷新时间500ms,也就是0.5s
}
/*******************************华丽丽分割线*********************************、
完成就可以打开串口监视器查看返值了。
② 我用arino做的超声波测距,现在想把测到的距离用lcd1602液晶显示屏显示出来,该怎么做,
先将1602的.cpp .h等文件添加到libraries(附件上传不了,需要q传给你309236033),
连接(I2C的):SDA连 A4 SCL 连 A5 ,调用:
#include <Wire.h> // LCD1602 显示屏库文件
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE); // 设置显示屏I2C地址
lcd.clear(); //清空LCD屏
lcd.print("abcdefg..."); //LCD屏显示
③ 求助arino用超声波手势控制音乐播放
烧写以下代码到UNO:
const int EchoPin = 2; //超声波信号输入
const int TrigPin = 3; //超声波控制信号输出
int currDist = 0;
void setup(){
pinMode(EchoPin, INPUT);
for (int pinindex = 3; pinindex < 8; pinindex++) {
pinMode(pinindex, OUTPUT); // set pins 3 to 10 as outputs
}
pinMode(A0,OUTPUT);
pinMode(A1,OUTPUT);
pinMode(A2,OUTPUT);
pinMode(A3,OUTPUT);
digitalWrite(A0,LOW);
digitalWrite(A1,LOW);
digitalWrite(A2,LOW);
digitalWrite(A3,LOW);
Serial.begin(9600);
}
void loop(){
currDist = MeasuringDistance(); //读取前端距离
//Serial.println(currDist);
if(currDist > 25){
}
//power开关看个人需要,这里没有启用
//else if(currDist < 8){
// mpower();
// }
else if(currDist < 7){
mpause();
}
else if(currDist < 15){
mnext();
}
else if(currDist < 25){
mprev();
}
}
long MeasuringDistance() {
long ration;
digitalWrite(TrigPin, LOW);
delayMicroseconds(2);
digitalWrite(TrigPin, HIGH);
delayMicroseconds(10);
digitalWrite(TrigPin, LOW);
ration = pulseIn(EchoPin, HIGH);
return ration / 29 / 2;
}
//mplay播放
void mplay() {
digitalWrite(A0, HIGH);
delay(100);
digitalWrite(A0, LOW);
Serial.println("mplay");
}
//mprev上一首
void mprev() {
digitalWrite(A1, HIGH);
delay(1000);
digitalWrite(A1, LOW);
Serial.println("mprev");
}
//mnext下一首
void mnext() {
digitalWrite(A2, HIGH);
//return;
delay(1000);
digitalWrite(A2, LOW);
Serial.println("mnext");
}
//mpause暂停
void mpause() {
digitalWrite(A0, HIGH);
delay(1000);
digitalWrite(A0, LOW);
Serial.println("mpause");
}
//mpower
//void mpower() {
// digitalWrite(A3, HIGH);
// delay(500);
//digitalWrite(A3, LOW);
// Serial.println("mpower");
//}