① 超聲波模塊 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");
//}