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 

Datenübertragung Arduino Mega zu Labview



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!

05.03.2014, 16:03
Beitrag #1

biede1987 Offline
LVF-Neueinsteiger


Beiträge: 6
Registriert seit: Mar 2014

2014
2013
DE



Datenübertragung Arduino Mega zu Labview
Hallo liebes Labview Forum,

ich hab für meine Carrerabahn einen digitalen Start- Ziel Bogen entworfen. MIt zwei Lichtschranken und 4 - 7 Segmentanzeigen.

MIt hilfe des Arduino Mega habe ich ein Programm geschrieben, wenn eine Lichtschranke unterbrochen ist, soll zählt die anzeige hoch! Das funktioniert auch alles, nun will ich mit HIlfe von Labview auch die Runden und danach die Rundenzeiten auf Laptop angezeicht bekommen.

Mein Problem ist jetzt das ich ein Singal bekommen aber die Runde nicht gespeichert wird bei Labview!

Kann mir jemand helfen warum das so ist, ich möchte das der Wert in Labview gespeichter wird.


Angehängte Datei(en)
13.0 .vi  Labview Carrera Bike.vi (Größe: 13,43 KB / Downloads: 428)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
05.03.2014, 16:11
Beitrag #2

jg Offline
CLA & CLED
LVF-Team

Beiträge: 15.864
Registriert seit: Jun 2005

20xx / 8.x
1999
EN

Franken...
Deutschland
RE: Datenübertragung Arduino Mega zu Labview
Rückfrage: Du arbeitest mit aktiviertem Termination Char bei der seriellen Kommunikation. Ist das korrekt? Beendet dein Arduino jede Nachricht mit einem <LF>. Wenn ja, dann brauchst du kein Bytes at Port. Außerdem fehlt dir jegliche Fehler-Auswertung. Wer sagt denn, dass alle 30 ms die Nachricht über die Anzahl der Runden kommt? Wenn dein Such-Tag "Runde1=" nicht gefunden wird, dann solltest du auch keine Rundenanzahl anzeigen.

Gruß, Jens

Wer die erhabene Weisheit der Mathematik tadelt, nährt sich von Verwirrung. (Leonardo da Vinci)

!! BITTE !! stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort!

Einführende Links zu LabVIEW, s. GerdWs Signatur.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
05.03.2014, 16:37
Beitrag #3

biede1987 Offline
LVF-Neueinsteiger


Beiträge: 6
Registriert seit: Mar 2014

2014
2013
DE



RE: Datenübertragung Arduino Mega zu Labview
// Programmierung des Mikrocontrollers
// Thomas Biedenbach
// CarreraBike
// Mikrocontroller Arduino Mega 2560


// Um die Runden der Fahrzeuge zu zählen, bedarf es einer Abfrage am Startzielbogen
// um dem Mikrocontroller mitzuteilen ob das Fahrzeuge durchgefahren ist oder nicht.
// Die Kontrolle, ob ein Fahrzeug durch den Startzielbogen gefahren ist , geschieht durch
// eine selbst gebaute Infrarot - Lichtschranke, die am Bogen unten angebracht ist.
// Ist die Lichtschranke belegt, dann sendet sie eine 1 an den Mikrokontroller, sobald sich
// nicht belegt ist sendet sie eine 0. Durch einen Reset Taster werden die Runden wieder auf zurückgesetzt



#include "SevSeg.h" //4 stellige 7 Segemnt Library hinzufügen
SevSeg sevseg;

int Lichtschranke1 = 11; // Zuweisung für Lichtschranke Bahn1 = Pin 11
int Lichtschranke2 = 13; // Zuweisung für Lichtschranke Bahn2 = Pin 13
int Lichtschrankeunterbrochen1; // Variable für Pin Zustand Bahn 1
int Lichtschrankeunterbrochen2; // Variable für Pin Zustand Bahn 2
int letzteRunde1; // Variable für den letzten Schalterzustand letzte Runde Bahn1
int letzteRunde2; // Variable für den letzten Schalterzustand letzte Runde Bahn2
int Runde1 = 0; // Varialbe für Rundeanzahl Bahn 1, am Anfang Runde = 0
int Runde2 = 0; // Varialbe für Rundeanzahl Bahn 2, am Anfang Runde = 0

int reset = 12; // Zuweisung für Resettaster = Pin 11
int resetdruecken; // Variable für Pin Zustand Resettaster

int auszugebende_Zahl; // Variable für auszugebende Zahl, am Display

void setup(){ //Setup Bedingungen des Programms

Serial.begin(9600); // Start der seriellen Kommunikation mit 9600bps
pinMode(Lichtschranke1,INPUT); // setzt den DigitalPin als Eingang
pinMode(Lichtschranke2,INPUT); // setzt den DigitalPin als Eingang

letzteRunde1 = digitalRead(Lichtschranke1); // Anfangszustand auslesen
letzteRunde2 = digitalRead(Lichtschranke2); // Anfangszustand auslesen
resetdruecken =digitalRead(reset); // Anfangszustand auslesen

sevseg.Begin(1,2,5,6,32,3,7,28,24,22,4,30,26); // Pin Belegung des Mikroconrollers für 4 stellige 7 Segement Display

sevseg.Brightness(10); // Helligkeit des Displays Wert von 0-100

}

