本站改版新增arduino频道
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