Pages: 1 2 [3] 4 5   Go Down
Author Topic: Steuerung des Arduino via Excel (VBA) möglich?  (Read 5383 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Edison Member
*
Karma: 21
Posts: 1419
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Nein, wir reden nicht aneinader vorbei.

Natürlich ist auf dem Arduino ein Sketch, der die Ventile und die Kamera bedient. Was Du willst, ist aber, das die Parameter für die Steuerung (wann welches Ventil und wann welche Kamera auslöst) anpassen, und zwar OHNE das Du den kompletten Sketch neu hochladen musst.
Genau davon rede ich ja die ganze Zeit.

Im Prinzip macht Dein Sketch auf dem Arduino 2 Dinge.

1.) Er wartet darauf, das der "Auslöser" an Pin 13 gedrückt wird, dann spult er sein Steuerprogramm ab (Ventile, Kamera ...). Danach wartet er wieder auf den Auslöser.
2.) Zusätzlich zum Warten auf den Auslöser, prüft der Sketch regelmäßig die serielle Schnittstelle, ob da Daten übertragen wurden. Wenn ja, nimmt er die Daten an und ersetzt damit die bisherigen Stuerdaten.

Das ist der Teil auf dem Arudino.


Dein PC-Programm macht dann nix anderes als über ein Formular (egal in welcher Sprache) die Daten eingeben zu lassen und beim Drücken auf den "Start"-Knopf die Daten seriell an den Arduino zu schicken.

Logged

Offline Offline
Full Member
***
Karma: 0
Posts: 175
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ich glaube mit einem "kleinen" Display wird das nicht zu realisieren sein.

Ich möchte z.B. nicht immer das Ventil 1, Ventil 2 und Ventil 3 öffnen.

Ich möcht auch, dass z.B. "nur" Ventil 1 angesteuert wird und z.B. nach 3 sec. für 1 sec. öffnet und dann nach 4 sec. für 2 sec. öffnet.

Also alle Parameter sollen änderbar sein - auch die Anzahl und ansteuerung der Ventile.

Ich möchte z.B. auch zwei Kamras anschließen können. Mal will ich das beide Kameras angeschlossen sind und auch beide auslösen,
mal soll nur eine auslösen, mal ist nur eine angeschlossen, ...

Das geht wohl kaum über ein kleines Display mit 4 Zeilen und 4 Einstellknöpkes.

Anbei mal eine Grafik eines "fertigen" Programmes das so aussieht wie ich mir das vorstelle


* test.jpg (337.91 KB, 941x587 - viewed 88 times.)
Logged

Offline Offline
Full Member
***
Karma: 0
Posts: 175
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Dein PC-Programm macht dann nix anderes als über ein Formular (egal in welcher Sprache) die Daten eingeben zu lassen und beim Drücken auf den "Start"-Knopf die Daten seriell an den Arduino zu schicken.

Ja genau!

Und wenn das egal ist, mit welcher "Sprache" dieses "Formular" geschrieben wurde, dann müsste das doch auch mit Excel-VBA gehen (um auf die eingangs gestellte Frage zurückzukommen)? Und wie kann ich das ganze nun realisieren, dass das "Formular" mit dem Board "kommuniziert"?
« Last Edit: April 25, 2013, 08:45:34 am by obiwan » Logged

Germany
Offline Offline
Edison Member
*
Karma: 46
Posts: 2310
Arduino rocks
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Diese Darstellung war aber nicht Teil der ursprünglichen Fragestellung. smiley-grin Wie soll man als Leser des Threads bzw. auch Helfer darauf kommen?
Ich denke, du verrennst dich da schon etwas, das wird fürs erste Projekt zu viel, was dann wiederum in Frust endet und in der Regel mit der Aufgabe des Projektes. Wäre schade drum.
Logged

Mein Arduino-Blog: http://www.sth77.de/ - letzte Einträge: Teensy 3.0 - Teensyduino unter Window 7 - Teensyduino unter Windows 8

Offline Offline
Full Member
***
Karma: 0
Posts: 175
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Diese Darstellung war aber nicht Teil der ursprünglichen Fragestellung.

Ich dachte das Bild in #4 währe eindeutig gewesen?

Natürlich kommt erstmal Schritt 1 = Hardware
Dann Schritt 2 = Software = Sketch schreiben auf das Board laden
Und zum Abschluss käm dann noch die GUI zur Steuerung der Parameter.

Nur wenn Schritt 2 und 3 z.B. nur durch ein "komplettes" C Programm zu realisieren währen, oder schon bei Schritt 2 der Schritt 3 mit berücksichtig werden muss,
währe es doppelte arbeit die Schritte 2 und 3 nacheinander zu lösen.
Logged

Germany
Offline Offline
Edison Member
*
Karma: 46
Posts: 2310
Arduino rocks
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Ich dachte das Bild in #4 währe eindeutig gewesen?
Die neue Darstellung ist aber ungleich komplexer, und nicht mehr so leicht auf einem zeichenbasierten LCD umsetzbar wie ich das im Vorfeld dachte. Schwamm drüber, wenn es von Anfang an so kompliziert werden soll, musst du dir ein Protokoll überlegen, welches wirklich jede Einstellmöglichkeit abdeckt. Dieser Steuerungssatz wird dann über die serielle Schnittstelle übertragen, muss exakt empfangen, interpretiert und richtig ausgegeben werden. Hinweise zu dieser Herangehensweise hat mkl0815 ja bereis gegeben.
Logged

