www.mikrocontroller.net

Forum: PC-Programmierung VB.Net Arduino und PictureBoxen


Autor: Jonas H. (fujitsu313)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Moin Leute,

Hier seht ihr mein Terminal Programm. Ich habe mal einen Screenshot 
gemacht wie das Programm aussieht.

Jede Picturebox soll später am Arduino 1 LED zum leuchten bringen, bzw 
ausschalten. Meine erste Idee war, den Code für jeden Click usw selber 
zu schreiben, aber irgendwie war das ganze später zu lang und hat nicht 
richtig funktioniert. Die nächste Idee war, wenn auf die Picturebox 
geklickt wird, wird die Farbe geändert und dem Arduino wird über den 
Serialport eine Anweisung gesendet, das ganze wollte ich noch mit der 
Funktion, wenn die Farbe geändert wird, soll etwas passieren. Leider hat 
das nicht funktioniert.

Ich hoffe ihr habt eine Idee und wisst ungefähr was ich machen will und 
könnt mir sogar helfen.

Gruß Jonas

Autor: Sven H. (dsb_sven)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Du kannst an statt der Picture Boxen Buttons nehmen oder Panels. Beide 
haben einen OnClick Event.

Dann musst du den Elementen (Picture boxen, buttons oder panels) 
vernünftige Namen geben.

Wenn du jetzt bei allen Elementen die gleiche Funktion angibst als 
Eventhandler für OnClick kannst du in der Funktion den Parameter 
"sender" verwenden um raus zu bekommen, welches Element geklickt wurde.

Dann könnte die Vorgehensweise etwa so sein (ist c#, sorry dafür)
Panel p = sender as Panel;

string element = p.Name.Substring(10,2); // für den Fall, dass du die Elemente mit einem 10 Zeichen langen Namen und dann einem Index von 2 Zeichen versehen hast. Sonst musst du natürlich anpassen.

int index = int.Parse(element);

// Jetzt hast du in index den index des geklickten Feldes. Den übermittelst du an den µC und machst damit was auch immer.


Autor: Jonas H. (fujitsu313)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Okay schonmal danke.

Ich werde es aber beibehalten und die Boxen von 1-64 durchnummeriert 
lassen.

Du meinst jetzt ungefähr, wenn ich bei jeder Box das selbe Event habe, 
kann ich mit einer Funktion bestimmen bei welcher Box die Farbe geändert 
wurde und bestimmen was dann passieren soll?

Autor: Valentin Buck (nitnelav) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich würde einfach ein großes Panel nehmen, das Raster als 
Hintergrundbild.
Dann über MouseClick die Koordinaten (e.Y und e.X) nehmen, durch die 
Anzahl der Teilungen teilen (\10 ?) und fertig.
Wenn Farbwechsel erwünscht ist, einfach noch mit 
Panel1.creategraphics.fillrect(Brush.red,x,y,height,width) die Stelle am 
Panel rot ausfüllen.
Mit freundlichen Grüßen,
Valentin Buck

Autor: Jonas H. (fujitsu313)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich würde dann schon gerne Pictureboxen nehmen, aber danke dir. Das 
einzigste Problem war eigentlich nur, dass es schon den Code vor dem 
öffnen des Ports gesendet hat und sich irgendwie eine endlose Schleife 
ergeben hat.

Autor: Sven H. (dsb_sven)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Jonas H. schrieb:
> Du meinst jetzt ungefähr, wenn ich bei jeder Box das selbe Event habe,
> kann ich mit einer Funktion bestimmen bei welcher Box die Farbe geändert
> wurde und bestimmen was dann passieren soll?

Genau.

Und wenn du was senden willst öffnest du den Port, sendest und schließt 
ihn wieder. Damit ist zumindest sichergestellt, dass der Port offen ist, 
wenn du senden willst.

Autor: Jonas H. (fujitsu313)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ok, dann werde ich die Tage wenn ich mal Zeit mir das anschauen ;D

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.