Forum: Mikrocontroller und Digitale Elektronik Arduino Mega mit Ethernet Shield w5100 und „liquidcrystal shield“


von Hendrik K. (hendrik2021)


Lesenswert?

Abend,

folgende Frage/folgendes Problem. Nur kurz zum vorhaben, ich steuere mit 
dem MEGA2560 die Abluft von Räumen und möchte die Regelung jetzt teils 
auch auf MQTT haben. Also hab ich mir nen Ethernet Shield W5100 besorgt, 
vorher war schon der Mega und das „LiquidDisplay Shield“ im Einsatz, 
einfach um die Werte einfach anzusehen und ggf. die Lüftung zu 
deaktivieren… die Programmierung ist aber kein Problem.

Leider funktioniert das Ethernetshield nicht mehr sobald ich das 
DisplayShield drüber stecke. Ist das Konzept von diesen „Aufsteckbaren“ 
Shields nicht, das man auch zwei übereinander betreiben kann?
(Das Display wird mit ner zweiten Energieversorgung betrieben; ohne die 
funktioniert garnichts).

Im Internet lässt sich finden, dass Pin4 von beiden Shields benutzt 
wird… also hab ich einfach das DisplayShield nicht mehr oben drauf 
gesteckt und einfach an freie Pins geschlossen. Also nicht die Pins 4-7 
und 8 & 9. Jedoch zeigt das Display so nichts an… im Code wurde die 
Änderung natürlich angepasst. Die (ursprünglichen)Pins 4-8 sind doch 
einfach die Pins die für die Ansteuerung des Displays verantwortlich 
sind… da sollte ich doch hin & her wechseln können… geht bei nem 
einzelnen Display doch auch. (Leider hab ich keins da zum testen).



Wird da noch irgendein Pin vom DisplayShield benutzt den man so nicht 
findet?

von Schlaumaier (Gast)


Lesenswert?

Hendrik K. schrieb:
> Ist das Konzept von diesen „Aufsteckbaren“
> Shields nicht, das man auch zwei übereinander betreiben kann?

Doch ist es. Das Problem ist ob die kompatibel zu einander sind. Da gibt 
es nämlich meines Wissen nach keine Regeln, Normen o. sonst was.

Ich persönlich hätte ein ESP-Modul gekauft und das ganz normal 
angeklemmt. Pins sind doch mehr als genug da, falls du sie nicht alle 
verbraucht hast ;)

Weil aus genau deine Problemen. Man hat ein "Turmbau zu Babel" und mehr 
Stress als nötig.

von Andre (Gast)


Lesenswert?

Hendrik K. schrieb:
> im Code wurde die Änderung natürlich angepasst.

Wie genau? Das Display wird mit SPI oder I2C laufen. Diese Hardware 
Schnittstelle hat so ein üblicher Atmega genau ein mal auf genau 
festgelegten Pins.
Macht ja nichts, die Schnittstelle kann problemlos mehrere Slaves 
ansprechen (SS Pin oder I2C Adresse ändern). Aber von "nur Pin Nummern 
ändern" taucht kein zweites Interface und kein Software Master auf.

von hendrik (Gast)


Lesenswert?

Wenn das mit i2c oder SPI, läuft läuft die Kommunikation doch nur über 
zwei oder drei Pins.
Hier läuft das direkt ohne sone erwähnte Schnittstelle, oder nicht? 
Darum die ganzen Pins, es gibt auch LipuidDisplays die mit i2c laufen, 
aber das ist hier nicht der Fall(währe mir neu, wofür sollten dann die 
ganzen Pins sein. Soweit ich weiß sind die Pins für i2c ja die die 0,1 
rx,tx die werden ja garnicht benutzt…

Darum bin ich ja verwirrt, dass es nicht funktioniert.

von hendrik (Gast)


Lesenswert?

Okay, schonmal danke für die Antwort. Das es da keine normen gibt macht 
ja auch Sinn. Aber mich wundert‘s das es dann per komplett anderen Pins 
auch nicht funktioniert. Bzw. das Display keine Ausgabe hat…

von Andre (Gast)


Lesenswert?

Hast du ein Link zu deinem „LiquidDisplay Shield„?

von Bastian W. (jackfrost)


Lesenswert?

SPI und I2C sind diese erwähnten Schnittstellen. Wenn du in der Software 
die Pins änderst geht das beim Mega nicht mehr da hier ja dann an den 
Pins keine SPI oder I2C Hardware ist.

Bei I2C haben alle Slaves die gleichen Pins und werden über die Adresse 
die auf dem Bus gesendet wird adressiert. Jede Adresse darf es nur 
einmal geben.

Bei SPI haben alle Slaves MISO, MOSI und SCK angebunden. Jeder Slave hat 
seinen eigenen CS. Der CS ist nicht von der Hardwareschnittstelle 
abhängig. Da kannst du jeden freien PiN nehmen. Wichtig ist nur das du 
auf dem Shield hier auch den CS auf einen anderen PIN legen kannst.

Gruß JackFrost

von Hendrik K. (hendrik2021)


Lesenswert?


von noiasca (Gast)


Lesenswert?

In der Bedienungsanleitung steht, dass das Board folgende Pins 
verwendet:
Analog0 Taste(anwählen,hoch,rechts,herunterundlinks)
Digital4 DB4(LCD)
Digital5 DB5(LCD)
Digital6 DB6(LCD)
Digital7 DB7(LCD)
Digital8 RS
Digital9 RW
Digital10 SteuerungderHintergrundbeleuchtung

Das Ethernetshield benötigt:
4
10
11
12
13

von c-hater (Gast)


Lesenswert?

Hendrik K. schrieb:

> Verstehe halt nicht warum mir das Display nichts anzeigt, wenn ich die
> Pins 4-8 auf andere Pins lege. Das sollte doch kein Problem machen.

Wie kommst du auf dieses schmale Brett? Wenn man das Signal auf anderen 
Pins einspeist, reicht doch das alleine keinesfalls aus, solange der 
potentielle Empfänger der Signale immer noch an denselben alten Pins auf 
Signale lauscht.

Sprich: es genügt sicher nicht, die Software des Senders auf andere Pins 
zu konfigurieren. Du musst logischerweise auch das Shield entsprechend 
umbauen.

Arduino... Alles klar...

Beitrag #6763571 wurde von einem Moderator gelöscht.
von Hendrik K. (hendrik2021)


Lesenswert?

habs schon hinbekommen. Lag wie es mir scheint, an nem "Haarriss" oder 
so auf der Platine, hatte ich auch noch nie gehabt... Danke für die 
Hilfestellungen.

:D

schönen Abend noch :)

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.