Forum: Mikrocontroller und Digitale Elektronik DS1621 mit Arduino Uno in SimulIDE 1.1.0-SR2 at Rev 260312


von Peter (david_h88)


Angehängte Dateien:

Lesenswert?

Hey Leute,

ich möhte jetzt einen Sensor mit meinen Arduino Uno in der SimulIDE 
verbinden. Ausgwählt habe ich den DS1621. Zur Schaltplan- und 
Firmwareerstellung habe ich die dazugehörigen Datenblätter gelesen und 
mir  von ChatGPT zur Überprüfung einen Entwurf zeichnen/programmieren 
lassen. Dieser ist im Bild 1 dargestellt. Darin ist zu erkennen, dass 
die Adresse des Sensor's (Slaves) über A0, A1 und A2 vorgegeben wird. 
Zur Kommunikation über I²C ist Pin3 und Pin4 mit SDA und SCL verbunden, 
wobei in beide Leitungen ChatGPT zwei PullUp-Widerstände gezeichnet hat 
(keine Ahnung, woher es diese Information hat, aber in den Datenblättern 
habe ich nichts dazu gefunden??). Der ermittelte Temperaturwert Tout 
wird ja über 2 Bytes dargestellt und habe ich demzufolge den digitalen 
Eingangspin 4 zugeführt. Ist das so richtig?
Die Firmware sieht wie folgt aus:
1
#include <Wire.h>
2
3
#define DS1621_ADDR 0x48
4
#define CMD_START_CONVERT 0xEE
5
#define CMD_READ_TEMP 0xAA
6
#define CMD_ACCESS_CONFIG 0xAC
7
8
9
void setup() {
10
  // put your setup code here, to run once:
11
  pinMode(4, INPUT);
12
  Serial.begin(9600);
13
  Wire.begin();
14
15
  Serial.println("DS1621 Temperaturmessung startet");
16
17
  Wire.beginTransmission(DS1621_ADDR);
18
  Wire.write(CMD_START_CONVERT);
19
  Wire.endTransmission();
20
}
21
22
void loop() {
23
  // put your main code here, to run repeatedly:
24
  float temp = readTemperature();
25
  int wert = digitalRead(4);
26
27
  Serial.print("Temperatur: ");
28
  Serial.print(temp);
29
  Serial.println("   °C");
30
}
31
32
float readTemperature(){
33
  int temp_high = 0;
34
  int temp_low = 0;
35
36
  Wire.beginTransmission(DS1621_ADDR);
37
  Wire.write(CMD_READ_TEMP);
38
  Wire.endTransmission();
39
40
  Wire.requestFrom(DS1621_ADDR, 2);
41
42
  if (Wire.available()>=2) 
43
  {
44
    temp_high= Wire.read();
45
    temp_low= Wire.read();
46
  }
47
48
  float temperature = temp_high;
49
50
  return temperature;
51
}

Stimmt diese oder sind die von ChatGPT generierten Lösungen mit Vorsicht 
zu genießen? Kann ich die Aktualwerte aus der Firmware beim Laufen der 
Simulation irgendwie abfragen? In SimulIDE/Arduino IDE habe ich keinen 
Reiter dazu gefunden? Vielen Dank euch!
: Bearbeitet durch Moderator
von Hans W. (hanswieland)


Lesenswert?

Peter schrieb:
> Stimmt diese

Probiere es aus, dann weisst du es.

> oder sind die von ChatGPT generierten Lösungen mit Vorsicht
> zu genießen?

Immer: ja. Auf die Ausgaben von LLM ist kein Verlass.

Vin soll mit Sicherheit nicht mit GND verbunden werden. Das ergibt 
keinen Sinn.

> Ausgwählt habe ich den DS1621.

Der I2C Bus kann ohne Pull-Up Widerstände nicht funktionieren. 100 Ohm 
ist falsch. 1-3 mA sollen bei Low Pegel fließen, also eher etwa 3 kOhm 
Vermutlich verwendest du ein Modul das neben dem Chip auch Widerstände 
enthält.
: Bearbeitet durch User
von Arduino F. (Firma: Gast) (arduinof)


Lesenswert?

Peter schrieb:
> Zur Kommunikation über I²C ist Pin3 und Pin4 mit SDA und SCL verbunden,

I2C liegt beim UNO auf A4 und A5, nicht 3 und 4
von Hans W. (hanswieland)


Lesenswert?

Zwieschen die Ausgaben würde ich eine Pause einbauen.

Die Werte in den Variablen "wert" und "temp_low" werden nicht genutzt. 
Aktiviere alle Compiler Warnungen, der meldet sowas meistens.
: Bearbeitet durch User
von Peter (david_h88)


Angehängte Dateien:

Lesenswert?

