From Friday, April 19th (11:00 PM CDT) through Saturday, April 20th (2:00 PM CDT), 2024, ni.com will undergo system upgrades that may result in temporary service interruption.

We appreciate your patience as we improve our online experience.

LabVIEW Interface for Arduino Documents

cancel
Showing results for 
Search instead for 
Did you mean: 

Arduino Example LabVIEW communication (German)

Bei diesem Dokument handelt es sich um eine deutsche Anleitung zur Einrichtung einer Kommunikation zwischen LabView und Arduino (Uno/Mega).

Um eine Verbindung zwischen dem Arduino Board und LabVIEW zu erzeugen, werden folgende Dinge benötigt:

- NI.VISA

- LIFA_BASE (LabView Interface for Arduino)

Auf die Installation der  Software gehe ich erstmals nicht ein, wenn dort aber bedarf bestehen sollte, werde ich dies auch noch in einer Anleitung erläutern.

Nachdem NI.VISA und die LIFA_Base installiert wurden, muss als erstes ein Programm auf den Arduino geladen werden. LabVIEW Interface for Arduino liefert ein fertiges Arduino Programm, welches ihr im Ordner von National Instruments findet. Bei mir befindet sich das Programm unter:

C:\Program Files (x86)\National Instruments\LabVIEW 2011\vi.lib\LabVIEW Interface for Arduino\Firmware\LIFA_Base

In dem Ordner LIFA_Base befindet sich die Datei LIFA_Base (Arduino file). Diese öffnet ihr mit der IDE von Arduino.

Das ganze sollte dann so aussehen:

Bild1.png

Nun wechseln wir in die Klasse LabVIEWInterface.h. Dies tun wir durch die Auswahl mit dem kleinen rechten Pfeil in der Oberen rechten Ecke oder wir vergrößern einfach das Programmfenster und wählen die Klasse direkt über die Klassenanzeige aus: (siehe Beispiel LIFA_BASE im Bild)

Bild2.png

In der Klasse LabVIEWInterface.h gehen wir zu folgendem Programm Code:

Bild3.png

Der Bereich  #define DEFAULTBAUDRATE 115200, legt die Baudrate fest. Diese Baudrate ist für den Kommunikationsaufbau zwischen LabVIEW und Arduino sehr wichtig. Wenn die Baudrate im Arduino Programm und in LabVIEW nicht gleich ist, kann keine Kommunikation erfolgen. In der Regel wird bei diesem Fall in LabVIEW die Fehlermeldung 5002 ausgegeben.

Nun übertragen wir das Programm auf den Arduino. Sollte bei der Übertragung eine Fehlermeldung kommen müsst ihr wie folgt vorgehen:


Fehlermeldung:


C:\Program Files (x86)\Arduino\libraries\RobotIRremote\src\IRremoteTools.cpp:5: error: 'TKD2' was not declared in this scope

Dieser Fehler wird in der Regel beim ersten mal auftauchen, wenn man eine neuere Arduino IDE verwendet. Bei einer älteren Arduino IDE

taucht dieser Fehler normalerweise nicht auf.

Wie kommt es zum Fehler und wie kann ich ihn beseitigen?


Der Fehler entsteht durch eine Bibliothek di bei neueren Versionen deer Arduino IDE mitgeliefert wird. Um den Fehler zu beheben, müsst ihr in die Arduino Bibliothek unter folgendem Dateipfad gehen:

C:\Program Files (x86)\Arduino\libraries


In dem Ordner libraries löscht ihr den Ordner RobotlRremote. Damt sollte das Problem bei der Übertragung des Programms auf den Arduino erledigt sein. Nachem das Programm erfolgreich auf den Arduino übertragen wurde, öffnet ihr LabVIEW mit der bereits installierte LIFA_BASE

Dor erstell ihr als Beispiel folgendes Programm:

Bild4.png

1. An Punkt 1, wird über den Baustein INIT, der Mikrocontroller für die Kommunikation Initialisiert. Über eine Konstante müsst irh nun um eine Kommunikation aufbauen zu können, den COM Anschluss, an dem der Mikrocontrller an euren PC angeschlossen ist, angeben.

Dafür wird im übrigen die Software NI.VISA benötigt.

Des weiteren muss eine Konstante für die Baudrate festgelegt werden. Hier müsst ihr die Baudrate einstellen, die wir vorher im Arduino

Programm in der Klasse LabVIEWInterface.h unter #define DEFAULTBAUDRATE 115200 festgelegt haben. Macht ihr dies nicht,kann keine Kommunikation aufgebaut werden und LabVIEW liefert euch die Fehlermeldung 5002. Nach der Baudrate muss das Arduino Board (in   meinem Projekt der Arduino Mega) festgelegt werden. Anschließend müsst ihr noch die Art der Verbindung angeben (USB/Serial)

An Punkt 2, befindet sich ein Baustein zum Schreiben von digitalen Signalen. Mit diesem Baustein sorge ich dafür, dass der Pin 13 des Mikrocontrollers angesteuert wird, wenn ich die LED auf der Benutzeroberfläche meiner LabVIEW Anwendung drücke.

Wollt ihr einen Arduino Mega2560 verwenden?

Solltet ihr einen Arduino Mega 2560 in eurem Projekt verwenden, werdet ihr Probleme haben, wenn ihr nicht die Baudrate von 9600 verwendet.  Hier hat die LIFA_BASE einen Fehler der aber behoben werden kann. Dazu öffnet ihr das SUB.vi INIT durch doppelklick. Anschließend wechselt ihr in LabVIEW ins Blockdiagramm und ändert das folgende Programm:

Bild5.png

Löscht die Konstante 9600 und verbindet den Baud Rate Anschluss Baud Rate(115200) mit dem Anschluss Baud in der Case-Strucktur Mega 2560.

Bild6.png

Sollte die Kommunikation immer noch nicht funktionieren liegt dies an der Taktfrequenz, mit der der Arduino Mega2560 Arbeitet. Der Arduino Mega 2560 kann mit 16 MHz oder mit 20 MHz arbeiten. Schaut bei euch auf eurem Arduino nach welcher Quarz verbaut wurde. Ich hatte 2 Arduino Mega 2560 von unterschiedlichen Herstellern. Einer wurde mit 16 Mhz Quarz und der andere mit 20 Mhz Quarz geliefert. Ist der falsche Takt angegeben im Programm kommt es zum Kommunikationsfehler, um das zu verhindern, müsst ihr in folgendem Bild die Taktfrequenz entsprechend auf euren Mikrocontroller auf 16000 für 16 Mhz oder auf 20000 für 20 Mhz einstellen.

Bild7.png

Habt ihr all das berücksichtig, könnt ihr mit eurem Programm los legen und den Arduino zum laufen bringen.

Ich hoffe es hilft euch weiter.

Mit freundlichen grüßen

Tobias Heimes


Comments
spica
Member
Member
on

Hi Tobias

How do I edit/modify the LabViewInterface.h to control two stepper motors? I have been struggling to control the two stepper motors but help it seems is very scarce.

Could you plese reply in English?

Thank you.

Terrence

dirol
Member
Member
on

Hi Tobias,

wo finde ich das Sub.vi INIT? Im LIFA_BASE Ordner ist es leider nicht enthalten und ich muss den Arduino Mega 2560 einbinden.

Mit freundlichen Grüßen

Diana

Contributors