Stap 3: De Code
/*
Het circuit:
* LCD RS pin naar digitale pin 12
* LCD inschakelen pin naar digitale pin 11
* LCD D4 pin naar digitale pin 5
* LCD D5 pin naar digitale pin 4
* LCD D6 pin naar digitale pin 3
* LCD D7 pin naar digitale pin 2
* LCD R/W pen op grond
* 10K Ohm weerstand:
* eindigt aan + 5V en ground
* wisser naar LCD VO pin (pin 3)
* Ultrasone GND tot A0
* Ultransonic Echo A1
* Ultrasone Trigger tot A3
* Ultrasone VCC tot A4
#include < LiquidCrystal.h >
*/
VOID Setup {}
de LCD's aantal kolommen en rijen instellen:
LCD.begin (16, 4);
pinMode (A4, OUTPUT); //attach pin 2 naar vcc
pinMode (A0, OUTPUT); //attach pin 5 met GND
seriële communicatiepoorten te initialiseren:
Serial.begin(9600);
lcd.setCursor (0, 0);
LCD.Print ("ultrasone heerser met LCD");
lcd.setCursor (0, 1);
LCD.Print ("door Alex Willis");
}
void loop {}
digitalWrite (A4, hoge);
stellen variabelen voor de duur van de ping,
en het resultaat van de afstand in inches en centimeters:
lange duur, inch, cm;
De PING))) wordt geactiveerd door een hoge pols van 2 of meer microseconden.
Geef een korte lage puls vooraf om een schoon hoog puls:
pinMode (A3, OUTPUT); / / pin 3 hechten aan Trig
digitalWrite (A3, laag);
delayMicroseconds(2);
digitalWrite (A3, hoge);
delayMicroseconds(5);
digitalWrite (A3, laag);
Dezelfde pincode wordt gebruikt voor het lezen van het signaal van de PING))): een hoog
Pulse waarvan de duur de tijd (in microseconden) van de verzending is
voor de ping naar de receptie van de echo off van een object.
pinMode (A1, INPUT); //attach pin 4 echo
duur = pulseIn (A1, hoge);
de tijd omzetten in een afstand
duim = microsecondsToInches(duration);
cm = microsecondsToCentimeters(duration);
lcd.setCursor (0, 2);
LCD.Print(inches);
LCD.Print ("in");
LCD.Print(cm);
LCD.Print("cm");
delay(1000);
LCD.Clear();
}
lange microsecondsToInches(long microseconds)
{
Volgens de Parallax gegevensblad voor de PING))), er zijn
73.746 microseconden per inch (dwz geluid reist aan 1130 voeten per
seconde). Dit geeft de afstand die is afgelegd door de ping, uitgaande
en terug te keren, zodat wij door 2 delen te krijgen van de afstand van het obstakel.
Zie: http://www.parallax.com/dl/docs/prod/acc/28015-PING-v1.3.pdf
retourneren van microseconden / 74 / 2;
}
lange microsecondsToCentimeters(long microseconds)
{
De snelheid van het geluid is 340 m/s of 29 microseconden per vierkante centimeter.
De ping reist uit en terug, zo vind je de afstand van de
we de helft van de afgelegde afstand nemen-object.
retourneren van microseconden / 29 / 2;
}
Uploaden van deze code en het zou moeten werken, hoewel het is niet erg nauwkeurig, maar hey! Het werkt!