INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.

Antwort schreiben 
 
Themabewertung:
  • 0 Bewertungen - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
2 Temperatursensoren anschließen
11.03.2020, 13:46
Beitrag #1
2 Temperatursensoren anschließen
Hallo, ich komme nicht ganz klar wie ich 2 Sensoren anschließen und programmieren kann und abwechselnd auf einem Display abwechselnd anzuzeigen.
ich weis nicht wie ich den zweiten Code schreiben sollte.

Code:
#include <OneWire.h>
OneWire ds(2);
#include <LiquidCrystal.h>
LiquidCrystal lcd(12, 13, 11, 7, 8, 9, 10);

void setup(void) {
  Serial.begin(9600);
  Serial.println("Solar Laderegler Temperatur");
  lcd.begin(20,4);
  lcd.clear();
  lcd.setCursor(0,0);
  lcd.print("Solar Laderegler");
  lcd.setCursor(4,1);
  lcd.print("Temperatur");
  delay(1000);
}

void loop(void) {
float celsius;

  celsius=readDS18B20();
  Serial.println(celsius);
  lcd.setCursor(0,0);
  lcd.print("   Temperatur1   ");
  lcd.setCursor(0,1);
  lcd.print("                ");
  lcd.setCursor(5,1);
  lcd.print(celsius);
  lcd.print((char)223);
  lcd.print("C  ");
  delay(1000);
  celsius=readDS18B20();
  Serial.println(celsius);
  lcd.setCursor(0,0);
  lcd.print("   Temperatur2   ");
  lcd.setCursor(0,1);
  lcd.print("                ");
  lcd.setCursor(5,1);
  lcd.print(celsius);
  lcd.print((char)223);
  lcd.print("C  ");
  delay(1000);
}

float readDS18B20() {

  #define DS18B20_ID 0x28
  float temp;
  byte i, present = 0, data[12], addr[8];
  
  if (!ds.search(addr)) { //Sensor finden
    ds.reset_search();
    delay(1000);
  }
  if (OneWire::crc8( addr, 7) != addr[7]) { return -1000;}
  if (addr[0] != DS18B20_ID && addr[0] != DS18B20_ID) { return -1000;}
  ds.reset();
  ds.select(addr);
  ds.write(0x44, 1); // Start konversion
  delay(1000);        // warten
  present = ds.reset();
  ds.select(addr);
  ds.write(0xBE);    // lesen
  for ( i = 0; i < 9; i++) { // 9 Byte empfangen
    data[i] = ds.read();
  }
  temp = ( (data[1] << 8) + data[0] )*0.0625; // Temperatur berechnen
  return temp;
}


Angehängte Datei(en) Thumbnail(s)
   
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
11.03.2020, 14:10
Beitrag #2
RE: 2 Temperatursensoren anschließen
Ein kurzes Suchen nach "arduino ds18b20 multiple sensors" brachte z.B. folgendes Ergebnis.

Gruß Tommy

"Wer den schnellen Erfolg sucht, sollte nicht programmieren, sondern Holz hacken." (Quelle unbekannt)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
11.03.2020, 14:21
Beitrag #3
RE: 2 Temperatursensoren anschließen
ich bin schon ein stück weiter, aber wie muss ich den letzten code abschnitt (float readDS18B20sen2) ändern das er mir die temperatur anzeigt? Temperatur 1 zeigt korrekt an, Temperatur2 zeigt mir 0 grad an.

Code:
#include <OneWire.h>
OneWire ds1(2);
OneWire ds2(3);
#include <LiquidCrystal.h>
LiquidCrystal lcd(12, 13, 11, 7, 8, 9, 10);

void setup(void) {
  Serial.begin(9600);
  Serial.println("Solar Laderegler Temperatur");
  lcd.begin(20,4);
  lcd.clear();
  lcd.setCursor(0,0);
  lcd.print("Solar Laderegler");
  lcd.setCursor(4,1);
  lcd.print("Temperatur");
  delay(1000);
}

void loop(void) {
float celsius;

  celsius=readDS18B20sen1();
  Serial.println("Temp1");
  Serial.println(celsius);
  lcd.setCursor(0,0);
  lcd.print("   Temperatur1   ");
  lcd.setCursor(0,1);
  lcd.print("                ");
  lcd.setCursor(5,1);
  lcd.print(celsius);
  lcd.print((char)223);
  lcd.print("C  ");
  delay(1000);

  celsius=readDS18B20sen2();
  Serial.println("Temp2");
  Serial.println(celsius);
  lcd.setCursor(0,0);
  lcd.print("   Temperatur2   ");
  lcd.setCursor(0,1);
  lcd.print("                ");
  lcd.setCursor(5,1);
  lcd.print(celsius);
  lcd.print((char)223);
  lcd.print("C  ");
  delay(1000);
  }


