Arduino avstånd Display och larm (2 / 2 steg)
Steg 2:
Koden för att få Hex adress kan hittas från länken här
https://Brainy-BITS.com/tutorials/Connect-a-charac...
Efter att vi måste använda denna kod i den viktigaste koden här
#include < Wire.h >< br > #include < LCD.h >
#include < LiquidCrystal_I2C.h >
#include < NewPing.h >
#define I2C_ADDR 0x27 / / Lägg till din adress här.
#define Rs_pin 0
#define Rw_pin 1
#define En_pin 2
#define BACKLIGHT_PIN 3
#define D4_pin 4
#define D5_pin 5
#define D6_pin 6
#define D7_pin 7
#define ECHO_PIN 11 / / Arduino PIN-kod knuten till echo pin på ultrasonic sensor.
#define TRIGGER_PIN 12 / / Arduino PIN-kod knuten till utlösa pin på ultrasonic sensor.
#define MAX_DISTANCE 500 / / maximalt avstånd vi vill skicka ping (i centimeter). Maximal sensorn avståndet är dimensionerade för 400500cm.
NewPing sonar (TRIGGER_PIN, ECHO_PIN, MAX_DISTANCE); NewPing inställning av stift och maximala avstånd. < br > LiquidCrystal_I2C lcd(I2C_ADDR,En_pin,Rw_pin,Rs_pin,D4_pin,D5_pin,D6_pin,D7_pin);
void setup()
{
pinMode(7,OUTPUT);
pinMode(6,OUTPUT);
LCD.BEGIN (16,2); <<--våra LCD är en 20 x 4, förändring för din LCD-skärm om det behövs
LCD-bakgrundsbelysningen på
lcd.setBacklightPin(BACKLIGHT_PIN,POSITIVE);
lcd.setBacklight(HIGH);
LCD.Home (); gå hem på LCD
LCD.Print ("Range Finder");
}
void loop()
{
digitalWrite (TRIGGER_PIN, hög);
delayMicroseconds(1000);
digitalWrite(TRIGGER_PIN,LOW);
unsigned int oss = sonar.ping(); Skicka ping, ping tid i mikrosekunder (oss) att få.
unsigned int dist = sonar.convert_cm(uS); Konvertera till centimeter
om (dist > = 200 || dist < = 0) {
LCD.Clear();
lcd.setCursor (0,1); gå till start av 2: a raden
LCD.Print("Distance:");
lcd.setCursor (0,3); gå till start av 4: e raden
LCD.Print ("Ping:");
LCD.Print ("out of Range");
} else om (dist > = 0 & & dist < = 50) {
LCD.Clear();
beepFast();
lcd.setCursor (0,1); gå till start av 2: a raden
LCD.Print("Distance:");
lcd.setCursor (0,3); gå till start av 4: e raden
LCD.Print ("Ping:");
LCD.Print(dist);
LCD.Print ("cm");
}
annat {
LCD.Clear();
Silent();
LCD.Print(dist);
LCD.Print ("cm");
}
Delay(1000);
}
void beepFast() {
Tone(8,440,200);
digitalWrite(7,HIGH);
Delay(50);
noTone(8);
digitalWrite(7,LOW);
Delay(300);
}
void Silent() {
noTone(8);
digitalWrite(6,HIGH);
Delay(300);
digitalWrite(6,LOW);
}