Inhaltsverzeichnis:

Erhalten Sie die Seriennummer eines DS18B20 mit einem Arduino - Gunook
Erhalten Sie die Seriennummer eines DS18B20 mit einem Arduino - Gunook

Video: Erhalten Sie die Seriennummer eines DS18B20 mit einem Arduino - Gunook

Video: Erhalten Sie die Seriennummer eines DS18B20 mit einem Arduino - Gunook
Video: Temperatursteuerung selber bauen mit einem Arduino und dem DS18B20 2024, Juli
Anonim
Holen Sie sich die Seriennummer eines DS18B20 mit einem Arduino
Holen Sie sich die Seriennummer eines DS18B20 mit einem Arduino

Dies ist eine Kurzanleitung, wie Sie die einzelnen Seriennummern Ihrer DS18B20 1-Draht-Temperatursensoren erhalten.

Dies ist praktisch für Projekte, die mehrere Sensoren erfordern.

Dinge, die du brauchst:

  • Arduino 5v (UNO, Mega, Pro Mini usw.) - Arduino UNO R3 - AliExpress
  • Temperatursensor DS18B20 - AliExpress - eBay
  • 4.7k - 1/4w Widerstand THT - AliExpress - eBay
  • Steckbrett - AliExpress - eBay
  • Überbrückungsdrähte - Stecker zu Stecker - AliExpress - eBay
  • Ein Computer mit installierter Arduino IDE

Schritt 1: Fügen Sie die erforderliche Bibliothek zur Arduino IDE hinzu

Fügen Sie die erforderliche Bibliothek zur Arduino IDE hinzu
Fügen Sie die erforderliche Bibliothek zur Arduino IDE hinzu
  1. Öffnen Sie die Arduino-IDE (ich verwende 1.8.1)
  2. Klicken Sie auf „Skizze“-> „Bibliothek einschließen“-> „Bibliotheken verwalten…“
  3. Wählen Sie die Suchleiste aus und geben Sie "dallas" ein
  4. Klicken Sie auf "DallasTemperature" und klicken Sie auf "Installieren".

Alternativ können Sie die Bibliothek hier herunterladen:

Diese Bibliothek enthält die OnWire-Bibliothek.

Schritt 2: Verdrahten Sie den DS18B20

Verdrahten Sie den DS18B20
Verdrahten Sie den DS18B20
Verdrahten Sie den DS18B20
Verdrahten Sie den DS18B20

Verbinden Sie mit einem Steckbrett +5V, GND und Digital Pin 2 (Pin 2 ist bereits in der Beispielskizze eingestellt) vom Arduino mit Male-to-Male-Steckbrett-Jumpern.

Verbinden Sie den DS18B20 parallel mit den 3x Klemmleisten auf dem Steckbrett.

  • Pin 1 (GND) -> GND (Masse 0V)
  • Pin 2 (DATEN) -> Digital Pin 2
  • Pin 3 (Vdd) -> +5V

Für den normalen Leistungsmodus schließen Sie einen 4,7K-Widerstand von +5V an den digitalen Pin-2-Draht auf dem Steckbrett an.

Der folgende Link ist eine großartige Ressource für den DS18B20 1-Draht-Temperatursensor.

www.tweaking4all.com/hardware/arduino/ardu…

Schritt 3: Laden Sie die Beispielskizze "Single"

Laden Sie die Beispielskizze
Laden Sie die Beispielskizze
Laden Sie die Beispielskizze
Laden Sie die Beispielskizze

Sobald Sie es verdrahtet haben, sind Sie bereit, die Dallas Temperature "Single" SketchOpen Arduino IDE zu laden (ich verwende 1.8.1) Klicken Sie auf "Datei" -> "Beispiele" -> "Dallas Temperatur" -> "Single" habe ich hinzugefügt im Verzug (5000); auf Zeile 103, damit ich die Seriennummer kopieren kann. Klicken Sie auf "Tools" -> "Serial Monitor", stellen Sie sicher, dass die Baudraten mit meinen übereinstimmen. Wenn Sie Ihre Skizze nicht hochgeladen haben, überprüfen Sie Ihr Board, Port, USB-Treiber usw.

Schritt 4: Kopieren Sie die Seriennummer

Kopieren Sie die Seriennummer
Kopieren Sie die Seriennummer
Kopieren Sie die Seriennummer
Kopieren Sie die Seriennummer

Vom "Serial Monitor" sehen Sie in der 4. Zeile "Device 0 Address: xxxxxxxxxxxxxxxx"

Dies ist die Seriennummer des DS18B20

Wenn es "0000000000000000" ist, liegt ein Problem beim Lesen Ihres DS18B20 vor.

Markieren Sie es mit Ihrer Maus und drücken Sie STRG + C auf Ihrer Tastatur, dann fügen Sie es in Notepad ein

Für meine anderen Projekte verwendet mein Code ein Array dieser Zahlen. Ich habe die HEX-Zeichenfolge in das folgende Format umformatiert.

Geräteadresse tempSensorSeriell[9]= {

{0x28, 0xFF, 0x07, 0xA6, 0x70, 0x17, 0x04, 0xB5}, {0x28, 0xFF, 0xB2, 0xA6, 0x70, 0x17, 0x04, 0x28}, {0x28, 0xFF, 0x42, 0x98, 0x070, 0x17,, 0xD3}, {0x28, 0xFF, 0x86, 0xA8, 0x70, 0x17, 0x04, 0xA6}, {0x28, 0xFF, 0x2B, 0x65, 0x71, 0x17, 0x04, 0x76}, {0x28, 0xFF, 0x66, 0x62, 0, 0x17, 0x04, 0xF5}, {0x28, 0xFF, 0xD9, 0x9B, 0x70, 0x17, 0x04, 0x9C}, {0x28, 0xFF, 0x98, 0x6A, 0x71, 0x17, 0x04, 0xED}, {0x28, 0xFF,, 0x42, 0x71, 0x17, 0x04, 0x4C} };

Schritt 5: Fertig

Fertig
Fertig

Jetzt können Sie jeden einzelnen DS18B20 1-Wire-Temperatursensor in Ihrem Code identifizieren und eine Funktion wie diese verwenden:

float getTemperature(byte j){

sensoren.requestTemperaturesByAddress(tempSensorSerial[j]);

float tempC = Sensoren.getTempC(tempSensorSerial[j]);

RücklauftempC;

}

Empfohlen: