ardaino 利用wire.h库显示屏显示超声波传感器的距离和电压
时间: 2024-03-11 09:47:20 浏览: 52
以下是一个基于Wire库和LCD显示屏的Arduino代码示例,该代码可以显示超声波传感器的距离和电压:
```
#include <Wire.h>
#include <LiquidCrystal_I2C.h> // 加载LCD显示屏库
const int trigPin = 9; // 超声波传感器的触发引脚
const int echoPin = 10; // 超声波传感器的接收引脚
LiquidCrystal_I2C lcd(0x27,16,2); // 设置LCD显示屏的地址和行列数
void setup() {
Serial.begin(9600); // 初始化串口通信
lcd.init(); // 初始化LCD显示屏
lcd.backlight(); // 打开LCD显示屏的背光
pinMode(trigPin, OUTPUT); // 将触发引脚设置为输出
pinMode(echoPin, INPUT); // 将接收引脚设置为输入
}
void loop() {
// 触发超声波传感器
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
// 读取超声波传感器的回波时间
long duration = pulseIn(echoPin, HIGH);
// 将回波时间转换为距离(单位:厘米)
int distance = duration * 0.034 / 2;
// 输出距离
Serial.print("Distance: ");
Serial.print(distance);
Serial.println(" cm");
// 读取电压
int voltage = analogRead(A0);
float voltageValue = voltage * (5.0 / 1023.0);
// 输出电压
Serial.print("Voltage: ");
Serial.print(voltageValue);
Serial.println(" V");
// 在LCD显示屏上显示距离和电压
lcd.clear(); // 清空LCD显示屏
lcd.setCursor(0,0); // 设置光标位置
lcd.print("Distance: "); // 输出距离信息
lcd.print(distance);
lcd.print(" cm");
lcd.setCursor(0,1); // 设置光标位置
lcd.print("Voltage: "); // 输出电压信息
lcd.print(voltageValue);
lcd.print(" V");
// 等待一段时间再重新进行测量
delay(500);
}
```
在此示例中,我们使用了Wire库和LiquidCrystal_I2C库来控制LCD显示屏。我们还使用了Arduino的`analogRead()`函数来读取电压值。最后,我们将距离和电压值分别输出到串口监视器和LCD显示屏上。
阅读全文