INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.


Antwort schreiben 

LCD Display Ansteuerung - Befehlssatz



Wenn dein Problem oder deine Frage geklärt worden ist, markiere den Beitrag als "Lösung",
indem du auf den "Lösung" Button rechts unter dem entsprechenden Beitrag klickst. Vielen Dank!

19.05.2014, 18:23
Beitrag #1

cabua Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 57
Registriert seit: Aug 2009

8.6
2006
DE

44
Deutschland
LCD Display Ansteuerung - Befehlssatz
Hallo zusammen,

nach Jahren der Abstinenz setze ich mich erneut mit Labview auseinander.
Um konkreter zu werden. Ich habe jetzt ein Arduino Uno Board mit LCD Display. Es ist kompatibel mit dem HD44780 Standard.
Das Display ist korrekt angebunen und funktioniert. Ich habe es mit einem Arduino Sketch Program getestet.

Ich möchte aber gerne das über Labview ansteuern.

Auf dieser Seite:
wikipedia
findet sich eine Tabelle mit dem Befehlssatz. Auf der z.B., dass wenn man (0 0, 0 0 0 0 0 0 1) an den PINS macht, dass das Display gelöscht werden sollte.

Ich nutze für Labview das Linx (Labviewhacker). Auch hier funktioniert die Ansteuerung der einzelnen Pins. Getestet mit LEDs (an aus).

Meine Frage. Wenn ich also diesen Befehlssatz habe, dann müsste ich doch eigentlich nur sagen:
PIN RS = Strom aus
PN RW = Strom aus
PIN 1 = Strom aus

u.s.w, so dass das Display sich cleart. Zumindest verstehe ich das so. Das funktioniert natürlich nicht und ich weiß nicht warum.

Ich habe mir mal eine C++ Lib angeschaut, in der jedoch Bytes übertragen werden. Linx bietet mir jedoch nur an "DigitalWrite(0 oder 1)" und schaltet somit die PINS an und aus.

Meine Frage: Bytes sind für mich einfach nur eine höhere Art der Programmierung als mit Strom/an/aus. Oder bin ich da auf dem Holzweg?

Die Frage ist grundsätzlich, da ja auch andere Sensoren und Controller so angesteuert werden könnten oder? (Strom an/aus).

Gruß
cabua
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
21.05.2014, 17:02 (Dieser Beitrag wurde zuletzt bearbeitet: 21.05.2014 17:04 von cabua.)
Beitrag #2

cabua Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 57
Registriert seit: Aug 2009

8.6
2006
DE

44
Deutschland
RE: LCD Display Ansteuerung - Befehlssatz
Hallo zusammen,

inzwischen bin ich um ein vielfaches weiter.
Ich denke, dass den ein oder anderen interessiert wie ich nun mittels Labview mein Arduino Board kontrolliere.

Zunächst einmal die Antwort auf meine eigene Frage:

Das Display lässt sich theoretisch über die einzelnen PINS kontrollieren. Hierfür ist es jedoch notwendig, dass man zum einen die PINS Parallel an und ausschaltet und auch gewisse Zeiten zwischen den Schaltungen berücksichtigt.
Allein der Aufwand für das Löschen des Displays ist enorm.
Anschließend habe ich mich doch dazu entschieden mal etwas weiter zu schauen wie man sonst das Board kontrollieren kann.

Daher nun meine Anleitung:

Arduino Boards besitzen immer eine Firmware. Diese Firmware wird über die IDE von Arduino programmiert und hochgeladen. LINX und LIVA machen das genauso. Sie liefern eine eigene Firmware mit, damit man damit über Labview auf die zugreifen kann.
Ich habe nun meine eigene geschrieben:

In dem Arduino Code kann man eine Serielle Schnittstelle öffnen und das Board darauf horchen lassen.

Serial.begin(9600)

Nun kann man noch nicht all zuviel damit anfangen. Also schreibt man sich in der Firmware eine Methode, die die Daten von der seriellen Schnittstellen holt und auswertet.

Serial.Read()

Ich habe mich an einigen Codeteilen aus dem Internet orientiert und habe es so gemacht, dass ich mein eigenes "Endzeichen"= # benutze.

MeineNachricht#

Als Beispiel habe ich mir dann eine Methode geschrieben, die das Display beschreibt
(Pseudocode)
if (writeLCD#Nachricht)
{
lcd.print(Nachricht)
}

Nun konnte ich mittels Labview die Schnittstelle über VISA öffnen und den Befehl senden.

Das Ganze funktioniert auch andersherum (Temperatur auslesen).


Um es auf den Punkt zu bringen: Die Firmware sollte man sich selber schreiben, was wirklich nicht schwer war. Denn damit hat man dann volle Kontrolle über sein Board und seine Entwicklung. Anschließend kann man jede beliebe Programmiersprache nehmen, um das Board zu kontrollieren.

Falls noch Fragen sind... Fragt nach.
Ich bastel dann mal weiter
Gruß
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
30
Antwort schreiben 


Gehe zu: