SDA und SCL Pins funktionieren nicht mehr | Arduino UNO

Hallo Arduino-Community,

für ein Projekt nutze ich ein LCD. Um Pins zu sparen habe ich an dem LCD zusätzlich einen I2C Adapter (oder wie man diese genau nennt. Hier ein Link). Dieser Adapter benötigt neben VCC und GND noch einen SDA und SCL Anschluss. Da ich einen Arduino UNO nutze habe ich mit ein Bild mit allen Pin-Bezeichnungen angeschaut und dort steht, dass die oberen rechten Pins SDA und SCL sind.


Auf Grundlage dieser Information habe ich mein Display dort angeschlossen und es hat auch alles funktioniert. Bis jetzt: Auf einmal kann ich den LCD nicht mehr ansteuern und auch ein Adressen-Finder findet keine LCD-Adresse mehr. Also Google ich rum und finde heraus, dass beim Arduino UNO eigentlich die Pins A4 und A5 für SDA und SCL zuständig sind. Ich stecke also alles um und tatsächlich: Der LCD funktioniert wieder.

Deshalb meine Frage: Hat jemand eine Idee, warum die anderen Pins erst funktioniert haben und dann plötzlich nicht mehr?

Grüße
Habetuz

A4/A5 D18/D19 SDA/SCL PC4/PC5 sind beim UNO atmega328 die 2 gleichen Pins.
(Sollte dir auch ein Leitungstester zeigen)

Wackelkontakt?

michael_x:
A4/A5 D18/D19 SDA/SCL PC4/PC5 sind beim UNO atmega328 die 2 gleichen Pins.
(Sollte dir auch ein Leitungstester zeigen)

Wackelkontakt?

Das ist sehr interessant. Bedeutet das, dass wenn ich die SDA und SCL Pins wieder zum laufen bringe und auch nutze, ich die A4 und A5 Pins trotzdem nicht für andere Messungen verwenden kann?

Grüße
Habetuz

habetuz:
Das ist sehr interessant. Bedeutet das, dass wenn ich die SDA und SCL Pins wieder zum laufen bringe und auch nutze, ich die A4 und A5 Pins trotzdem nicht für andere Messungen verwenden kann?

Ja.

Du könntest aber an den I2C-Bus andere I2C-Slaves anschließen.

Wie schon geschrieben wurde, i2c ist ein Bus und du kannst da mehrere I2C-Clients anschließen, musst nur darauf achten, dass diese unterschiedliche Adressen haben.
Diese Adressen werden im Sketch eingestellt.

habetuz:
Hallo Arduino-Community,

für ein Projekt nutze ich ein LCD. Um Pins zu sparen habe ich an dem LCD zusätzlich einen I2C Adapter (oder wie man diese genau nennt. Hier ein Link).

Das ist ein unverschämt hoher Preis für diesen Adapter. Sollte man die Finger von lassen.
Gibt es für unter 6€ schon zusammen mit einem Display.
Display mit I2C

Hi

Das gibt's auf eBay noch Mal günstiger, sogar vom deutschen Händler (5,25€ mit 1602er LCD)
Für gut 2 Euro mehr auch als 2004.

Beim fC deutlich weniger, aber 'etwas' mehr Lieferzeit.

MfG

PS: Ja, die aufgerufenen 25€ sind echt ein stolzer Preis ... umso erstaunlicher:
Blue/Yellow IIC/I2C/TWI/SP​​I Interface1602 2004 Character LCD Module Display AM, eBay, AZDelivery, 1x 11€, 5x 29€
... kenne Das eigentlich genau anders herum - Pearl war bisher auf eBay deutlich teurer, als im eigenem Shop.

habetuz:
Das ist sehr interessant. Bedeutet das, dass wenn ich die SDA und SCL Pins wieder zum laufen bringe und auch nutze, ich die A4 und A5 Pins trotzdem nicht für andere Messungen verwenden kann?

Grüße
Habetuz

Na ich nehme mal an, das wird dein Problem gewesen sein. Du hast erst als SDA/SCL die beiden Pins oben rechts verwendet und es hat funktioniert. Hast dann aber A4 und A5 für irgend eine Funktion verwendet (programmiert), und ab da haben die beiden oben Rechts nicht mehr funktioniert, weil die ja parallel geführt sind. Und ab da, wo du dann die A4/A5 frei gemacht und als SDA/SCL verwendet hast, gehen auch die Anschlüsse oben rechts wieder :slight_smile: Das Problem hatte ich ganz zu Anfang auch mal.

habetuz:
Da ich einen Arduino UNO nutze habe ich mit ein Bild mit allen Pin-Bezeichnungen angeschaut und dort steht, dass die oberen rechten Pins SDA und SCL sind.

Dafür das dies ein Original Arduino Bild ist, muss ich sagen, das ist nicht sehr Anfängerfreundlich.

Also da kann man als Einsteiger schon mal ins Schleudern kommen.

Hi

Jupp - gibt Bessere.
Ist für mich So zwar auch eindeutig - gleiche Pin-Bezeichnungen sind der gleiche physische Pin und somit identische Funktion - aber ob die ganze Zielgruppe vom Arduino Das weiß, ist fraglich.
Man hätte sowohl links SDA/SCL, wie recht A4/A5 durchaus dabei schreiben dürfen.

