Enkla ultraljud avstånd Sensor modul Demo (2 / 4 steg)
Steg 2: HC-SR04 kodning
Du kommer att behöva ha Arduinos seriell övervaka kör för att se utdata från skissen nedan. Om du är obekant med seriell skärmen nu har du chansen att använda den! Det är ett bra verktyg för felsökning och whatnot. Arduino gränssnitt leta upp i högra hörnet finns på knappen för att starta den seriella bildskärmen det. Det ser ut som ett förstoringsglas för mig, klicka på bara den och monitorn kommer att öppna (eller Välj verktyg/seriell övervaka eller Ctrl + Skift + M).
Väl hade detta varit en enkel liten skiss om jag inte kommenterar han ** ur det! :-)
Arduino skiss Begin-
Definierar konstanter (konstanter är saker som inte ändras, du får ett kompileringsfel om du försöker ändra värdet för en konstant inom skiss)
CONST int triggerPin = 7. skapar en konstant som heter "triggerPin" och tilldelar digital stift 7 till det
CONST int echoPin = 8; skapar en konstant som heter "echoPin" och tilldelar det digitala stift 8
Definiera variabler (variabler kan och kommer normalt att ändra inom en skiss, de är i grunden lagringsplatser för värden)
int längd = 0; skapar en variabel som heter "varaktighet" att lagra värdet som returneras av pulseIn, värdet är att vara förinställd till "0"
int avstånd = 0; skapar en variabel för att lagra värdet beräknas vara avståndet till ett objekt framför sensorn, värdet är att vara förinställd till "0"
void setup() / / Använd detta avsnitt för att konfigurera din styrelse och andra funktioner som krävs av ditt program
{
Serial.BEGIN(9600); initiera seriell kommunikation via USB mellan Arduino och dator, du kommer att behöva det.
definiera pin lägen
pinMode (triggerPin, produktionen); "triggerPin" kommer att användas för utdata, förklaras pin-kod ovan under definiera variabler
pinMode (echoPin, ingång); "echoPin" kommer att användas för INPUT, förklaras pin-pinkod ovan under definiera variabler
} / / slutet av installationen
allt ovan denna punkt läses bara en gång av en program - vid start eller Återställ
void loop() / / skissen i avsnittet loop är läser ständigt och upprepas tills power off eller återställa
{
digitalWrite (triggerPin, hög); börjar de ultraljud wave(s) från HC-SR04-modulen
Delay(5); kort paus för sak - krävs för modul för att fungera korrekt (du kan sänka antalet, jag kör det på 1 i andra skisser)
digitalWrite (triggerPin, låg); slutar den Ultraljuds wave(s) ut från HC-SR04-modulen
längd = pulseIn (echoPin, hög); speciell funktion att avgöra hur länge echo stiftet hölls hög av senaste avslutade cykeln av ljud skurar
Delay(10); kort paus för orsaken. Denna försening är för stabilitet, för kort en fördröjning och ingen worky
avståndet = (längd/2) / 74; omvandla varaktighet till avstånd (det värde som lagras i "varaktighet" divideras med 2, att resultatet divideras sedan med 74 **) ** för centimeter (cm) dividera med 58, tack coytar!
Delay(500); fördröjning för stabilitet - kan spela med det men kan också bryta saker gör det - använder 500 för standard
Serial.Print(Distance); skickar det värde som beräknats för att avståndet till den seriella monitorn
Serial.println ("inches"); lägger till ordet "inches" efter avstånd värdet ovan och startar en ny linje på serial monitorn
Serial.println(); lägger till en tom rad på serial monitor för läsbarhet
} / / End av Loop
_________________________________________________
OK, efter att ha läst min egen Instructable insåg jag att skissen ovan verkligen inte uppfyller min definition av "enkel". Så är här det exakt samma skiss, kommenterade lätt.
HC-SC04 ultraljud avstånd modul skiss av Brad
CONST int triggerPin = 7. utlösa på 7
CONST int echoPin = 8; EKO på 8
int längd = 0; hålla värde från pulseIn
int avstånd = 0; hålla värde för beräknade avstånd
void setup()
{
Serial.BEGIN(9600);
pinMode (triggerPin, produktionen); definiera pin lägen
pinMode (echoPin, ingång);
}
void loop()
{
digitalWrite (triggerPin, hög); börja skicka sound wave(s)
Delay(5); krävs, kan justeras (inte lägre än 10us)
digitalWrite (triggerPin, låg); modul slutar skicka wave(s)
längd = pulseIn (echoPin, hög); bestämma hur länge ECHO stiftet var hög för den sista kompletta våg
Delay(10); krävs, kan justeras - noggrant
avståndet = (längd/2) / 74; Delay(500); beräkna avståndet ** för centimeter (cm) dividera med 58 ** tack coytar!
Delay(500); fördröjning för stabilitet - kan spela med det men kan också bryta saker gör det - använder 500 för standard
Serial.Print(Distance); Skicka det aktuella värdet i avstånd till seriell bildskärmen
Serial.println ("inches"); visar ordet "inches" efter avståndet ovan
Serial.println(); skapar en tom rad på serial monitor för läsbarhet
}
Där, är det en enkel skiss!
De medföljande .ino filerna är;
1. HCSR04BareBones.ino - filen är kraftigt kommenterade och innehåller några grundläggande specifikationer för HC-SR04 modul samt kabeldragning instruktioner.
2. BareBonesLight.ino - mycket lätt kommenterade