void loop() { // Bedingungen die ständig wiederholt werden

sevseg.PrintOutput(); // Erzeugt die Ausgabe am Display

if (digitalRead(reset) == HIGH) // Wenn Reset 1, Dann Runde1 = 0, Runde wird zurückgesetzt
Runde1 = 0;

Lichtschrankeunterbrochen1 = digitalRead(Lichtschranke1); // Lichtschranke1 Wert lesen und in Varibale Lichtschrankeunterbrochen1 speichern
if (Lichtschrankeunterbrochen1 != letzteRunde1) { // Der Zustand des Schalters hat sich verändert

if (Lichtschrankeunterbrochen1 == LOW) { // Wenn Lichtschranke unterbrochen dann
Runde1++; // Runde1 hochzählen +1
if (Runde1==99) { // Wenn Runde 99 erreicht, dann zurücksetzen auf 0
Runde1=0;}


Serial.print("Wir sind jetzt in der "); // Ausgaben zum Serial Monitor, nur sichtbar am PC
Serial.print(Runde1);
Serial.println(" Runde Bahn1");
}
}

letzteRunde1 = Lichtschrankeunterbrochen1; // Den letzten Schalterzustand merken


if (digitalRead(reset) == HIGH) // Wenn Reset 1, Dann Runde2 = 0, Runde wird zurückgesetzt
Runde2 = 0;

Lichtschrankeunterbrochen2 = digitalRead(Lichtschranke2); // Lichtschranke2 Wert lesen und in Varibale Lichtschrankeunterbrochen2 speichern
if (Lichtschrankeunterbrochen2 != letzteRunde2) { // Der Zustand des Schalters hat sich verändert

if (Lichtschrankeunterbrochen2 == HIGH) { // Wenn Lichtschranke unterbrochen
Runde2++; // Runde2 hochzählen +1
if (Runde2==99) { // Wenn Runde 99 erreicht, dann zurücksetzen auf 0
Runde2=0;}

Serial.print("Wir sind jetzt in der "); // Ausgaben zum Serial Monitor, nur sichtbar am PC
Serial.print(Runde2);
Serial.println(" Runde Bahn2");

}

letzteRunde2 = Lichtschrankeunterbrochen2; // Den letzten Schalterzustand merken
}

auszugebende_Zahl = Runde1 * 100 + Runde2; // Formel umd Runden am Display anzuzeigen
sevseg.NewNum(auszugebende_Zahl,(byte) 2); // Ausgabe zum 4 stelligen 7 Segmentanzeige

}
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
05.03.2014, 16:42
Beitrag #4

GerdW Offline
______________
LVF-Team

Beiträge: 17.469
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: Datenübertragung Arduino Mega zu Labview
Hallo biede,

was sollen wir mit dem Arduino-Code anfangen?

Und musst du wirklich "Wir sind jetzt in der xx Runde Bahn1<LF>" über die serielle Schnittstelle schicken, wenn es auch die kürzere Botschaft "B1=xx<LF>" tun würde? Bei nur 9600baud macht das schon eine Menge aus…

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
05.03.2014, 16:48 (Dieser Beitrag wurde zuletzt bearbeitet: 05.03.2014 16:49 von biede1987.)
Beitrag #5

biede1987 Offline
LVF-Neueinsteiger


Beiträge: 6
Registriert seit: Mar 2014

2014
2013
DE



RE: Datenübertragung Arduino Mega zu Labview
Hallo ich hab hier mein arduino Programm, reingestellt ich beende meine nachricht zum schluss mit ln,
Beispie: Wir sind jetzt in Runde " " Bahn 1!

Wie meinst du das mit den keine Bytes at Port?

die 30 ms habe ich eingefügt das er immer alle 30 ms sekunden abfragt, ob was passiert ist oder nicht, dass kann ich auch höher setzen!

es kommt die RUnde ja auch an nur der Wert wird nicht gespeichert!
Ja das mit dem Wir sind jetzt in der Runde Bahn 1 war ja nur ein Beispiel,
ich kann das schön kürzer machen!
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
05.03.2014, 17:01 (Dieser Beitrag wurde zuletzt bearbeitet: 05.03.2014 17:19 von jg.)
Beitrag #6

jg Offline
CLA & CLED
LVF-Team

Beiträge: 15.864
Registriert seit: Jun 2005

20xx / 8.x
1999
EN

