Arduino上使用超声波传感器示例程序

主要是验证超声波传感器的使用方法
连接示意图
Arduino上使用超声波传感器示例程序 - gc_2299 - gc_2299的博客
 实物图:
Arduino上使用超声波传感器示例程序 - gc_2299 - gc_2299的博客
 
代码来自该网页:http://www.arduino.cn/forum.php?mod=viewthread&tid=3194&extra=&highlight=%E8%B6%85%E5%A3%B0%E6%B3%A2&page=1
[code]
/*
  [url=http://www.openjumper.com/]www.openjumper.com[/url]
  日期:2013.5.18
  IDE 版本:1.0.1
  功能:利用SR04超声波传感器进行测距,并用串口显示测出的距离值
*/

// 设定SR04连接的Arduino引脚
const int TrigPin = 4;
const int EchoPin = 6;
float distance;
void setup()
{ // 初始化串口通信及连接SR04的引脚
  Serial.begin(9600);
  pinMode(TrigPin, OUTPUT);
  // 要检测引脚上输入的脉冲宽度,需要先设置为输入状态
  pinMode(EchoPin, INPUT);
  Serial.println("Ultrasonic sensor:");
}
void loop()
{
  // 产生一个10us的高脉冲去触发TrigPin
  digitalWrite(TrigPin, LOW);
  delayMicroseconds(2);
  digitalWrite(TrigPin, HIGH);
  delayMicroseconds(10);
  digitalWrite(TrigPin, LOW);
  // 检测脉冲宽度,并计算出距离
  distance = pulseIn(EchoPin, HIGH) / 58.00;
  Serial.print(distance);
  Serial.print("cm");
  Serial.println();
  delay(1000);
}
[/code]

最后的结果
Arduino上使用超声波传感器示例程序 - gc_2299 - gc_2299的博客
 
以下是一个简单的示例代码,可以实现Arduino Uno和超声波传感器在显示器上进行电量显示和距离显示: ``` // 定义电池电压采样引脚和超声波传感器引脚 #define BATTERY_PIN A0 #define TRIGGER_PIN 9 #define ECHO_PIN 10 // 定义显示器相关的库和引脚 #include <LiquidCrystal.h> LiquidCrystal lcd(7, 6, 5, 4, 3, 2); void setup() { // 初始化串口通信和显示器 Serial.begin(9600); lcd.begin(16, 2); // 设置超声波传感器引脚为输出和输入模式 pinMode(TRIGGER_PIN, OUTPUT); pinMode(ECHO_PIN, INPUT); } void loop() { // 读取电池电压并转换为百分比 int batteryReading = analogRead(BATTERY_PIN); float batteryPercentage = (float)batteryReading / 1023.0 * 100.0; // 读取超声波传感器距离 digitalWrite(TRIGGER_PIN, LOW); delayMicroseconds(2); digitalWrite(TRIGGER_PIN, HIGH); delayMicroseconds(10); digitalWrite(TRIGGER_PIN, LOW); float distance = pulseIn(ECHO_PIN, HIGH) / 58.0; // 将结果输出到串口和显示器上 Serial.print("Battery Percentage: "); Serial.print(batteryPercentage); Serial.print("%, "); Serial.print("Distance: "); Serial.print(distance); Serial.println(" cm"); lcd.setCursor(0, 0); lcd.print("Battery: "); lcd.print(batteryPercentage); lcd.print("%"); lcd.setCursor(0, 1); lcd.print("Distance: "); lcd.print(distance); lcd.print(" cm"); // 等待一段时间后重复执行 delay(1000); } ``` 请注意,这只是一个简单的示例代码,并且可能需要根据您的具体硬件配置进行调整和修改。
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值