Arduino HC-SR04超音波測距
使用HC-SR04偵測距離並印在OLED面板上
材料
- Arduino *1 (Uno)
- 麵包板 *1
- 麵包板跳線 數根
- HC-SR04超音波模組 *1
- OLED面板 *1 (SSD1306 128*64)
如果沒有OLDE面板也可以選擇使用Serial Monitor將數值印出
另外在這個例子中使用了 JRodrigoTech所製作的函式庫"Ultrasonic-HC-SR04"
Github連結:https://github.com/JRodrigoTech/Ultrasonic-HC-SR04
函式庫點這裡下載
電路圖
接線圖
CODE
這個例子使用U8G2lib函式庫控制OLED面板
若要使用Serial Monitor印出數值,請參考"Ultrasonic-HC-SR04"函式庫Example中的"Serial"
// U8g2_Arduino - Version: Latest
#include <U8g2lib.h>
#include <U8x8lib.h>
// Ultrasonic - Version: Latest
#include <Ultrasonic.h>
#define TRIG_PIN 12 //定義TrigPin
#define ECHO_PIN 11 //定義EchoPin
//OLED面板
U8G2_SSD1306_128X64_NONAME_1_SW_I2C u8g2(U8G2_R0, SCL, SDA, U8X8_PIN_NONE);//(rotation, clock, data [, reset])
//HC-SR04超音波測距
Ultrasonic ultrasonic(TRIG_PIN,ECHO_PIN); // (Trig PIN,Echo PIN)
void setup() {
u8g2.begin();
}
void loop() {
u8g2.firstPage();
do {
draw();
} while( u8g2.nextPage() );
}
void draw(){
u8g2.setFont(u8g2_font_unifont_t_greek);//設定字型
u8g2.setCursor(0,16);//設定位置(0,16)
u8g2.print("HC-SR04 Sensor");//印出文字
u8g2.setCursor(20,32);//設定位置(20,32)
u8g2.print("CM: ");//印出文字
u8g2.setCursor(64,32);//設定位置(64,32)
u8g2.print(ultrasonic.Ranging(CM));//印出HC-SR04測出的距離(單位:公分)
u8g2.setCursor(20,48);//設定位置(20,48)
u8g2.print("INC: ");//印出文字
u8g2.setCursor(64,48);//設定位置(64,48)
u8g2.print(ultrasonic.Ranging(INC));//印出HC-SR04測出的距離(單位:英吋)
}


沒有留言:
張貼留言