Forum: Mikrocontroller und Digitale Elektronik ADS1115 lässt Arduino Uno einfrieren


von t800w (Gast)


Angehängte Dateien:

Lesenswert?

Hallo,
ich habe einen ADS1115 an einen Arduino angeschlossen. Doch immer wenn 
ich das SCL-Kabel in den Arduino stecke friert dieser komplett ein, und 
stoppt seinen Arbeitsauftrag/ Rechenprozess. Ich habe ein Scanner auf 
meinen Arduino auf meinen Arduino hochgeladen, dieser zeigt im Serielen 
Monitor nur "Scanning..." an, und tut ebenfalls nichts. Der 
Schaltungsaufbau ist oben im Bild nachzuvollziehen.

Das Scanner Programm lautet folgendermaßen:

#include <Wire.h>

void setup(){

   Wire.begin();
   Serial.begin(9600);
   while (!Serial);             // Leonardo: wait for serial monitor
   Serial.println("\nI2C Scanner");
}

void loop(){

   byte error, address;
   int nDevices;
   Serial.println("Scanning...");
   nDevices = 0;
   for(address = 1; address < 127; address++ )


   {
     // The i2c_scanner uses the return value of
     // the Write.endTransmisstion to see if
     // a device did acknowledge to the address.

  Wire.beginTransmission(address);
  error = Wire.endTransmission();
  if (error == 0){
    Serial.print("I2C device found at address 0x");
      if (address<16)
        Serial.print("0");
        Serial.print(address,HEX);
        Serial.println("  !");
        nDevices++;
      }
    else if (error==4)
    {

    Serial.print("Unknown error at address 0x");
    if (address<16)
       Serial.print("0");
       Serial.println(address,HEX);
    }
  }
  if (nDevices == 0)
    Serial.println("No I2C devices found\n");
  else
    Serial.println("done\n");
    delay(5000);           // wait 5 seconds for next scan
}

von Arduinoquäler (Gast)


Lesenswert?

Wenn ich Augenkrebs bekomme um deinen Schaltplan zu
erkennen dann lass ich es lieber.

Muss unerhört schwierig sein ein vernünftiges, leicht
lesbares Bild hier hochzuladen.

von t800w (Gast)


Lesenswert?


von Hornoxe (Gast)


Angehängte Dateien:

Lesenswert?

Arduinoquäler schrieb:
> Wenn ich Augenkrebs bekomme um deinen Schaltplan zu
> erkennen dann lass ich es lieber.

Ich habe Erbarmen mit Dir.

>
> Muss unerhört schwierig sein ein vernünftiges, leicht
> lesbares Bild hier hochzuladen.

Ist es. Aber ich habe keine Mühen gescheut, um Deine Augen zu schonen.
Nun aber frisch an's Werk! Ausreden gibt es ja nun nicht mehr.

von t800w (Gast)


Lesenswert?

@Hornoxe

Merci

von Max D. (max_d)


Lesenswert?

Ich wette die Kiste hängt im clock-strechting fest.
Miss mal den Pegel auf scl

von Stromtuner (Gast)


Angehängte Dateien:

Lesenswert?

Ich will auch mal. ;)
---
Schick doch mal einen General Call auf den weg (alles Nullen), dann 
sollte er mit dem 9ten Bit ein Ack senden.
Pullup Widerstände drann?
Welche Bibliothek? "Wire.h" sehe ich selber. Was macht die auf dem Bus?
Wofür scannst Du den kompletten Adressbereich? Die I2C Adresse ist doch 
fest eingestellt?
Wackel 8mal mit SCL und lass SDA auf LOW. Bei neunten Wackeln liest Du 
SDA ein, muss low werden.
Datenblatt schon gelesen? Ich habe es auch eben nur kurz überflogen...

Ich tippe. SCL liegt auf Masse und nicht ADDR.

von Stromtuner (Gast)


Lesenswert?

Oder ein Lötklecks zwischen GND und SCL

von t800w (Gast)


Lesenswert?

Max D. schrieb:
> Ich wette die Kiste hängt im clock-strechting fest.
> Miss mal den Pegel auf scl


Der Wert auf SCL nähert sich 1,6 Volt an.

von t800w (Gast)


Lesenswert?

Stromtuner schrieb:
> Oder ein Lötklecks zwischen GND und SCL

