本站改版新增arduino频道

Micropython
Arduino

arduino ESP32 HC-SR04超声波传感器


arduino ESP32 HC-SR04超声波传感器

const int trigPin = 5;
const int echoPin = 18;

//define sound speed in cm/uS
#define SOUND_SPEED 0.034
#define CM_TO_INCH 0.393701

long duration;
float distanceCm;
float distanceInch;

void setup() {  

Serial.begin(115200);  // 开始串行通信
pinMode(trigPin, OUTPUT);  // 将trigPin设置为输出
 pinMode(echoPin, INPUT);   // 将echoPin设置为输入
 }
 void loop() { 
  // 清除trigPin  
  digitalWrite(trigPin, LOW);  
  delayMicroseconds(2);  
  // 将trigPin设置为HIGH状态10微秒
  digitalWrite(trigPin, HIGH);  
  delayMicroseconds(10);  
  digitalWrite(trigPin, LOW);   
//读取echoPin,返回声波传播时间(微秒)  
duration = pulseIn(echoPin, HIGH);    
  //计算距离  
  distanceCm = duration * SOUND_SPEED/2;    
  // 换算成英寸  
  distanceInch = distanceCm * CM_TO_INCH;   
   // 在串行监视器中打印距离  
   Serial.print("Distance (cm): ");  
   Serial.println(distanceCm);  
   Serial.print("Distance (inch): ");  
   Serial.println(distanceInch);    
   delay(1000);}










#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>

#define SCREEN_WIDTH 128 // OLED显示宽度,单位为像素
#define SCREEN_HEIGHT 64 // OLED显示高度,单位为像素

// 连接到I2C (SDA, SCL引脚)的SSD1306显示器的声明
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, -1);

const int trigPin = 5;
const int echoPin = 18;

//定义声速,单位为cm/uS
#define SOUND_SPEED 0.034
#define CM_TO_INCH 0.393701

long duration;
int distanceCm;
int distanceInch;

void setup() {
  Serial.begin(115200);  
  pinMode(trigPin, OUTPUT); // 将trigPin设置输出
  pinMode(echoPin, INPUT); // 将echoPin设置为输入

if(!display.begin(SSD1306_SWITCHCAPVCC, 0x3C)) {
    Serial.println(F("SSD1306 allocation failed"));   
     for(;;);  
     }
delay(500); 
//显示设置
display.clearDisplay();  
display.setTextSize(2);  
display.setTextColor(WHITE);
}

void loop() {
  // 清除trigPin
  digitalWrite(trigPin, LOW);  
  delayMicroseconds(2);  
  // 将trigPin设置为HIGH状态10微秒
  digitalWrite(trigPin, HIGH); 
   delayMicroseconds(10);  
   #(trigPin, LOW);

// 读取echoPin,返回声波传播时间(微秒)
  duration = pulseIn(echoPin, HIGH);
  
  // 计算距离
  distanceCm = duration * SOUND_SPEED/2;
  
  // 换算成英寸
  distanceInch = distanceCm * CM_TO_INCH;
  
  // 在串行监视器中打印距离
  Serial.print("Distance (cm): ");
  Serial.println(distanceCm);
  Serial.print("Distance (inch): ");
  Serial.println(distanceInch);

  display.clearDisplay();
  display.setCursor(0, 25);
  //显示距离(厘米)
  display.print(distanceCm);
  display.print(" cm");
  
  // 显示距离(英寸),此处注释,若是使用,解除注释即可
  /* display.print(distanceInch);
  display.print(" in");*/
  display.display(); 

  delay(500);  
}



推荐分享
图文皆来源于网络,内容仅做公益性分享,版权归原作者所有,如有侵权请告知删除!
 

Copyright © 2014 ESP56.com All Rights Reserved
晋ICP备14006235号-22 晋公网安备14108102001165号

执行时间: 0.0095100402832031 seconds