1. 實(shí)驗(yàn)材料
2. 實(shí)驗(yàn)步驟
1. 根據(jù)原理圖搭建電路圖。
超聲波傳感器模塊的VCC、GND分別連接到開發(fā)板的5V、GND。傳感器的Trig引腳、Echo引腳分別連接到開發(fā)板的數(shù)字引腳2、3。OLED屏的VCC和GND分別連接開發(fā)板的3.3V和GND,OLED屏的SDA和SCL分別連接開發(fā)板A4和A5。
實(shí)驗(yàn)原理圖如下圖所示:
實(shí)驗(yàn)原理圖
2. 新建sketch,拷貝如下代碼替換自動(dòng)生成的代碼并進(jìn)行保存。
1#include < Wire.h >
2#include < Adafruit_GFX.h >
3#include < Adafruit_SSD1306.h >
4
5#define OLED_RESET 4
6Adafruit_SSD1306 display(128, 64, &Wire, OLED_RESET);
7
8#define TrigPin 2
9#define EchoPin 3
10
11int Value_cm;
12
13void setup() {
14 display.begin(SSD1306_SWITCHCAPVCC, 0x3C);
15 display.setTextColor(WHITE);//開像素點(diǎn)發(fā)光
16 display.clearDisplay();//清屏
17
18 display.setTextSize(2); //設(shè)置字體大小
19 pinMode(TrigPin, OUTPUT);
20 pinMode(EchoPin, INPUT);
21}
22
23void loop() {
24 digitalWrite(TrigPin, LOW); //低高低電平發(fā)一個(gè)短時(shí)間脈沖去TrigPin
25 delayMicroseconds(2);
26 digitalWrite(TrigPin, HIGH);
27 delayMicroseconds(10);
28 digitalWrite(TrigPin, LOW);
29 Value_cm = int( pulseIn(EchoPin, HIGH) * 17 ) / 1000;
30
31 display.clearDisplay();//清屏
32 display.setCursor(50,10);
33 display.print(Value_cm);
34 display.println("cm");
35 display.drawRect(0, 33, 128, 12, WHITE);
36 display.fillRect(2, 35, map(Value_cm, 2, 20, 2, 124), 8, WHITE);
37 display.display();//開顯示
38}