Hab ich sogar mit einer Lupe nach geschaut, da ist kein Lötzinn.

von Heiko G. (heikog)


Lesenswert?

t800w schrieb:
> Ich kann nix für die Qulität, deshalb hier der Link:
>
> 
http://henrysbench.capnfatz.com/henrys-bench/arduino-voltage-measurements/arduino-ads1115-module-getting-started-tutorial/

Wenn du genau die Schaltung dieser Webseite verwendest kannst du ja auch 
das Beispielprogramm von dort nehmen um zu testen ob die Schaltung in 
Ordnung ist. Dann weisst du zumindest ob die Hardware ein Problem hat 
oder ob es an der Software liegt.

von t800w (Gast)


Lesenswert?

Stromtuner schrieb:

> Schick doch mal einen General Call auf den weg (alles Nullen), dann
> sollte er mit dem 9ten Bit ein Ack senden.
  Ich bin relativ neu auf dem Gebiet, wie kann ich das senden?

> Pullup Widerstände drann?
  Die sind anscheinend in dem Baustein integriert

> Welche Bibliothek? "Wire.h" sehe ich selber. Was macht die auf dem Bus?
  Soll ich die rausschmeisen?

> Wofür scannst Du den kompletten Adressbereich? Die I2C Adresse ist doch
> fest eingestellt?
  Ja, ist er. Habe ich mich auch schon gefragt, doch ein Freund hat mir 
empfohlen genau das Programm zu benutzen

> Wackel 8mal mit SCL und lass SDA auf LOW. Bei neunten Wackeln liest Du
> SDA ein, muss low werden.
  Soll ich SDA Schaltungstechnisch auf LOW setzen, also erden, oder soll 
ich das via das Programm machen. Setze ich SDA auf GND, so zeigt das 
Messgerät beim neunten mal 5V.(Ich glaube hier liegt das Problem)

> Ich tippe. SCL liegt auf Masse und nicht ADDR.
  Schaltungsmäßig?

von t800w (Gast)


Lesenswert?

Heiko G. schrieb:
> Wenn du genau die Schaltung dieser Webseite verwendest kannst du ja auch
> das Beispielprogramm von dort nehmen um zu testen ob die Schaltung in
> Ordnung ist. Dann weisst du zumindest ob die Hardware ein Problem hat
> oder ob es an der Software liegt.

Es liegt anscheinend an der Hardware, da das Programm auch einfriert, 
doch ich habe die sehr einfache Schaltung 1:1 abgebaut. Es ist langsam 
echt zum verzweifeln.

von t800w (Gast)


Lesenswert?

Und sobald ich das SCL-Kabel rausziehe läuft der Sketch ganz normal 
weiter, als wäre nichts gewesen.

von Max D. (max_d)


Lesenswert?

Ein Arduino (avr) erkennt bei 5v Betrieb ab etwa 2.5V ein high.
1.6 sind zu wenig

von Achim S. (Gast)


Lesenswert?

t800w schrieb:
> Der Wert auf SCL nähert sich 1,6 Volt an.

Wie gemessen? Mit Oszi oder mit Multimeter?

Falls mit dem Multimeter: in welchen Messbereich? AC oder DC oder AC+DC?

Falls DC: das wäre ein ziemlich "kranker" Pegel. Welchen Wert misst du 
in der Situation am VCC und am GND des ADS-Boards? (Messung bitte 
jeweils zum GND des Arduino-Boards durchführen).

von Manfred (Gast)


Angehängte Dateien:

Lesenswert?

Stromtuner schrieb:
> Wofür scannst Du den kompletten Adressbereich?
> Die I2C Adresse ist doch fest eingestellt?
.. und hoffentlich auch die, von der man glaubt, sie sei die richtige.

Es ist nicht die dümmste Idee, I2C zu scannen, wenn irgendwas nicht 
klappt.

t800w schrieb:
> ich habe die sehr einfache Schaltung 1:1 abgebaut.
Hättest Du sie auf- oder nachgebaut, würde sie evtl. funktionieren.

Probiere mal den Anhang aus. So Du hast, klemme irgend ein anderes 
I2C-Teil an, RTC-Baustein oder Display.

von T800w (Gast)


Lesenswert?

Manfred schrieb:

