Arduino Uno, Motorshield und Stepper Motor mit Touchscreen und Thermosensor

Moin,

Ich möchte mit einem Arduino Uno R3 einen Stepper Motor (NEMA17, 12V, 0.4A) mit Hilfe des Adafruit Motorshield v2.3 zum Laufen bringen. Das funktioniert soweit super und is kein Problem. Um den Motor steuern zu können (Start, Stopp, Veränderung der rpm) und die aktuelle Geschwindigkeit anzuzeigen, möchte ich mit Hilfe des Adafruit 2.8'' TFT Touch Shield capacitive dies ermöglichen. Diese möchte ich aufeinander stecken, um Kabelsalat zu vermeiden (Uno, Motorshield, Touch Shield). Was haltet ihr davon? Muss ich irgendwas beachten oder sollte es da keine Probleme geben (Uno über USB, Motorshield über 12V Adapter)? Kennt jemand evtl. eine gute Library mit einem kompatiblen sketch für diese 3-4 Befehle zum Steuern des Motors?

Falls das alles funktionieren sollte, würde ich gerne einen Thermo Sensor Max31856 (mit Typ T) zusätzlich anschließen und mir ebenfalls die zu messende Temperatur anzeigen. Wie mache ich das am besten, wenn die Shields aufeinanderstecken und die header alle Lötstellen blockieren oder gibts da auch Probleme?

Vielen Dank schonmal im Voraus.

Beste Grüße

Erik

Siehe mein Tutorial auf Multi-tasking in Arduino mit einem vollständigen Schrittmotorbeispiel, das über ein Thermoelement und eine Benutzereingabe gesteuert wird.

Das TFT-Update kann jedoch die Stepperbewegung stören. Im Tutorial erfahren Sie, wie Sie die Reaktionsfähigkeit der stepper.run() methode messen

Vielen Dank erstmal für die schnelle Antwort und den Link. Inwiefern kann die Stepperbewegung gestört werden? Ich habe gelesen, dass mehrer I2C kein Problem darstellen. Das Touch Shield braucht D 4, 9, 10, 11, 12, 13, SDA (A4) und SCL (A5) und das Motorshield D 9, 10 (nur wenn die Servos benötigt werden, ich werde keine verwenden), SDA and SCL. SDA and SCL sollten kein Problem sein, da I2C und unterschiedliche Adressen. Der Thermo Sensor braucht wohl 4 übrige digitale Pins und eben 5V und GND....

Überprüfen Sie die Sensorbibliothek auf Verzögerungen und die Aktualisierung des gesamten TFT-Bildschirms kann langsam sein, sodass Sie dies möglicherweise in Teilen tun müssen, wenn der Stepper läuft.
Verwenden Sie den loopTimer für die stepper run()-Methode, um zu überprüfen, wie oft sie aufgerufen wird und ob dies schnell genug für Ihre maximale Geschwindigkeit ist.

Wo genau hast du ein Problem mit I2C ?
Dein Sensor wird per SPI gesteuert und das Steppershield benötigt auch kein I2C.
Welches Display du nutzt, solltes du noch mal genau beschreiben, aber auch das braucht sicher kein I2C.

Einspruch

das Adafruit Motor/Stepper/Servo Shield for Arduino v2 Kit [v2.3] : ID 1438 : $19.95 : Adafruit Industries, Unique & fun DIY electronics and kits schon. Braucht dafür aber keine anderen Pins, nur D9 und D10 wenn Servos angesteckt sind. .
Das hat einen PCA9685 und 2 TB66612
Grüße Uwe

Ups...danke Uwe, da habe ich mich tatsächlich am falschen Shield orientiert.
Eben Mist, wenn man kein direkten Link bekommt. (Ausrede). :wink:

Ja genau das Motorshield, welches uwefed verlinkt hat, verwende ich. Ebenfalls benutze ich dieses 2.8'' TFT Touch Shield (capacitive). Die würden sich dann mit unterschiedlichen Adressen die I2C Pins teilen. Alternativ kann man auch das 2.8'' TFT Touch Shield (resistive) verwenden, das würde über SPI mit den digitalen Pins von 8-13 laufen. Hat einer Erfahrungen mit genau den Bauteilen und wie sieht das mit dem Thermo Sensor aus? Was ist grundsätzlich besser in diesem Fall, SPI oder I2C? Bin ahnungslos in diesem Bereich und habe die Befürchtung, wenn ich diese 3 Komponenten (Uno, Motor shield und Touchscreen und dann noch den Thermosensor) aufeinander stecke, das da nichts richtig funktioniert, klingt irgendwie zu einfach... :roll_eyes:

Genau das ist das Problem.
Mehr als 2 Shields aufeinander zu stecken, kann def. Probleme bringen.
Da musst du auf die Pins achten, für SPI wird der CS oder CE Pin unterschiedlich gesteckt werden. Das wird meist ein Problem bei den Shields. Leider kann ich da nicht mehr zu beitragen, da ich die Module nicht einsetze.
Und I2C kann da einfacher sein, da die Module wie du schon geschrieben hast, per Adresse angesprochen werden.

Okay danke dir, aber in dem Fall, wenn ich das resistive Shield benutze, wäre kein Pin doppelt belegt. Motorshield SDA (A4) und SCL (A5), Touch Shield D 8,9,10,11,12,13, (4 für MicroSD) und Thermo Sensor D 2, 3, 5, 6, GND, 5V. Wäre da ein Unterschied, wenn ich das Motorshield auf den Uno setze und anstelle den TouchScreen oben drauf den lose lasse und nur die oben genannten digitalen Pins für den Thermosensor und den Touchscreen fest löte? Kennt jemand evtl. auch einen besseren guten Touch Screen zur Befehlsausgabe mit guter Bedienung und wenig Kabelsalat?

Dann schau dir die Nextion-Displays an.
Die werden seriell (2 Leitungen + Spannungsversorgung) angesteuert.
Das sind HMI mit eigener Intelligenz.

@HotSystems, danke! Ja von denen habe ich auch gehört und sollen sich wohl recht einfach programmieren lassen. Dafür brauche ich nur einen Windows Rechner. Läuft die Stromversorgung übers Arduino/ Motorshield oder extern?

Ein virtuelles Windows sollte reichen.
Das Display braucht 5Volt, wie auch der Uno.
Ob die 5Volt aus dem Uno reichen, häng von mehreren Faktoren ab.

Ich arbeite mit einem 12V 2A Power Adapter der sollte für alles ausreichen. Habe leider nur eine 128GB SSD, kein Platz leider :smiley:
Aber im Labor haben wir welche. Weißt du welche Pins belegt werden für das Nextion-Display?

Du kannst beliebige Pins (außer D0 und D1) mit der SoftwareSerial verwenden.

This topic was automatically closed 120 days after the last reply. New replies are no longer allowed.