Gut...vielen Dank!...habe die angesprochenen Fehler korrigiert (Bild 2). 
Trotzdem zeigt mir das Oszilloskop/Logic Analyzer an der 
Verbindunganleitung von Tout zu Eingangspin 2 noch nichts an (habe die 
Temperatur dabei variiert?? Ich habe ChatGPT probehalber mal gefragt, 
warum 1-3mA bei Low-Pegel fließen sollten. Die Antwort war umfangreich, 
präzise und sehr plausibel. Sollte man trotzdem auch die Antowrten zu 
konkreten Fragestellungen von ChatGPT mit Vorsicht genießen oder kann 
man sich darauf mittlerweile verlassen? Immerhin würde es dann einiges 
an aufwendiger Recherche im Netz ersparen. Danke :).
von H. H. (hhinz)


Lesenswert?

Peter schrieb:
> habe die angesprochenen Fehler korrigiert (Bild 2).

Du weißt aber schon, dass der DS1621 8 Anschlüsse hat?
von Hans W. (hanswieland)


Lesenswert?

Peter schrieb:
> Die Antwort war umfangreich, präzise und sehr plausibel.

Das ist der Trick. LLM können überzeugend nachplappern, ohne den 
Sachverhalt zu begreifen. Jr weniger passendes Trainingsmaterial, umso 
geringer die Chance auf eine richtige Antwort, bis hin zu einer frei 
erfundenen (Halluzination). ChatGPT ist so konfiguriert, das er fast 
immer so tut, als wüsste er Bescheid. Ein richtiger Blender.

> Sollte man ... die Antworten ... mit
> Vorsicht genießen

ja  immer

> oder kann man sich darauf mittlerweile verlassen?

niemals

Peter schrieb:
> Trotzdem zeigt mir das Oszilloskop/Logic Analyzer an der
> Verbindunganleitung von Tout zu Eingangspin 2 noch nichts an (habe die
> Temperatur dabei variiert??

Das ist ein Alarm-Ausgang. Der wird erst etwas tun, nachdem der Chip per 
Befehl entsprechend konfiguriert wurde.
: Bearbeitet durch User
von Peter (david_h88)


Lesenswert?

> Du weißt aber schon, dass der DS1621 8 Anschlüsse hat?

Habe ich in Produktdatenblättern gesehen. In SimulIDE verfügt der Sensor 
aber nur über 6 Anschlüsse?? Konfigurieren kann man den DS1621 in der 
Simulationsumgebung auch nicht??
von H. H. (hhinz)


Lesenswert?

Peter schrieb:
> In SimulIDE verfügt der Sensor
> aber nur über 6 Anschlüsse??

Ist halt Murks.
von Peter (david_h88)


Angehängte Dateien:

Lesenswert?

> Ist halt Murks.

Hmm...ich habe soeben mal mit den DHT22 an Arduino versucht. Da lassen 
sich die Leitungen bis auf die Datenleitung nicht entsprechend den Bild 
(Siehe Anhang) verbinden/zeichnen... Habt ihr das gleiche Problem mit 
simulIDE??
von Wastl (hartundweichware)


Lesenswert?

Peter schrieb:
> Habt ihr das gleiche Problem mit simulIDE??

Frag halt mal die KI.

Ist halt Murks.
von Frank O. (frank_o)


Lesenswert?

Peter schrieb:
> Habt ihr das gleiche Problem mit
> simulIDE??
Außer für dich habe ich das nie benutzt und werde das auch nicht.
Wo bleibt der Spaß, wenn man das nicht echt probiert und nur in so einem 
ziemlich wenig aufregenden Programm?
Bei WOKWI sehen die W2812 wenigstens wie die echten aus.
Aber auch da, es ist doch viel schöner du siehst dein Ergebniss am 
eigenen Controller.
Aber nur meine Meinung.
: Bearbeitet durch User
von Peter (david_h88)


Lesenswert?

Hab es. In den Beispielsimulationen ist tatsächlich zu sehen, dass nicht 
alle Pin's der Sensoren belegt sind/sein brauchen....
von H. H. (hhinz)


Lesenswert?

Peter schrieb:
> Hab es. In den Beispielsimulationen ist tatsächlich zu sehen, dass
> nicht
> alle Pin's der Sensoren belegt sind/sein brauchen....

Ein Simulationsprogramm von Murksern für Murkser.
von Manfred P. (pruckelfred)


Lesenswert?

Peter schrieb:
> Hab es.

Was "Hab es" - nutze die Zitierfunktion.

> In den Beispielsimulationen ist tatsächlich zu sehen, dass nicht
> alle Pin's der Sensoren belegt sind/sein brauchen....

Dann baue es so und lasse Dein ChatGPT erklären, wie es das zur Funktion 
bekommt.

Wenn das nichts wird und Du hier fragst, gehe den hier geschriebenen 
Hinweisen nach.

Nicht ohne Grund werden gewisse Dinge angezweifelt und auf Datenblätter 
/ Grundlagen verwiesen - hier sind viele Leute aktiv, die Deinen Sensor 
ohne KI-Gekasper und zweifelhafte Simulationen zur Funktion bekämen.

Die nächste Variante wäre jetzt "ich melde mich ab, weil ihr alle so 
böse zu mir seid".
von Wastl (hartundweichware)


Lesenswert?

H. H. schrieb:
> Ein Simulationsprogramm von Murksern für Murkser.

Fritzings Fritz lässt grüssen.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.