Forum: Mikrocontroller und Digitale Elektronik Arduino MEGA + LCD + Motorshield


von Manuel E. (Firma: --) (maniebner)


Lesenswert?

Hallo!

Bin gerade dabei ein LCD Display an mein Arduino MEGA zu schließen.
Meine Frage ist ob ich die 6 Digitalen Inputs des LCD´s einfach auf 6
zufällige Digitale Ports meines Arduinos anstecken kann.

Denn bsiher zeigt es mir nur die Kontrastbalken an und lässt sich mich
nichts darauf anzeigen.

mfg

von Mark 99 (Gast)


Lesenswert?

Manuel E. schrieb:
> Meine Frage ist ob ich die 6 Digitalen Inputs des LCD´s einfach auf 6
> zufällige Digitale Ports meines Arduinos anstecken kann.

Ja, und wenn du dann noch programmieren könntest, bekämst du die Ausgabe 
auch zum Laufen. Nur ist das bei zufälligen Pins etwas nervige Arbeit, 
aber geht.

Allerdings, mit einer typischen miesen Arduino-Bibliothek (bloß nicht 
selber die Fingerchen schmutzig machen) sehe ich schwarz.

von Manuel E. (Firma: --) (maniebner)


Lesenswert?

Ich benutze die Liquid Crystal Bibliothek und habe mittels:

LyquidCrystal lcd(23,25,27,29,31,33)

Die IO Ports festgelegt jedoch funktioniert es nicht -.-

Kannst du mir sagen an was das liegen könnte?

MFG

von Markus H. (haniham) Benutzerseite


Lesenswert?

Anscheinend hast du den codeteil nicht aus deinem Sourcecode Kopiert (-:
Was heißt den funktioniert nicht bitte genau?

Welche Pins hast du denn miteinander verbunden - stimmen die denn mit 
der Reihenfolge aus dem "lcd()" Konstruktor überein?

Gruß

: Bearbeitet durch User
von Daniel P. (Gast)


Lesenswert?

Das habe ich ihm auch gerade gesagt und er arbeitet gerade daran ;)

von Markus H. (haniham) Benutzerseite


Lesenswert?

Daniel P. schrieb:
> Das habe ich ihm auch gerade gesagt und er arbeitet gerade daran ;)

Dann bleiben wir mal gespannt :-}

von Manuel E. (Firma: --) (maniebner)


Lesenswert?

Also ...

ich habe nun:

RS = 31
E = 33

D4 = 23
D5 = 25
D6 = 27
D7 = 29

Also steht in dem Programm nun:

LiquidCrystal lcd(31, 33, 23, 25, 27, 29)

void setup(){

lcd.begin(16, 2);
lcd.print("Hallo");

}

Leider zeigt er mir noch immer nur die Kontrastbalken an.

MFG

von Quack (Gast)


Lesenswert?

Das kompiliert so bestimmt nicht. Aber zeig nur ja nicht den ganzen, 
echten Code. Sonst ist das Problem zu schnell geloest. Und bitte AUF 
KEINEN FALL ein Bild von deinem Hardwareaufbau.

von Markus H. (haniham) Benutzerseite


Lesenswert?

Quack schrieb:
> Das kompiliert so bestimmt nicht. Aber zeig nur ja nicht den ganzen,
> echten Code. Sonst ist das Problem zu schnell geloest. Und bitte AUF
> KEINEN FALL ein Bild von deinem Hardwareaufbau.

Stimme zu - Wäre wirklich hilfreich.

Was macht denn der R/W Pin vom Display?

von Christian (Gast)


Lesenswert?

Manuel E. schrieb:
> Also ...
>
> ich habe nun:
>
> RS = 31
> E = 33
>
> D4 = 23
> D5 = 25
> D6 = 27
> D7 = 29
> (...)
> MFG

Wie werden die Pins initialisiert? Übenrimmt das deine magische 
lcd()-Funktion? Muss man die Pins vielleicht vorher selber als Ausgang 
definieren?

von Daniel P. (Gast)


Lesenswert?

Ja das übernimmt die Funktion

von Markus H. (haniham) Benutzerseite


Lesenswert?

Christian schrieb:
>
> ...
>
> Wie werden die Pins initialisiert? Übenrimmt das deine magische
> lcd()-Funktion? Muss man die Pins vielleicht vorher selber als Ausgang
> definieren?

Anscheinend geschieht das automatisch, wie z.B. hier:
http://arduino.cc/en/Tutorial/LiquidCrystal

von Manuel E. (Firma: --) (maniebner)


Angehängte Dateien:

Lesenswert?

Markus H. schrieb:
> Was macht denn der R/W Pin vom Display?

Der RW geht wie nach der Anleitung auf GND : 
http://www.instructables.com/id/Connect-A-16x2-LCD-Display-To-An-Arduino/7/?lang=de

Christian schrieb:
> Wie werden die Pins initialisiert? Übenrimmt das deine magische
> lcd()-Funktion?

