Hallo zusammen,
da ich totaler Anfänger bin was Arduino und Elektrotechnik angeht, wäre es super, wenn die Antworten möglichst einfach beschrieben sind Falls ich mich falsch ausdrücke, bitte korrigiert mich, damit ich das richtig lerne!
Also ich möchte eigentlich nur mein Arduino mit dem DS1621 Temperatursensor verbinden. Ich habe im Internet in einem Forum bereits das passende Programm gefunden aber ich habe noch ein wenig Probleme mit der Verkabelung.
Der DS1621 hat 8 Pins (SDA,SCL,Tout,GND,A2,A1,A0,VDD)
Als erstes habe ich vom Mini Arduino Pro VCC -> VDD und GND -> GND angeschlossen. Ich denke das sollte doch schon mal richtig sein.
In dem Programm steht :
// SDA pin is Analog4
// SCL pin is Analog5
// DS1621 has A2, A1, and A0 pins connected to GND
Da kommt schon meine 1. Frage. Auf dem Board gibt es A0-A3 und laut Spezifikation des Arduino-Boards sind das Analog-Inputs. Müssen die wirklich an analog angeschlossen werden? Müssen die nicht an digital angeschlossen werden?
Auf dem Board gibt es noch 2-13 Anschlüsse, daher habe ich SDA->4 und SCL -> 5 angeschlossen.
Nun steht dort noch das ich vom Chip A0,A1 und A2 an GND anschließen soll. Ich habe an alle drei Pins ein Kabel angelötet und die andere Seite zusammen gelötet. An diesen Dreier-Block habe ich dann noch ein Kabel zum GND Pin gelötet.
Da weder etwas in Rauch aufgegangen ist noch irgendwas stinkt, die Ausgabe aber immer 0 ist, würde ich vermuten, dass etwas falsch angeschlossen ist. Kann mir da evt jemand helfen?
Außerdem habe ich noch die Frage wie das mit der Adressierung funktioniert? In dem DS1621 Beispiel steht :
#define DEV_ID 0x90 >> 1 // shift required by wire.h
void setup()
{
Serial.begin(9600);
Wire.begin();
Wire.beginTransmission(DEV_ID); // connect to DS1621 (#0)
Wire.send(0xAC); // Access Config
Wire.send(0x02); // set for continuous conversion
Wire.beginTransmission(DEV_ID); // restart
Wire.send(0xEE); // start conversions
Wire.endTransmission();
}
void loop()
{
int tempC = 0;
int tempF = 0;
delay(1000); // give time for measurement
Wire.beginTransmission(DEV_ID);
Wire.send(0xAA); // read temperature
Wire.endTransmission();
Wire.requestFrom(DEV_ID, 1); // request one byte from DS1621
tempC = Wire.receive(); // get whole degrees reading
tempF = tempC * 9 / 5 + 32; // convert to Fahrenheit
Serial.print(tempC);
Serial.print(" / ");
Serial.println(tempF);
}
0x90 und 0xAA etc. Wo steht, an welchen Port er das Signal schickt und wo er das Ergebnis her bekommt? Gibt es dafür irgendwelche Anleitungen wie das funktioniert? Englisch wäre auch okay. Das 0x90 etc Hex-Werte sind ist mir klar, aber woher kenne ich die?
Vielen vielen Dank und viele Grüße und ein schönes Wochenende,
Hauke