Franken...
Deutschland
RE: Datenübertragung Arduino Mega zu Labview
(05.03.2014 16:48 )biede1987 schrieb:  Hallo ich hab hier mein arduino Programm, reingestellt ich beende meine nachricht zum schluss mit ln,
Beispie: Wir sind jetzt in Runde " " Bahn 1!

Wie meinst du das mit den keine Bytes at Port?
Ganz einfach: Bei aktiviertem Term Char übernimmt LabVIEW die "Ende" Erkennung einer Botschaft. Du musst bei VISA-Read eine sehr große Anzahl von Bytes anschließen, der Lesevorgang wird trotzdem bei Erkennung des TermChar (oder des Timeout) beendet.

Bei deinem Vorgehen dagegen wird der Read-Vorgang in der Regel viel früher beendet, da Bytes at Port im schlimmsten Fall eine 0 (oder 1) zurückliefert, VISA-Read liest also 0 oder 1 Byte, du hast keine komplette Botschaft. EDIT: Und in diesen unvollständigen Botschaften suchst du dann nach deinem Suchtext...

Gruß, Jens

Wer die erhabene Weisheit der Mathematik tadelt, nährt sich von Verwirrung. (Leonardo da Vinci)

!! BITTE !! stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort!

Einführende Links zu LabVIEW, s. GerdWs Signatur.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
12.03.2014, 21:10
Beitrag #7

biede1987 Offline
LVF-Neueinsteiger


Beiträge: 6
Registriert seit: Mar 2014

2014
2013
DE



RE: Datenübertragung Arduino Mega zu Labview
Hallo Jens, kannst du mir bitte ein Beispiel Bild machen wie das mit dem Term Char ausehen soll?

soll ich aus dem bytes at port ein term char machen?
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
15.04.2014, 11:09
Beitrag #8

biede1987 Offline
LVF-Neueinsteiger


Beiträge: 6
Registriert seit: Mar 2014

2014
2013
DE



RE: Datenübertragung Arduino Mega zu Labview
Hallo Liebes Labview Team,

ich versuch grad weiter zuarbeiten an meinem Projekt!
Ich hab mir jetzt das arduino tool kit herruntergeladen, hat auch alles so weit geklappt,
hab auf meinem Arduino Steckbrett ein Taster angeschlossen um ein Eingang am Controller zu erhalten!

Ich möchte jetzt das ich wenn den Taster drücke eine 1 in Labview ankommt,Also das ich den Eingang abfrage in Labview!

Meine erste Frage ist muss am meinem Mikrocontroller, ein bestimmtes Programm aufladen, damit er mit Labview kommuniziert?
z.B? LIFA_Base

im Anhang ist meine VI angefügt, wer schön wenn wir jeamnd helfen könnte


Angehängte Datei(en)
13.0 .vi  ubung1.vi (Größe: 488,9 KB / Downloads: 323)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
15.04.2014, 11:41
Beitrag #9

biede1987 Offline
LVF-Neueinsteiger


Beiträge: 6
Registriert seit: Mar 2014

2014
2013
DE



RE: Datenübertragung Arduino Mega zu Labview
Labview erkennt nur den Eingag wenn ich dann auch schreibe

Serial.print(Eingang 13);

z.B Beispiel wenn ich z.B die Übung Blink nehme,
müsste man doch dann in Labview die 1 dann sehen oder?
Danke für euer HIlfe

/*
Blink
Turns on an LED on for one second, then off for one second, repeatedly.

This example code is in the public domain.
*/

// Pin 13 has an LED connected on most Arduino boards.
// give it a name:
int led = 13;

// the setup routine runs once when you press reset:
void setup() {
// initialize the digital pin as an output.
Serial.begin(9600);
pinMode(led, OUTPUT);
}

// the loop routine runs over and over again forever:
void loop() {
digitalWrite(led, HIGH); // turn the LED on (HIGH is the voltage level)
delay(1000); // wait for a second
digitalWrite(led, LOW); // turn the LED off by making the voltage LOW
delay(1000); // wait for a second
Serial.print(led);
}
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Antwort schreiben 


Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  Stepper Motor - Labview Interface for Arduino ? Spirograph 14 10.620 25.05.2021 06:59
Letzter Beitrag: MScz
  Temperaturmessung mit Arduino UNO und LabVIEW ElHemp 15 14.851 14.06.2016 20:54
Letzter Beitrag: GerdW
Question Kabellose Datenübertragung mit Xbee Funkmodul (Arduino) mit Visa über USB Eingang für MAC und WIN Marlon 17 16.737 15.01.2015 23:14
Letzter Beitrag: Marlon
  Arduino Mega 2560 Serielle Kommunikation RX/TX 1-3 NISI 0 6.662 05.05.2014 14:56
Letzter Beitrag: NISI
  RS-232 mit Arduino Philmo 4 8.199 02.04.2014 11:57
Letzter Beitrag: GerdW
  Arduino Mega mit Labview, zu langsam Jens0815 3 6.785 20.04.2013 21:05
Letzter Beitrag: Holy

Gehe zu: