第一個程式
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#define trig 12
#define echo 13
LiquidCrystal_I2C lcd(0x27,16,2); // set the LCD address to 0x27 for a chars and 2 line
//display
void setup()
{
lcd.init(); // initialize the lcd
lcd.backlight();
lcd.print("HC-SR04 Sensor Test");
pinMode (trig, OUTPUT);
pinMode (echo, INPUT);
}
void loop()
{
float duration, distance;
digitalWrite(trig, HIGH);
delayMicroseconds(1000);
digitalWrite(trig, LOW);
duration = pulseIn (echo, HIGH);
distance = (duration/2)/29;
lcd.setCursor(0, 1);
lcd.print("Dist: ");
lcd.print(", CM: ");
lcd.print(distance);
delay(1000);
}
第二個程式
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#define trig 12
#define echo 13
//const int inter_time = 1000;
const int speaker=2;
LiquidCrystal_I2C lcd(0x27,16,2); // set the LCD address to 0x27 for a chars and 2 line display
void setup()
{
lcd.init(); // initialize the lcd
lcd.backlight();
lcd.print("HC-SR04 Sensor=>");
pinMode (trig, OUTPUT);
pinMode (echo, INPUT);
}
void loop()
{
float duration, distance;
digitalWrite(trig, HIGH);
delayMicroseconds(1000);
digitalWrite(trig, LOW);
duration = pulseIn (echo, HIGH);
distance = (duration/2)/29;
lcd.setCursor(0, 1);
lcd.print("Dist: ");
lcd.print(", CM: ");
lcd.print(distance);
int dis=distance;
switch (dis) {
case 2:
tone(speaker,5000);
delay(50);
tone(speaker,2000);
delay(50);
noTone(speaker);
break;
case 3:
tone(speaker,4000);
delay(50);
tone(speaker,2000);
delay(50);
noTone(speaker);
break;
case 4:
tone(speaker,2000);
delay(50);
tone(speaker,1000);
delay(50);
noTone(speaker);
break;
case 5:
tone(speaker,1000);
delay(50);
tone(speaker,500);
delay(50);
noTone(speaker);
break;
}
delay(1000);
}