hallo liebe Gemeinde,
seit ein paar Tagen verfolge ich ein Projekt (2achsige Maschine).
daher meine frage kann ich mit einem touchdisplay auf dem ich z.B. 3 Buttons erstelle mit
"Referenzfahrt" , "Start", "Stop"; diese maschine so ansteuern und zb auch noch die aktuelle motorposition auslesen lassen?
mein gedanke:
ich drücke die taste Referenzfahrt und die beiden achsen fahren zu den endschaltern und dann auf die position 1
danach drücke ich "start" und die maschine fährt position 1 bis zb. 5 ab doch wenn ich zwischendurch auf "Stop" drücke so wie ein Not aus bleibt sie stehen.
so nun zu meinem Programm ich habe schon alles geshchrieben also die referenzfahrt und endschalter und er fährt auch alle anderen positionen ab.
nun wollte ich hald als "Schmankerl" noch die motorposition und eben die buttons hinzufügen.
Nun meine Hardware:
Arduino mega,
Arduino motorshield (2stepper),
arduino tft LCD Mega Shield,
TFT display 3,2 Zoll.
Bitte Links zur Hardware, die nicht von Arduino selbst stammt sowie zu den Bibliotheken, die Du dazu verwendest. Und poste den Code, den Du schon hast.
pressedButton gibt dir die Nummer des Buttons zurück. Angefangen bei 0 in der Reihenfolge in der sie angelegt wurden. Du kannst dann abfragen ob pressedButton 0, 1 oder 2 ist. Entweder mit if/else oder switch/case
Du kannst auch mal kleiner anfangen und einfach mal Serial.println(pressedButton) machen
Hier ist auch praktisch sich ein oder mehrere enums mit Button-Namen anzulegen. Ich habe z.B. sowas:
ok das hört sich sehr vielversprechend an danke schon mal ich werde es später gleich mal testen.
noch eine frage welche ausgänge auf dem mega brauch ich denn für das shield?
weil ich will ja eig das motor shield draufstecken und das display mit brücken/jumper weiter weg verbinden.
daher frage ich mich wie ich das am besten mache?
Das Shield da ist zwar von ElecFreaks, aber die sollte von der Verdrahtung her gleich sein. In der rechten Spalte sind alle Pins die belegt sind. Das sind auf der doppelten Buchsenleiste die meisten (dazu noch GND). Dann 2-7 für das Touch Interface. 50-53 sind für SPI und können auch mit anderen Devices geteilt werden. Und dann glaube ich noch 3.3V, 5V und GND auf der Spannungsversorgungsleiste unten links.
Habe das aber selbst noch nicht abgesetzt betrieben.
Geht das Standard Beispiel von UTFT Buttons? Probier erst mal das bevor du was änderst.
Ich habe bei mir glaube ich ein Problem mit dem Reset des Touch Controllers. Wenn ich einfach USB reinstecke geht es meistens nicht. Wenn ich aber das Netzteil verwende geht es.
Grrr. Jetzt sehe ich es auch. Damit hast du eine Endlosschleife und der Code dahinter wird nie ausgeführt.
Genaugenomen ist das Beispiel für den Arduino etwas unschön. Das mit while(1) braucht man auf einem reinen AVR System. Auf dem Arduino gibt es dafür setup(). Du solltest deinen einmal auszuführenden Code in setup() packen. Dann braucht du kein while(1), da du das schon mit loop() hast.