Twee voorbeeldprogramma's voor het gebruik van de hc-sr04.
Het eerste programma is een eenvoudige versie waarbij een led gaat branden als de afstand kleiner is dan een bepaald getal.
Het tweede programma is wat uitgebreider. Hier wordt de afstand op de seriele monitor geprint en zijn er twee ledjes aangesloten.
// HC-SR04 voorbeeld simpel
// Eenvoudig programma waarmee een led gaat branden als de afstand
// kleiner is dan een bepaald getal.
int trigPin = 13; //triggerpin van hc-sr04 op pin 13
int echoPin = 12; //echopin van hc-sr04 op pin 12
int rodeLed = 11; //rode led op pin 11
long duration; //variabele voor de tijdsduur van de echo
long distance; //variabele voor de afstand tot de sensor
void setup() {
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
pinMode(rodeLed, OUTPUT);
}
void loop() {
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
duration = pulseIn(echoPin, HIGH);
distance = (duration / 2) / 29.1;
if (distance < 10) {
digitalWrite(rodeLed, HIGH);
}
else {
digitalWrite(rodeLed, LOW);
}
delay(500);
}
Het tweede programma:
/*HC-SR04 voorbeeld
Voorbeeld sketch voor de HC-SR04 ultrasoon sensor MET SERIAL MONITOR
VCC van de sensor naar arduino 5v GND naar arduino GND
Echo naar Arduino pin 13 Trig naar Arduino pin 12
Rode led naar Arduino pin 11
Groene led Arduino pin 10
Weerstanden (330 ohm) van Arduino ground naar led's
Info over HC-SR04:
http://www.micropik.com/PDF/HCSR04.pdf
Orginele code o.a. afkomstig van:
http://en.wikiversity.org/wiki/User:Dstaub/robotcar
http://www.instructables.com/id/Simple-Arduino-and-HC-SR04-Example/?ALLSTEPS
http://www.trollmaker.com/article3/arduino-and-hc-sr04-ultrasonic-sensor
Aangepast voor HWC.Ontwerpen
*/
int trigPin = 13; //triggerpin van hc-sr04 op pin 13
int echoPin = 12; //echopin van hc-sr04 op pin 12
int rodeLed = 11; //rode led op pin 11
int groeneLed = 10; //groene led op pin 10
long duration; //variabele voor de tijdsduur van de echo
long distance; //variabele voor de afstand tot de sensor
void setup() {
Serial.begin (9600); //gebruik de serial monitor
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
pinMode(rodeLed, OUTPUT);
pinMode(groeneLed, OUTPUT);
}
void loop() {
digitalWrite(trigPin, LOW); // om zeker te zijn dat de trigPin low is
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10); // trigPin geeft puls van 10 uS
digitalWrite(trigPin, LOW);
duration = pulseIn(echoPin, HIGH); // echoPin meet de tijd van het teruggekeerde geluid
distance = (duration / 2) / 29.1; // omrekening van snelheid van het geluid naar centimeters
if (distance < 10) { // als de afstand kleiner is dan 10 cm
digitalWrite(rodeLed, HIGH); // rode led aan
digitalWrite(groeneLed, LOW); // groene led uit
}
else {
digitalWrite(rodeLed, LOW);
digitalWrite(groeneLed, HIGH);
}
if (distance >= 200 || distance <= 2) { // als de afstand >= dan 200 cm of <= 2 cm
Serial.println("Out of range"); // schrijf 'out of range'op de serial monitor
}
else {
Serial.print(distance); //schrijf de afstand op de monitor
Serial.println(" cm");
}
delay(500);
}