Ultraljudssensor HC-SR04
En ultraljudssensor är en form av sensor som mäter avstånd genom att skicka ut korta ljudpulser. Om ljudpulsen träffar ett objekt reflekteras den tillbaka och fångas upp av sensorn. Från detta beräknas avståndet.
Ultraljudssensorer kan användas t.ex. för att mäta vattennivån i olika tankar eller till applikationer där en känslig sensor behövs av olika anledningar. Ett dörrlarm är ett exempel där en ultraljudssensor skulle kunna användas, även om den ofta kanske inte gör det.
Jag hittade koden för avståndsmätning på https://randomnerdtutorials.com/complete-guide-for-ultrasonic-sensor-hc-sr04/
/*
* created by Rui Santos, https://randomnerdtutorials.com
*
* Complete Guide for Ultrasonic Sensor HC-SR04
*
Ultrasonic sensor Pins:
VCC: +5VDC
Trig : Trigger (INPUT) - Pin11
Echo: Echo (OUTPUT) - Pin 12
GND: GND
*/
int trigPin = 11; // Trigger
int echoPin = 12; // Echo
long duration, cm, inches;
void setup() {
//Serial Port begin
Serial.begin (9600);
//Define inputs and outputs
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
}
void loop() {
// The sensor is triggered by a HIGH pulse of 10 or more microseconds.
// Give a short LOW pulse beforehand to ensure a clean HIGH pulse:
digitalWrite(trigPin, LOW);
delayMicroseconds(5);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
// Read the signal from the sensor: a HIGH pulse whose
// duration is the time (in microseconds) from the sending
// of the ping to the reception of its echo off of an object.
pinMode(echoPin, INPUT);
duration = pulseIn(echoPin, HIGH);
// Convert the time into a distance
cm = (duration/2) / 29.1; // Divide by 29.1 or multiply by 0.0343
inches = (duration/2) / 74; // Divide by 74 or multiply by 0.0135
Serial.print(inches);
Serial.print("in, ");
Serial.print(cm);
Serial.print("cm");
Serial.println();
delay(250);
}
Jag fick denna kod att fungera i Tinkercad
Information från
Källa: https://www.sensorgruppen.se/produkter/sensor/ultraljud/