Dieser Ultraschall-Entfernungsmesser HC-SR04 wurde mit dem Temperatursensor LM35 erweitert.
Aus der Schule können Sie sich daran erinnern, dass die Schallgeschwindigkeit von der Luftdichte und die Luftdichte von der Temperatur abhängt.
Wir werden die Temperatur mit dieser Formel berechnen
temp2 = (temp / 1023,0) * 5,0 * 1000/10;
Wobei temp2 der fertige Temperaturwert nach der Formel ist,
Und wo Temp ist der Rohwert vom Sensor.
Was wir brauchen:
- Ultraschall-Entfernungsmesser HC-SR04
- Arduino
- Steckbrett
- Jumper
- Thermistor LM35 (Temperatursensor)
Beachten Sie, dass HC-SR04 in zwei Formen erhältlich ist:
Hier habe ich eine gute und sie misst stabil die Entfernung.
Sie messen beide von 4 cm bis 400 cm.
Angetrieben von 3,3 bis 5 v
Zunächst verspotten wir alles auf einem Steckbrett.
Ultraschallsensor:
- GND - gnd
- Echo - 3 Stifte
- Trig - 2 Stifte
- Vcc - 5v
Thermistor LM35:
- 1 - 5v
- 2 - A0
- 3 - GND
Es sollte so sein:
Als nächstes füllen wir die Skizze aus.
Bibliothek für HC-SR04 Sensor herunterladen -
Skizze herunterladen -
#include // Verbinde die Bibliothek, um mit dem Ultraschallsensor HC-SR04 zu arbeiten
iarduino_HC_SR04 hcsr (2,3); // Kontakte Trig und Echo bezeichnen
int temp = 0; // Rohtemperatur
float temp2 = 0; // bereit Temperaturwert
void setup () {// 1 Mal ausführen
Serial.begin (9600); // Starten Sie den Port Monitor
pinMode (A0, INPUT); // Kontakt A0 als Eingang bezeichnen
}}
void loop () {// wiederholt sich unendlich oft
temp = analogRead (A0); // Lesen Sie den Wert von Kontakt A0 und weisen Sie ihm die Variable temp zu
temp2 = (temp / 1023,0) * 5,0 * 1000/10; // Berechne den Rohwert gemäß der Formel, um den fertigen Temperaturwert zu erhalten
Serial.println (hcsr.distance (temp2)); // schreibe den Bereitschaftsbereich in den Port Monitor
Verzögerung (1000); // 1 Sekunde verzögern
}}
Und hier ist eine Skizze für ein LCD-Display.
Skizze herunterladen -
#include // Verbinde die Bibliothek, um mit dem Ultraschallsensor HC-SR04 zu arbeiten
#include // Verbinde die Bibliothek, um mit der Anzeige auf dem I2C-Bus zu arbeiten
LiquidCrystal_I2C lcd (0x27, 16, 2); // bezeichnen (Adresse, Spalten, Zeilen)
iarduino_HC_SR04 hcsr (2,3); // Kontakte Trig und Echo bezeichnen
int temp = 0; // Rohtemperatur
float temp2 = 0; // bereit Temperaturwert
void setup () {// 1 Mal ausführen
lcd.init (); // Anzeige initialisieren
lcd.backlight (); // Hintergrundbeleuchtung des Displays einschalten
pinMode (A0, INPUT); // Kontakt A0 als Eingang bezeichnen
}}
void loop () {// wiederholt sich unendlich oft
temp = analogRead (A0); // Lesen Sie den Wert von Kontakt A0 und weisen Sie ihm die Variable temp zu
temp2 = (temp / 1023,0) * 5,0 * 1000/10; // Berechne den Rohwert gemäß der Formel, um den fertigen Temperaturwert zu erhalten
lcd.setCursor (2, 0); // Setzen Sie den Cursor auf 2 Spalten und 0 Zeilen
lcd.print (temp2); // schreibe die Entfernung
lcd.setCursor (5,0); // Platziere den Cursor in der 5. Spalte und der 0. Zeile
lcd.print ("cm"); // schreibe cm
Verzögerung (1000); // 1 Sekunde verzögern
}}
Schreibe Kommentare und Fragen, ich werde alles beantworten!