Ob dus glaubst oder nicht das macht die LiquidCrystal lcd() dafür ist ja 
die Bibliothek da.

der Sourcecode ist im Anhang

von Stefan D. (reverse)


Lesenswert?

23,25,27,29,31,33
das sind Pin nummern, gibts die auf deinem Arduino wirklich ?
In deinem Verlinkten Beispiel wurde
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
genutzt, also niedrigere Nummern.
Ein Arduino Mini mit Mega 168 / 328 hat aber nur 28 Pins
http://arduino.cc/en/Hacking/PinMapping168

Wieviele hat deiner ?
Schaltplan davon ?

ich würd dir Vorschlagen dir eine halbe Stunde Zeit zu nehmen und dieses 
Tutorial einfach nur zu lesen, vielleicht wird dir dabei einiges klarer, 
was im Hintergrund passiert.

http://www.mikrocontroller.net/articles/AVR-GCC-Tutorial
oder das hier
http://www.mikrocontroller.net/articles/AVR-Tutorial

von Daniel P. (Gast)


Lesenswert?

Er nutzt aber den Arduino Mega:

http://arduino.cc/en/Hacking/PinMapping2560

von Stefan D. (reverse)


Lesenswert?

Ok, auf anhieb nicht gefunden, wäre auch sein Job die nötigen Daten 
vorzubereiten.
Was man in deinem Link sieht, das die ersten Pins 23, 25 etc.. auf den 
Analogpins hocken, kann sein, dass man den Analogwandler ausschalten 
muss oder er nutzt ihn schon anderweitig. Schaltplan fehlt immernoch.

von Jürgen S. (jurs)


Lesenswert?

Manuel E. schrieb:
> Leider zeigt er mir noch immer nur die Kontrastbalken an.

Hast Du auch folgende Verbindung zum LCD gelegt:

LCD R/W pin to ground
?

von Hubert G. (hubertg)


Lesenswert?

Hab das mal schnell ans LCD gesteckt, funktioniert auch mit geänderter 
Port-Belegung ohne sonstige Änderung einwandfrei.
R/W natürlich auf GND

von Daniel P. (Gast)


Lesenswert?

Jürgen S. schrieb:
> Manuel E. schrieb:
>> Leider zeigt er mir noch immer nur die Kontrastbalken an.
>
> Hast Du auch folgende Verbindung zum LCD gelegt:
>
> LCD R/W pin to ground
> ?

Manuel E. schrieb:
> Markus H. schrieb:
>> Was macht denn der R/W Pin vom Display?
>
> Der RW geht wie nach der Anleitung auf GND :
> http://www.instructables.com/id/Connect-A-16x2-LCD...
>

Stefan D. schrieb:
> Ok, auf anhieb nicht gefunden, wäre auch sein Job die nötigen
> Daten
> vorzubereiten.
> Was man in deinem Link sieht, das die ersten Pins 23, 25 etc.. auf den
> Analogpins hocken, kann sein, dass man den Analogwandler ausschalten
> muss oder er nutzt ihn schon anderweitig. Schaltplan fehlt immernoch.

Alle Angaben von ihm sind die "digitalen Pins" der Platine nicht die 
Pins des Chips.

von Manuel E. (Gast)


Lesenswert?

Hubert G. schrieb:
> Hab das mal schnell ans LCD gesteckt, funktioniert auch mit geänderter
> Port-Belegung ohne sonstige Änderung einwandfrei.
> R/W natürlich auf GND

naja wenn es bei dir funktioniert und das LCD nicht kaputt ist, könnte 
es dann sein, dass es mit der Kabellänge zutun hat?

Das Kabel ist 1.5m lang und ich habe gehört das es sein kann, dass man 
bei langen Verkabelungen die Impulslänge erhöhen kann vom Datenbus.

von npn (Gast)


Lesenswert?

Manuel E. schrieb:
> könnte es dann sein, dass es mit der Kabellänge zutun hat?
>
> Das Kabel ist 1.5m lang

Ja, das könnte schon sein. Bei 1.5m Kabel (Bandkabel?), vermutlich auch 
keine GND-Adern zwischen den Signaladern ist es ziemlich 
unwahrscheinlich, daß das spielt. Aber warum probierst du das nicht 
einfach aus? Die paar Adern sind doch schnell verbunden. Dann weißt du 
es.

Aber ich habe noch eine ganz andere Frage. Was hat das ganze mit einem 
Motorshield zu tun? Kommt da noch was?

von Manuel E. (Gast)


Lesenswert?

npn schrieb:
> Aber ich habe noch eine ganz andere Frage. Was hat das ganze mit einem
> Motorshield zu tun? Kommt da noch was?

das motorshield steckt auf dem arduino also auf allen pins auser der 
Reihe der digitalen ports von 20 - (geschätz) 50

Damit wollte ich nur sagen das ich nur diese digitalen ports zur 
Verfügung habe die ja mehr als ausreichend sind, aber danke für die 
Frage habe in der hecktik ganz vergessen das zur erwähnen.

mfg

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.