> Probiere mal den Anhang aus. So Du hast, klemme irgend ein anderes
> I2C-Teil an, RTC-Baustein oder Display.

Ok, ich probiers morgen mal

von Trick (Gast)


Lesenswert?

Hallo,

eins kommt mir komisch vor: Wo sind die Pull-Up-Widerstände auf dem Bus? 
Ich mein das ist doch I2C ... Vergleiche:
https://www.elprocus.com/wp-content/uploads/2015/07/Interfacing-I2C-EEPROM.jpg

von Trick (Gast)


Lesenswert?


von Mathias (Gast)


Lesenswert?

Die Pullups sollten bereits auf dem Modul sein... du hast doch genau das 
abgebildete Modul oder? Oder wenigstens ein anderes, wo auch 8 kleine 
SMD Bausteine drauf sind (oder 4 kleine und 1 etwas größerer). Im 
Zweifelsfall, einfach mal ein Foto von deinem Aufbau hochladen.

von Trick (Gast)


Lesenswert?

Vielleicht sind die internen Pull Ups noch zusätzlich aktiviert?

von Wolfgang (Gast)


Lesenswert?

Trick schrieb:
> Vielleicht sind die internen Pull Ups noch zusätzlich aktiviert?

Die 30..50kΩ dürfen den I2C-Betrieb nicht beeinflussen. Wozu also die 
Frage?

von Mannomann (Gast)


Lesenswert?

.... es wird Zeit mal einen Blick auf den Aufbau
(nicht den Schaltplan) zu werfen .....

von Trick (Gast)


Lesenswert?

Wolfgang schrieb:
> Trick schrieb:
>> Vielleicht sind die internen Pull Ups noch zusätzlich aktiviert?
>
> Die 30..50kΩ dürfen den I2C-Betrieb nicht beeinflussen. Wozu also die
> Frage?

Deswegen
http://www.bristolwatch.com/rpi/ads1115.html
An issue to be aware of is the pull up resistors built into the boards 
as shown in Fig. 2. The Raspberry Pi I2C connections is 3.3-volts and 
has its own pull up resistors. This may create problems - either 
remove/cut the pull ups or in my case I used a level translator to 
operate the ADS1115 at 5-volts and isolate the pull up problem.

von t800w (Gast)


Angehängte Dateien:

Lesenswert?

Das ist der Aufbau.

von t800w (Gast)


Lesenswert?

Mathias schrieb:
> Die Pullups sollten bereits auf dem Modul sein... du hast doch
> genau das
> abgebildete Modul oder? Oder wenigstens ein anderes, wo auch 8 kleine
> SMD Bausteine drauf sind (oder 4 kleine und 1 etwas größerer). Im
> Zweifelsfall, einfach mal ein Foto von deinem Aufbau hochladen.

Ja, genau das.

von t800w (Gast)


Lesenswert?

Trick schrieb:
> Deswegen
> http://www.bristolwatch.com/rpi/ads1115.html
> An issue to be aware of is the pull up resistors built into the boards
> as shown in Fig. 2. The Raspberry Pi I2C connections is 3.3-volts and
> has its own pull up resistors. This may create problems - either
> remove/cut the pull ups or in my case I used a level translator to
> operate the ADS1115 at 5-volts and isolate the pull up problem.

Besitzt der Arduino wirklich Schaltungsinterne Pull-Up's?

von t800w (Gast)


Lesenswert?

Ich habe das Problem gefunden!!!
Es war ein extrem kleines Kupferdrähtchen zwischen SCL und GND
--> Stormtuner hat somit recht

Doch ich habe schon die Pull-Ups auf dem ADS1115-Bord weggekratzt, soll 
ich die wieder dran löten, oder kann man das so lassen, weil die 
Messergebnisse sind perfekt.

Danke an alle!!!

von Stromtuner (Gast)


Lesenswert?

Die Pullups sind ja nun nicht zu übersehen.
Danke, gutes Foto.
Läuft der ATMEL-UNO auf 5V oder auf 3.3V?
Steck doch mal den ADS auch auf 3.3V.
Wenn der arduion 5V von den Pullups (aber daran liegt es sicher auch 
nicht) bekommt, selbst aber nur mit 3.3V läuft...

StromTuner

von Stromtuner (Gast)


Lesenswert?

mmmmmmmhhh, hehe :)

