超音波&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(3233); //ultrasonic(trig, echo)
#define SCREEN_WIDTH 128
#define SCREEN_HEIGHT 64
#define OLED_RESET -1

Adafruit_SSD1306 display(SCREEN_WIDTHSCREEN_HEIGHT, &WireOLED_RESET);
void setup(){
    Serial.begin(115200);
    display.begin(SSD1306_SWITCHCAPVCC0x3COLED_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(020);
    display.print(distance);
    display.setTextSize(2);
    display.setCursor(6040);
    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(3233); //ultrasonic(trig, echo)

定義oled所須參數
#define SCREEN_WIDTH 128
#define SCREEN_HEIGHT 64
#define OLED_RESET -1

Adafruit_SSD1306 display(SCREEN_WIDTHSCREEN_HEIGHT&WireOLED_RESET);

初始化
void setup(){
    Serial.begin(115200);
    display.begin(SSD1306_SWITCHCAPVCC0x3C, OLED_RESET);
}


void loop(){}裡面

讀取超音波數質並賦予變數
unsigned int distance=ultrasonic1.read(CM);

其中setTextSize(3),setTextColor(WHITE),setCursor(020),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);







留言

這個網誌中的熱門文章