float readDS18B20sen1() {

  #define DS18B20_ID 0x28
  float temp;
  byte i, present = 0, data[12], addr[8];
  
  if (!ds1.search(addr)) { //Sensor finden
    ds1.reset_search();
    delay(1000);
  }
  if (OneWire::crc8( addr, 7) != addr[7]) { return -1000;}
  if (addr[0] != DS18B20_ID && addr[0] != DS18B20_ID) { return -1000;}
  ds1.reset();
  ds1.select(addr);
  ds1.write(0x44, 1); // Start konversion
  delay(1000);        // warten
  present = ds1.reset();
  ds1.select(addr);
  ds1.write(0xBE);    // lesen
  for ( i = 0; i < 9; i++) { // 9 Byte empfangen
    data[i] = ds1.read();
  }
  temp = ( (data[1] << 8) + data[0] )*0.0625; // Temperatur berechnen
  return temp;
  }
  
  float readDS18B20sen2() {

  #define DS18B20_ID 0x28
  float temp;
  byte i, present = 0, data[12], addr[8];
  
  if (!ds2.search(addr)) { //Sensor finden
    ds2.reset_search();
    delay(1000);
  }
  if (OneWire::crc8( addr, 7) != addr[7]) { return -1000;}
  if (addr[0] != DS18B20_ID && addr[0] != DS18B20_ID) { return -1000;}
  ds2.reset();
  ds2.select(addr);
  ds2.write(0x44, 1); // Start konversion
  delay(1000);        // warten
  present = ds1.reset();
  ds2.select(addr);
  ds2.write(0xBE);    // lesen
  for ( i = 0; i < 9; i++) { // 9 Byte empfangen
    data[i] = ds2.read();
  }
  temp = ( (data[1] << 8) + data[0] )*0.0625; // Temperatur berechnen
  return temp;
  }
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
11.03.2020, 14:35
Beitrag #4
RE: 2 Temperatursensoren anschließen
Du kannst mehrere DS18B20 gemeinsam betreiben, ohne jedem einen Anschluss zu geben. Manches Mal hilft es, die Antworten auch zu lesen.

Gruß Tommy

"Wer den schnellen Erfolg sucht, sollte nicht programmieren, sondern Holz hacken." (Quelle unbekannt)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
11.03.2020, 14:37
Beitrag #5
RE: 2 Temperatursensoren anschließen
(11.03.2020 14:35)Tommy56 schrieb:  Du kannst mehrere DS18B20 gemeinsam betreiben, ohne jedem einen Anschluss zu geben. Manches Mal hilft es, die Antworten auch zu lesen.

Gruß Tommy

funktioniert das dan auch ohne probleme auf meinen lcd display? dan muss ich sozusagen den kompletten sketch umschreiben oder?
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
11.03.2020, 15:01
Beitrag #6
RE: 2 Temperatursensoren anschließen
(11.03.2020 14:37)Andi-1090 schrieb:  funktioniert das dan auch ohne probleme auf meinen lcd display? dan muss ich sozusagen den kompletten sketch umschreiben oder?

Du musst den Sketch anpassen.
Ob das bei dir problemlos funktioniert, können wir so nicht sagen.

Gruß Dieter

I2C = weniger ist mehr: weniger Kabel, mehr Probleme. Cool
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
11.03.2020, 15:07
Beitrag #7
RE: 2 Temperatursensoren anschließen
(11.03.2020 15:01)hotsystems schrieb:  
(11.03.2020 14:37)Andi-1090 schrieb:  funktioniert das dan auch ohne probleme auf meinen lcd display? dan muss ich sozusagen den kompletten sketch umschreiben oder?

Du musst den Sketch anpassen.
Ob das bei dir problemlos funktioniert, können wir so nicht sagen.

Wahrscheinlich nicht Big GrinBig Grin
Ich habe jetzt alles laut dem link nachgebaut und den sketch hochgeladen. jetzt versuche ich alles auf das lcd zu bekommen. Learning by Doing.
Vielen dank schonmal für die Hilfe.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
11.03.2020, 15:12
Beitrag #8
RE: 2 Temperatursensoren anschließen
(11.03.2020 15:07)Andi-1090 schrieb:  Wahrscheinlich nicht Big GrinBig Grin
Ich habe jetzt alles laut dem link nachgebaut und den sketch hochgeladen. jetzt versuche ich alles auf das lcd zu bekommen. Learning by Doing.
Vielen dank schonmal für die Hilfe.

Wichtig ist doch erst mal, dass du alle Sensoren auf dem seriellen Monitor sehen kannst. Dann kommt der nächste Schritt. Niemals den 3. Schritt vor dem 1. Schritt machen. Das geht schief.

Gruß Dieter

I2C = weniger ist mehr: weniger Kabel, mehr Probleme. Cool
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  Steuerung Lüftungsanlage über Temperatursensoren roller64 7 1.917 06.04.2019 10:26
Letzter Beitrag: rkuehle
  DS18S20 Temperatursensoren Franz54 5 1.946 18.04.2017 18:53
Letzter Beitrag: Franz54
  Rotary Encoder - Anschließen King2k7 10 10.821 18.01.2016 12:38
Letzter Beitrag: hotsystems

Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste