Awesome Arduino äventyr (5 / 6 steg)
Steg 5: Dags för lite kod
Här är några viktiga bitar av den programvara som vi använde för att programmera sin enhet.#include "NewPing.h"
#define justRightLed 11 / / grön
#define felaktig 10 / / Använd inte
#define tooFarLed 9 / / röd
#define tooCloseLed 8 / / blå
#define ECHO_PIN 12
#define TRIGGER_PIN 13
/*
Ändra dessa värden för ditt garage
*/
Double tooCloseInches = 5;
Double tooFarInches = 20;
I setup-funktionen, se till att du anger stiften till rätt läge
pinMode (tooCloseLed, produktionen);
pinMode (justRightLed, produktionen);
pinMode (tooFarLed, produktionen);
pinMode(ECHO_PIN,INPUT);
pinMode(TRIGGER_PIN,OUTPUT);
/*
Denna kod lyser upp eller stänger av alla lampor... Användning när man testar...
*/
void lightAllLeds()
{
digitalWrite(tooCloseLed,HIGH);
digitalWrite(tooFarLed,HIGH);
digitalWrite(justRightLed,HIGH);
}
void resetAllLeds()
{
digitalWrite(tooCloseLed,LOW);
digitalWrite(tooFarLed,LOW);
digitalWrite(justRightLed,LOW);
}
/*
Den viktigaste loopen
*/
void loop()
{
Delay(300);
unsigned int oss = sonar.ping();
Double distanceCM = oss / US_ROUNDTRIP_CM;
Double distanceIn = oss / US_ROUNDTRIP_IN;
om (distanceIn > 0,1) displayCorrectStatus(distanceIn);
}
/*
Kontrollera först om det uppmätta avståndet är större som för nära linjen och om den distanserad är mindre än 2 långt linje - vid denna tid vi vet att det är i den säkra zonen
Därefter kontrollera om avståndet är för nära, då den blå lampan tänds.
Slutligen, de röda LED-lamporna, om avståndet är för långt.
*/
void displayCorrectStatus(int distanceIn)
{
om ((distanceIn > = tooCloseInches) & & (distanceIn < = tooFarInches))
{
displayJustRightStatus();
}
annars om (distanceIn < tooCloseInches)
{
displayTooCloseStatus();
}
annat
{
displayTooFarStatus();
}
}