Schön, wens läuft ( hab mal "F5" gedrückt )

StromTuner

von t800w (Gast)


Lesenswert?

Ist das jetzt extrem schlimm, wenn die Pull-Ups auf dem ADS1115 fehlen?

von Stromtuner (Gast)


Lesenswert?

tu sie halt wieder drauf
läuft nun alles auf 5V oder auf 3.3V?

StromTuner

von t800w (Gast)


Lesenswert?

Mit 5V

von Ziegenpeter (Gast)


Lesenswert?

Stromtuner schrieb:
> läuft nun alles auf 5V oder auf 3.3V?

Auf dem Bild sieht man doch, dass das Modul an 3.3V abgeschlossen ist.

t800w schrieb:
> Ist das jetzt extrem schlimm, wenn die Pull-Ups auf dem ADS1115 fehlen?

Wenn sie da fehlen, müssen sie ja irgendwo anders sein, sonst würde es 
nicht funktionieren, d.h. interne pull-ups des Arduino (oder hat er auch 
externe)?
Aber wenn die zu hoch sind, dann kannst du entsprechend die i2c-Baudrate 
nicht zu hoch wählen, sonst ist es eigentlich nicht schlimm.

von Johnny S. (sgt_johnny)


Lesenswert?

Ziegenpeter schrieb:
> Stromtuner schrieb:
>> läuft nun alles auf 5V oder auf 3.3V?
>
> Auf dem Bild sieht man doch, dass das Modul an 3.3V abgeschlossen ist.

Schon ja, aber aus den Pins des Arduinos kommen trotzdem 5V!

Die 3.3V "Buchse" da ist nur einfach so da, damit man 3.3V zapfen kann. 
Die Portpins bleiben bei 5V :)

Die korrekte Antwort ist also "alles" läuft mit 3.3V Versorgung und 5V 
Signalen

von Manfred (Gast)


Angehängte Dateien:

Lesenswert?

Ziegenpeter schrieb:
> Auf dem Bild sieht man doch, dass das Modul an 3.3V abgeschlossen ist.
Abgeschlossen ist da garnichts.

Der Baustein darf 5Volt, einen 3V3-Regler sehe ich auf dem Board nicht - 
wozu also diese Leitung? Aber ist doch nett, einen Adresspin mit einem 
Pegel außerhalb der Spezifikation zu belegen.

von Achim S. (Gast)


Lesenswert?

Manfred schrieb:
> Der Baustein darf 5Volt, einen 3V3-Regler sehe ich auf dem Board nicht -
> wozu also diese Leitung? Aber ist doch nett, einen Adresspin mit einem
> Pegel außerhalb der Spezifikation zu belegen.

A0 ist einer der (analogen) Eingänge des ADC. In der 
"Originalschaltung", deren Bildchen der TO kopiert, wird klar, dass die 
3,3V als "Testsignal" für den ADC verwendet werden. In diesem Thread 
wird dem TO leider nicht klar, welchen Hintergrund die diversen 
Nachfragen zu 5V/3,3V haben und dass er das einfach mal klarstellen 
könnte.

von Manfred (Gast)


Lesenswert?

Achim S. schrieb:
> A0 ist einer der (analogen) Eingänge des ADC.
Danke, das hätte ich selber sehen dürfen :-(

von Wolfgang (Gast)


Lesenswert?

Trick schrieb:
> Deswegen
> http://www.bristolwatch.com/rpi/ads1115.html
> An issue to be aware of is the pull up resistors built into the boards
> as shown in Fig. 2. The Raspberry Pi I2C connections is 3.3-volts and
> has its own pull up resistors.

Der RaspberryPi läuft mit 3.3V.
Womit der hier verwendete Arduino läuft, lässt sich aus den bunten 
Bildchen leider nicht erschließen. Ein gültiger Schaltplan mit Angabe zu 
den Pull-Ups und/oder ein kurze Messung mit ein Multimeter könnte da 
ungemein klärend wirken.

von 1234567890 (Gast)


Lesenswert?

Hat schon mal jemand die Software angeschaut? Die Einrückungen und die 
Klammern passen nicht zusammen. Die Kiste macht möglicherweise 
datenabhängig irgendwas. Auf jeden Fall nicht das, was man auf den 
ersten Blick sieht.

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.