MfG

postmaster-ino:
Man hätte sowohl links SDA/SCL, wie recht A4/A5 durchaus dabei schreiben dürfen.

Genau.....aber dafür hat man dann rechts 2 mal SDA und SCL stehen. Ist doch eine kleine Entschädigung. :wink:

HotSystems:
Dafür das dies ein Original Arduino Bild ist, muss ich sagen, das ist nicht sehr Anfängerfreundlich.

Ich halte das für sehr gut gestaltet.

 Anfänger|Einsteiger != Idioten

Gruß

Gregor

PS: Ich habe derlei Zeug beruflich gestaltet. Dass das echte Arbeit ist, kannst Du mir glauben.

gregorss:
PS: Ich habe derlei Zeug beruflich gestaltet. Dass das echte Arbeit ist, kannst Du mir glauben.

Ich habe nicht bestritten, das die Gestaltung mit Arbeit verbunden ist.

Dennoch kann man eine derartige Abbildung komplett zeichnen.
Und das diese unfertige Zeichnung bei Anfängern Probleme macht, zeigt dieser Thread.

Somit bekommt diese Darstellung von mir kein "sehr gut".

HotSystems:
Dennoch kann man eine derartige Abbildung komplett zeichnen.
Und das diese unfertige Zeichnung bei Anfängern Probleme macht, zeigt dieser Thread.

Naja, man könnte natürlich rechts und links ein paar km anfügen und an jeden Pin einfach alles dran schreiben, dazu noch ein Paar spezielle Farbcodes und -muster, weitere Schriftarten und Auszeichnungen ... und das Dateiformat erst (png!)

Somit bekommt diese Darstellung von mir kein "sehr gut".

Dafür aber hoffentlich ein „der bestmögliche Kompromiss aller Anforderungen“ :slight_smile:

Gruß

Gregor

urdaino:
Das ist ein unverschämt hoher Preis für diesen Adapter. Sollte man die Finger von lassen.
Gibt es für unter 6€ schon zusammen mit einem Display.
Display mit I2C

Den LCD habe ich, wie auch meine anderen Teile, von meiner Schule bekommen, deshalb habe ich einfach ein Modell, das ähnlich aussieht, rausgesucht. Trotzdem danke für den Hinweis.

Grüße
Habetuz

Franz54:
Na ich nehme mal an, das wird dein Problem gewesen sein. Du hast erst als SDA/SCL die beiden Pins oben rechts verwendet und es hat funktioniert. Hast dann aber A4 und A5 für irgend eine Funktion verwendet (programmiert), und ab da haben die beiden oben Rechts nicht mehr funktioniert, weil die ja parallel geführt sind. Und ab da, wo du dann die A4/A5 frei gemacht und als SDA/SCL verwendet hast, gehen auch die Anschlüsse oben rechts wieder :slight_smile: Das Problem hatte ich ganz zu Anfang auch mal.

Ja das könnte es gewesen sein, da ich auf A5 einen Photoresistor angeschlossen hatte.
Gibt es trotzdem irgendeine Möglichkeit auf A4 und A5 analogRead() zu nutzen? Ich denke da zum Beispiel an eine Möglichkeit I2C während einer Messung zu pausieren...

Grüße
Habetuz

Hi

Naja - der Nano hat ja A0...A7 (wobei A6/A7 reine Analog-IN sind, A0...A5 sind auch digital benutzbar).
Wenn auf A4/A5 (oder SDA/SCL - ist hier exakt das Selbe) I2C gesprochen wird, stören sämtliche Fremdsignale - die Slaves können nur wenige mA Strom sinken - auch verw#ssern die PullUPs der Bussleitungen Dein Messergebnis - wenn noch was gemessen wird.

Wenn Du I2C benutzt, sind A4/A5 für I2C weg.
Wenn Du SPI benutzt, sind die Pins 11...13 (Nano/Uno) belegt und Pin 10 muß wohl auf Output stehen.

Alternativ gibt's hunderte I2C-Slaves, unter Anderem auch ADC - und auch mit einer höheren (aber auch niedrigeren) Auflösung, als die 10 Bit des Arduino.

Nein. Wenn Du I2C benutzen willst mußt Du A4/A5 frei (unbeschaltet / unbenutzt) lassen. Oder A4 und A5 benutzen und SDA und SCL Pins frei lassen.

Grüße Uwe

Hi

Man kann I2C-Slaves auch an SDA/SCL und A4/A5 anschließen - ist physisch das Gleiche.
Nur kann man einen Pin nicht für zwei Dinge gleichzeitig benutzen - und nacheinander, also umschalten, stört die jeweilige nicht benutzte Beschaltung.

MfG

habetuz:
Ja das könnte es gewesen sein, da ich auf A5 einen Photoresistor angeschlossen hatte.
Gibt es trotzdem irgendeine Möglichkeit auf A4 und A5 analogRead() zu nutzen? Ich denke da zum Beispiel an eine Möglichkeit I2C während einer Messung zu pausieren...

Grüße
Habetuz

Du darfst es gerne glauben, das funktioniert nicht.

Evtl. funktioniert es mit Soft-I2C, das habe ich aber selbst noch nicht genutzt.
Dabei kannst du für I2C auch digitale Pins verwenden.