超音波&0.96OLED
超音波&0.96OLED
0.96OLED實作參考-https://esp32-blairan.blogspot.com/2021/05/091oled-esp32.html
超音波(Arduino)實作參考-https://blairandreamwork.blogspot.com/2021/05/hc-sr04.html
超音波和Arduino上的模組大同小義,不過我使用的模組比一般簡單多了,省去
計算,直接呼叫函式就能取得inc和cm。
接線
-------------------------- ---------------------
// * | HC-SC04 | ESP32 | | OLED | ESP32 |
// * --------------------- ---------------------
// * | Vcc | 3.3V | | Vcc | 3.3V |
// * | Trig | 32 | | Gnd | GND |
// * | Echo | 33 | | SCL | 21 |
// * | Gnd | GND | | SDA | 22 |
// * --------------------- ----------------------
程式碼
#include <Ultrasonic.h>
#include <Adafruit_SSD1306.h>
#include <Adafruit_GFX.h>
#include <Adafruit_GrayOLED.h>
#include <Wire.h>
Ultrasonic ultrasonic1(32, 33); //ultrasonic(trig, echo)
#define SCREEN_WIDTH 128
#define SCREEN_HEIGHT 64
#define OLED_RESET -1
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET);
void setup(){
Serial.begin(115200);
display.begin(SSD1306_SWITCHCAPVCC, 0x3C, OLED_RESET);
}
void loop(){
unsigned int distance=ultrasonic1.read(CM);
Serial.print(distance); Serial.println(" CM");
display.clearDisplay();
display.setTextSize(3);
display.setTextColor(WHITE);
display.setCursor(0, 20);
display.print(distance);
display.setTextSize(2);
display.setCursor(60, 40);
display.println("CM");
display.display();
delay(500);
}
這個模組是呼吸超音波用的
#include <Ultrasonic.h>
這些是OLED使用的模組
#include <Adafruit_SSD1306.h>
#include <Adafruit_GFX.h>
#include <Adafruit_GrayOLED.h>
#include <Wire.h>
設制超音波腳位
Ultrasonic ultrasonic1(32, 33); //ultrasonic(trig, echo)
定義oled所須參數
#define SCREEN_WIDTH 128
#define SCREEN_HEIGHT 64
#define OLED_RESET -1
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET);
初始化
void setup(){
Serial.begin(115200);
display.begin(SSD1306_SWITCHCAPVCC, 0x3C, OLED_RESET);
}
void loop(){}裡面
讀取超音波數質並賦予變數
unsigned int distance=ultrasonic1.read(CM);
其中setTextSize(3),setTextColor(WHITE),setCursor(0, 20),display.display()
一定要有,要不然不會顯示於OLED上
display.clearDisplay();
display.setTextSize(3);
display.setTextColor(WHITE);
display.setCursor(0, 20);
display.print(distance);
display.setTextSize(2);
display.setCursor(60, 40);
display.println("CM");
display.display();
delay(500);
留言
張貼留言