Om HC-SR04
HC-SR04 er en veldig mye brukt modul sammen med mikrokontrollersystemer som Arduino. Sensoren bruker ultralyd for å måle avstand, og er ganske nøyaktig fra 3-4 meter ned til noen centimeter. Virkemåte: For at sensoren skal starte en måling, sender vi en 10 mikrosekund puls på pinnen som heter "Trig" (trigger). Sensoren sender da ut 8 pulser på 40kHz, og måler tiden det tar før signalet reflekteres. Resultatet vises på Echo-pinnen, som en puls opp til ca. 40ms.
Using the HC-SR04 Ultrasonic Distance Sensor with Arduino - Everything you need to know! |
Bruksområder
Avstandsmåler på "robotbil" |
Ottobot |
Høydemåler på quadcopter |
|
Oppgaver:
Vi avslutter denne bolken med et par enkle oppgaver: 1.1: Bruk biblioteket HCSR04 til å måle avstand til sensoren og skrive målet i centimeter til serieporten. 1.2: Bruk en meterstokk eller målebånd, og finn ut hvor nøyaktig sensoren er. (Filmen laget av min gode kollega og eksamenspartner Knut D. Angelsen.) 2: Legg til en Buzzer og gjør om avstandsmålingen til et lydsignal, slik at den enten piper med høyere frekvens, eller korte pip med kortere mellomrom jo nærmere objektet kommer.
|
int trigPin = 11; // Trigger
int echoPin = 12; // Ekko
int frekvens; //Frekvens pipetone (200Hz-2kHz)
int Buzzer = 8; //Buzzer
long tid, cm;
void setup() {
Serial.begin (9600);
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
pinMode(Buzzer, OUTPUT);
}
void loop() {
digitalWrite(trigPin, LOW);
delayMicroseconds(5);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
tid = pulseIn(echoPin, HIGH);
// Gjør om tid til avstand
cm = (tid/2) / 29.1;
frekvens = 2000 - ( cm * 9 ); //regner ut frekvens i forhold til avstand
if (cm >= 200 || cm <= 0) {
Serial.println("Fritt leide");
digitalWrite(Buzzer,LOW);
} else {
Serial.println("Detektert på avstand");
Serial.print(cm);
Serial.print("cm");
tone(Buzzer,frekvens); //gir pipetone
}
Serial.print("Avstand ");
Serial.print(cm);
Serial.print("cm");
Serial.println();
delay(250);
}