Pages: [1]   Go Down
Author Topic: Benötige Hilfe, mehrere Dallas 18B20 einlesen  (Read 1188 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Sr. Member
****
Karma: 10
Posts: 359
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hallo,
ich bin neu, programmiere seit kurzem mit dem Arduino und stehe jetzt vor dem ersten großen Problem.
Habe schon viel über Arrays gelesen, komme aber nicht weiter.
Folgendes habe ich probiert, was funktioniert, sind nur Auszüge zum Verständnis:

#include <DallasTemperature.h>
DeviceAddress Sensor0 = { 0x28, 0x08, 0xf9, 0xde, 0x02, 0x00, 0x00, 0xb1 };
DeviceAddress Sensor1 = { 0x28, 0xe8, 0x7f, 0xda, 0x02, 0x00, 0x00, 0xc1 };
DeviceAddress Sensor2 = { 0x28, 0xec, 0x6f, 0xda, 0x02, 0x00, 0x00, 0x61 };

sensors.requestTemperatures();
  tempC = sensors.getTempC(Sensor0);
  Temperatur[0]=tempC;
sensors.requestTemperatures();
  tempC = sensors.getTempC(Sensor1);
  Temperatur[1]=tempC;
u.s.w.
das ist mir aber zu umständich, vor allem weil ich bis zu 10 Sensoren anschließen möchte.
Mein Wunsch ist, das mit einem Array zu machen, in etwa so

DeviceAddress Sensor[10]; und diesen einzelnen dann den  Hex-Wert zuordnen.
Wie geht das und wie rufe ich dann die einzelnen zum Temperatur einlesen auf.
Hab schon lange probiert, krieg es aber irgendwie nicht hin.
Gruß
Bernward

Logged

0
Offline Offline
Full Member
***
Karma: 8
Posts: 153
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hallo Bernhard,
habe mal ein Proramm erstellt, was noch etwas komplexer ist. Musst Du mal im alten Forum nachsehen. Habe es dann auch zur Verkürzung mit Arrays versehen. Da es sehr lang ist, würde ich es Dir per PM zuschicken. Die Teile, was das Internet betrifft kann man ja leicht rauslöschen.
Findest Du unter "Projektvorstellung Temperaturaufzeichnung".

Gruss Kalli
Logged

CH
Offline Offline
God Member
*****
Karma: 19
Posts: 703
Book Writer "Arduino Praxiseinstieg"
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Mit der verwendeten Library (DallasTemperature.h) werden verschiedene Beispielsketche mitgeliefert. Schau dir mal das Beispiel "Multiple" an.

Die Methode sensors.getDeviceCount() ermittelt die Anzahl der Sensoren im Bus. Mit einem Loop über die Sensoren kannst du nun jeweils die Werte einlesen und im Array speichern.

Falls du bisher noch keinen Sensor einlesen konntest, würde ich im ersten Schritt ein einfaches Beispiel austesten. Wenn das Einlesen eines Sensors funktioniert, kannst du die Anzahl der Sensoren erweitern.
Logged

Offline Offline
Sr. Member
****
Karma: 10
Posts: 359
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

hallo,
doch das klappt alles, das einlesen und auch die Anzahl, im Moment sechs Sensoren.
Ich wollte nur nicht sechs mal das
     sensors.requestTemperatures();
      tempC = sensors.getTempC(Sensor0);
       Temperatur[0]=tempC;
aufrufen, sonder über eine for Schleife vereinfachen, und dafür brauch ich ein Array, und das klappt nicht.
Gruß
Bernward
Logged

Pages: [1]   Go Up
Jump to: