DS1621 mit Arduino Uno in SimulIDE 1.1.0-SR2 at Rev 260312

OP #8052477
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!

Angehängte Dateien:
: Bearbeitet durch Moderator
#8052479
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
OP #8052542
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 :).

Angehängte Dateien:
#8052588
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
#8053278
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
#8053623
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".

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren