Stap 2: HC-SR04 codering
U moet de Arduino seriële monitor programma uitgevoerd om de uitvoer van de schets hieronder te bekijken. Als u onbekend met de seriële monitor bent nu is uw kans om het te gebruiken! Het is een geweldig hulpmiddel voor het debuggen en whatnot. In de Arduino interface opzoeken bij de rechterbovenhoek is de knop om te beginnen met de seriële monitor er. Het ziet eruit als een vergrootglas voor mij net te klikken en de monitor zal openen (of selecteer TOOLS/seriële Monitor, of Ctrl + Shift + M).
Ook zou dit zijn geweest een eenvoudige kleine schets als ik niet de hij ** eruit reageren! :-)
Arduino Sketch Begin-
Definiëren van constanten (constanten zijn dingen die niet zal veranderen, krijg je treedt er een compileerfout wanneer u probeert te wijzigen van de waarde van een constante binnen de schets)
Const int triggerPin = 7; een constante met de naam "triggerPin" creëert en digitale pin 7 toegewezen aan het
Const int echoPin = 8; een constante met de naam "echoPin" creëert en digitale pin 8 toegewezen aan het
Definiëren van variabelen (variabelen kan en normaal zal veranderen in een schets, ze zijn in feite opslaglocaties voor waarden)
int duur = 0; Hiermee maakt u een variabele met de naam "duur" voor het opslaan van de waarde die wordt geretourneerd door pulseIn, de waarde is vooraf worden ingesteld op "0"
int afstand = 0; Hiermee maakt u een variabele voor het opslaan van de waarde berekend als de afstand tot een object voor de sensor, de waarde is vooraf worden ingesteld op "0"
void setup / / gebruik deze sectie voor het configureren van je board en andere functies zoals vereist door uw programma
{
Serial.begin(9600); initialiseren van seriële communicatie via USB tussen Arduino en computer, zult u het nodig hebt
definiëren van pin modi
pinMode (triggerPin, OUTPUT); "triggerPin" zal worden gebruikt voor uitvoer, is het pin-nummer aangegeven hierboven onder variabelen definiëren
pinMode (echoPin, INPUT); "echoPin" zal worden gebruikt voor invoer, is het pin pin-nummer aangegeven hierboven onder variabelen definiëren
} / / einde van setup
alles boven dit punt wordt slechts eenmaal gelezen door een programma - bij het opstarten of Reset
void loop / / de schets in de sectie van de lus wordt voortdurend gelezen en herhaald tot macht uit of opnieuw instellen
{
digitalWrite (triggerPin, hoge); de ultrasone wave(s) vertrekt van de HC-SR04 module
delay(5); korte pauze voor de oorzaak - vereist voor module goed te laten functioneren (u kunt verlagen het nummer, mij stormloop op op 1 in de andere schetsen)
digitalWrite (triggerPin, laag); stopt de ultrasone wave(s) uit van de HC-SR04 module
duur = pulseIn (echoPin, hoge); speciale functie voor het bepalen van de lengte van de tijd die de echo-pin HIGH werd gehouden door de laatste voltooide cyclus van geluid uitbarstingen
delay(10); korte pauze voor de oorzaak. Deze vertraging is voor stabiliteit, te korte een vertraging en geen worky
afstand = (duur/2) / 74; transformeren van duur tot afstand (de waarde die is opgeslagen in "duur" wordt gedeeld door 2, dat resultaat wordt vervolgens gedeeld door 74 **) ** voor centimeters (cm) door 58 delen, Bedankt coytar!
delay(500); vertraging voor stabiliteit - kan spelen met het maar kunnen ook dingen doen breken - 500 gebruiken voor standaard
Serial.Print(distance); verzendt de waarde berekend als de afstand tot de seriële monitor
Serial.println ("duim"); het woord "inch" toegevoegd na de afstand van bovenstaande waarde en begint u een nieuwe regel op de seriële monitor
Serial.println(); voegt een lege regel op seriële monitor voor leesbaarheid
} / / Einde van de lus
_________________________________________________
OK, na het lezen van mijn eigen Instructable realiseerde ik me dat de bovenstaande sketch echt niet voldoet aan mijn definitie van "eenvoudige". Dus is hier de exacte dezelfde schets, licht heeft gereageerd.
HC-SC04 ultrasone afstand Module schets door Brad
Const int triggerPin = 7; trigger op 7
Const int echoPin = 8; ECHO op 8
int duur = 0; waarde van pulseIn houden
int afstand = 0; waarde voor de berekende afstand houden
VOID Setup
{
Serial.begin(9600);
pinMode (triggerPin, OUTPUT); definiëren van pin modi
pinMode (echoPin, INPUT);
}
void loop
{
digitalWrite (triggerPin, hoge); beginnen met het verzenden van sound wave(s)
delay(5); vereist, kunnen worden aangepast (niet lager dan 10us)
digitalWrite (triggerPin, laag); module stopt verzenden wave(s)
duur = pulseIn (echoPin, hoge); bepalen hoe lang de ECHO-pin was hoog voor de laatste volledige Golf
delay(10); vereist, kunnen worden aangepast - zorgvuldig
afstand = (duur/2) / 74; delay(500); berekening van afstand ** voor centimeters (cm) door 58 delen ** coytar Bedankt!
delay(500); vertraging voor stabiliteit - kan spelen met het maar kunnen ook dingen doen breken - 500 gebruiken voor standaard
Serial.Print(distance); de huidige waarde opgeslagen in afstand tot de seriële monitor verzenden
Serial.println ("duim"); het woord "inch" wordt weergegeven na de bovengenoemde afstand
Serial.println(); Hiermee maakt u een lege regel op seriële monitor voor leesbaarheid
}
Daar, nu is dat een eenvoudige schets!
De bestanden van de opgenomen Ino zijn;
1. HCSR04BareBones.ino - dit bestand is zwaar heeft gereageerd en omvat enkele fundamentele specs voor de HC-SR04 module evenals bedrading instructies.
2. BareBonesLight.ino - zeer licht commentaar