HaWe
22.08.2018, 15:47
hallo,
aus gegebenem Anlass hier auch mal vergleichsweise ein Arduino Sketch, um den HC-SR04 per Arduino IDE zu programmieren. Habe ergänzend eine Temperaturkompensation eingefügt und hoffe, sie stimmt 8)
/*
* HC-SR04 example sketch
*
* https://create.arduino.cc/projecthub/Isaac100/getting-started-with-the-hc-sr04-ultrasonic-sensor-036380
*
* by Isaac100
* verändert + ergänzt: 2018-08-22 by HaWe
*
*/
const int trigPin = 9;
const int echoPin = 10;
double duration, distance;
void setup() {
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
Serial.begin(9600);
}
void loop() {
double dTemp = 0.0;
double Temp = 20.0;
double sonicspeed;
dTemp = Temp - 20.0 ; // optional: temperat. by thermometer <<<<<<<<<<
sonicspeed = 343.421 + (dTemp * 0.576); // optional: temperat. compens.
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
duration = pulseIn(echoPin, HIGH);
distance = (duration * sonicspeed) / 20000.0;
Serial.print("Distance: ");
Serial.println(distance);
delay(100);
}
Quelle: https://create.arduino.cc/projecthub/Isaac100/getting-started-with-the-hc-sr04-ultrasonic-sensor-036380
Anm.: Der Code funktioniert theoretisch auch mit ARM (3.3V), aber man muss hier die pin- und signal level anpassen, denn der HC-SR04 arbeitet mit 5V Vcc.
aus gegebenem Anlass hier auch mal vergleichsweise ein Arduino Sketch, um den HC-SR04 per Arduino IDE zu programmieren. Habe ergänzend eine Temperaturkompensation eingefügt und hoffe, sie stimmt 8)
/*
* HC-SR04 example sketch
*
* https://create.arduino.cc/projecthub/Isaac100/getting-started-with-the-hc-sr04-ultrasonic-sensor-036380
*
* by Isaac100
* verändert + ergänzt: 2018-08-22 by HaWe
*
*/
const int trigPin = 9;
const int echoPin = 10;
double duration, distance;
void setup() {
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
Serial.begin(9600);
}
void loop() {
double dTemp = 0.0;
double Temp = 20.0;
double sonicspeed;
dTemp = Temp - 20.0 ; // optional: temperat. by thermometer <<<<<<<<<<
sonicspeed = 343.421 + (dTemp * 0.576); // optional: temperat. compens.
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
duration = pulseIn(echoPin, HIGH);
distance = (duration * sonicspeed) / 20000.0;
Serial.print("Distance: ");
Serial.println(distance);
delay(100);
}
Quelle: https://create.arduino.cc/projecthub/Isaac100/getting-started-with-the-hc-sr04-ultrasonic-sensor-036380
Anm.: Der Code funktioniert theoretisch auch mit ARM (3.3V), aber man muss hier die pin- und signal level anpassen, denn der HC-SR04 arbeitet mit 5V Vcc.