Mein Arduino-Blog: http://www.sth77.de/ - letzte Einträge: Teensy 3.0 - Teensyduino unter Window 7 - Teensyduino unter Windows 8

Wien
Offline Offline
Edison Member
*
Karma: 27
Posts: 1849
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

hi,

zum verständnis für obiwan. könnte schnell mal jemand die zehn zeilen für den arduino schreiben, damit man dann in den serial monitor
5
enter
800
enter
eingibt, und dann die led13 5mal für 800ms aufblinkt? ich sitz in der firma und hab' keinen arduino hier.
es ist glaube ich noch ein großes verständnisproblem. und damit wäre dann einiges klarer. eine gui statt des serial monitors ist dann der zweite schritt. die kann er sich in vba schreiben.

gruß stefan
Logged

Offline Offline
Full Member
***
Karma: 0
Posts: 175
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hinweise zu dieser Herangehensweise hat mkl0815 ja bereis gegeben.

Ja aber wie geht's nun weiter? Geht das mit Excel oder brauche ich ein anderes Programm um so ein "Formular" zur Übertragung der Daten vorzunehmen?

Ach ja, die komplexe Darstellung vier Beiträge zuvor sollte nur darstellen wie ich mir das vorstelle. So komplex brauche ich das nicht. Mir geht es nur um die Auswahlmöglichkeit der Ventile und die Zeitangaben.
Logged

Offline Offline
Full Member
***
Karma: 0
Posts: 175
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hier mal ein kleiner Beispielcode zur Verdeutlichung:

Code:
int led1 = 12;
int led2 = 13;
int pin    = 7;
int value = 0;

void setup()
{                
   pinMode(led1, OUTPUT);    
   pinMode(led2, OUTPUT);    
   pinMode(pin, INPUT);
}

void loop()
{
   vaule = digitalRead(pin);
   digitalWrite(led1, value);
   delay(1000);
   digitalWrite(led2, value);
}

Wenn ich den Taster an Pin 7 gedrückt halte leuchte die LED an Pin 12 auf,
dann kommt eine Sekunde Pause und dann leuchtet die LED an Pin 13 auf.

Ich möchte nun die Pausenzeit über ein "Formular" ans Board schicken können.
« Last Edit: April 25, 2013, 09:38:16 am by obiwan » Logged

Offline Offline
Edison Member
*
Karma: 38
Posts: 1152
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Schau dir doch mal das Beispiel ReadASCIIString an.

Da passiert genau das.

du gibt auf dem PC einen Wert ein, und der Arduino ändert daraufhin seine Werte.

Du kannst das auch mit nur einer LED machen, am allereinfachsten mit der LED an Pin 13, die schon auf dem Board ist, dafür mußt den Sketch anpassen.

der Zweite Schritt ist dann erst, auf dem PC eine grafische Benutzeroberfläche zu programmieren, die die entsprechenden Daten sendet.

Auf die Gefahr hin, mich zu wiederholen:
Fang klein an.
Kleine Codestückchen, mit kleiner Hardware, das dann Schrittweise erweitern.

Wenn du gleich alles auf einmal machen willst, dann wirst du verzweifeln und alles hinwerfen.

Gunther
Logged

Grüße
Gunther

Germany
Offline Offline
Faraday Member
**
Karma: 56
Posts: 2983
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Du bist doch der VBA-Fuzzy, obiwan!

Frage an den Excel-VBA Experten: gibt es ein ActiveX control, das serielle Schnittstelle kann:

- Herausfinden welche es Ports gibt
- Port öffnen
- Baudrate einstellen
- Text senden.

Und kannst du das in deine ExcelUmgebung integrieren ?

Sonst steigst du halt mal von VBA auf VB.net um. Da ist sowas auf jeden Fall drin.
Logged

Offline Offline
Full Member
***
Karma: 0
Posts: 175
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

BÖMISCHE DÖRFER DAS SIND FÜR MICH...  smiley-red

Ich bauche nur den Hinweis zur Verbindung beider Welten.
Logged

Germany
Offline Offline
Faraday Member
**
Karma: 56
Posts: 2983
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Quote
Hinweis zur Verbindung beider Welten
Hast du schonmal google nach
"vba serielle schnittstelle ansprechen"
gefragt?

Der Arduino ist eine serielle Schnittstelle ( COM4 oder so, wie du es auch in der IDE / SerialMointor siehst. )
Logged

Offline Offline
Full Member
***
Karma: 0
Posts: 175
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Danke für den Tip! Werde mich da mal einlesen.
Logged

Cologne
Offline Offline
Sr. Member
****
Karma: 11
Posts: 496
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Es gibt ein ActiveX -> http://www.parallax.com/tabid/393/Default.aspx
Das ist zwar mehr zur Datenerfassung gedacht bietet aber auch einige Möglichkeiten der Rückmeldung.
Das habe ich für mein Projekt Pulsmonitor http://dingfabrik.de/2012/11/19/ding-des-monats-112012-biofeedback-mit-arduino/ benutzt.
Logged

Pages: 1 2 [3] 4 5   Go Up
Jump to: