Forum: Mikrocontroller und Digitale Elektronik Arduino mit 200 I/O Ports?


von Martin H. (martl34)


Lesenswert?

Hallo,

hab ein neues Projekt und könnte ein bisschen Hilfe gebrauchen.

Ich habe auf der einen Seite 100x TTP223 Touch Sensoren und möchte auf 
der anderen Seite je einen von 100 LED-Streifensegmente mit je 20cm 
schalten. Bis hierher würde es ja mit direkter Verkabelung vom Sensor 
zum Streifen funktionieren, nur würde ich gerne RGBW-Streifen haben, die 
auch unterschiedlich auf den Touch-Impuls reagieren sollen (je nach 
Wunsch)

Ist das noch mit Arduino möglich, und wenn ja, welche I/O Boards brauch 
ich dazu? Oder ist das ganze im Raspi-Bereich besser aufgehoben? Oder 
ganz was anderes, womit ich dann aber 0 Erfahrung hätte.

Ausgangsseitig könnte ich mir noch die adressierbaren RGBW-Streifen ala 
WS2811 vorstellen, brauche ich da dann nur einen Daten-Ausgang den ich 
mit allen Streifen verbinden könnte?


Liebe Grüße und Danke im Voraus für hilfreiche Antworten :D

von Falk B. (falk)


Lesenswert?

Martin H. schrieb:
> Ist das noch mit Arduino möglich,

Ja.

> und wenn ja, welche I/O Boards brauch
> ich dazu?

Seriell angesteuerte.

> Oder ist das ganze im Raspi-Bereich besser aufgehoben?

Nicht zwingend, wenn gleich das auch geht.

> Ausgangsseitig könnte ich mir noch die adressierbaren RGBW-Streifen ala
> WS2811 vorstellen, brauche ich da dann nur einen Daten-Ausgang den ich
> mit allen Streifen verbinden könnte?

Sollte man nicht machen, das ist konzeptionell eher ungünstig. Besser 
mehrere Streifen, vielleicht 5-10.

von Wolfgang (Gast)


Lesenswert?

Martin H. schrieb:
> Ist das noch mit Arduino möglich, und wenn ja, welche I/O Boards brauch
> ich dazu?

Ein üblicher Weg könnten PISO Schieberegister sein, z.B. der 74hc165.

von Jens (Gast)


Lesenswert?

Nimm ws2812 LEDs, dann brauchst du zum ansteuern der 100 LEDs nur einen 
pin

von Axel S. (a-za-z0-9)


Lesenswert?

Martin H. schrieb:
> Ist das noch mit Arduino möglich, und wenn ja,
> welche I/O Boards brauch ich dazu?

Du bist nicht der erste, der sich einen 10x10 Felder Touch Tisch baut. 
Wie wäre es denn gewesen, mal nachzulesen, wie das andere machen?

von MaWin (Gast)


Lesenswert?

Martin H. schrieb:
> Ausgangsseitig könnte ich mir noch die adressierbaren RGBW-Streifen ala
> WS2811 vorstellen, brauche ich da dann nur einen Daten-Ausgang den ich
> mit allen Streifen verbinden könnte?

Ja.

Martin H. schrieb:
> Ist das noch mit Arduino möglich

Ja.

> und wenn ja, welche I/O Boards brauch
> ich dazu?

Es wird ja wohl nur 1 Touch zu einer Zeit gedrückt.

Das vereinfacht die Auswertung.

Ich wurde wohl eine 10 x 10 Matrix bauen, die schnell zyklisch 
ausgewertet wird.

Damit der Touch dann die Verbindung von Zeile und Spalte in der Matrix 
schalten kann, nutzt man entweder 100 Optokoppler oder 100 BC547 
Transistoren mit 47k Basisvorwiderstand.

Das kostet 20 pins am Arduino, also nicht das kleinste Modell.

Alternativ Analogauswertung, mit 11 Spannungspegeln pro Analogeingang 
bräuchte man 10 Analogeingänge am Arduino, auch hier nicht das kleinste 
Modell.

Oder man nutzt 74HC165 Schieberegister, braucht aber 13 Stück davon. 
Dafür tut es dann ein kleiner Arduino.

https://de.aliexpress.com/item/4001252471550.html

von Yalu X. (yalu) (Moderator)


Lesenswert?

Nimm einen IMXRT105x oder IMXRT106x. Damit kannst du ohne externe
Schieberegister alle Touch-Sensoren unabhängig voneinander einlesen, 100
WS2812 mit einem Refresh von über 300 Hz ansteuern und hast immer noch
20 GPIOs frei für andere schöne Dinge. Diese µC brauchen zwar einen
externen Flash-Speicher, aber bei diesen zwei ICs bleibt es dann auch.

Falls du selber keine BGAs löten kannst, kannst du damit auch eine Firma
beauftragen.

Die Arduino-Software kannst du vom Teensy 4.0 übernehmen.

MaWin schrieb:
> Ich wurde wohl eine 10 x 10 Matrix bauen, die schnell zyklisch
> ausgewertet wird.

Das geht nicht so ohne weiteres, weil der TTP223 keinen Chip-Select
hat.

von MaWin (Gast)


Lesenswert?

Yalu X. schrieb:
> MaWin schrieb:
>
>> Ich wurde wohl eine 10 x 10 Matrix bauen, die schnell zyklisch
>> ausgewertet wird.
>
> Das geht nicht so ohne weiteres, weil der TTP223 keinen Chip-Select
> hat

Daher habe ich dahinter geschrieben, WIE es geht.

von Falk B. (falk)


Lesenswert?

Yalu X. schrieb:
> Nimm einen IMXRT105x oder IMXRT106x. Damit kannst du ohne externe
> Schieberegister alle Touch-Sensoren unabhängig voneinander einlesen, 100
> WS2812 mit einem Refresh von über 300 Hz ansteuern und hast immer noch
> 20 GPIOs frei für andere schöne Dinge. Diese µC brauchen zwar einen
> externen Flash-Speicher, aber bei diesen zwei ICs bleibt es dann auch.
>
> Falls du selber keine BGAs löten kannst, kannst du damit auch eine Firma
> beauftragen.

Mann O Mann. Welche Drogen sind hier im Spiel? Der heißeste Scheiß, aber 
für Hobbybastler und mal sicher auch den OP komplett DANABEN!

von Yalu X. (yalu) (Moderator)


Lesenswert?

Falk B. schrieb:
> Der heißeste Scheiß, aber für Hobbybastler und mal sicher auch den OP
> komplett DANABEN!

Für dich vielleicht. Es gibt hier im Forum durchaus einige, die auch
BGAs im Hobbykeller bestücken. Außerdem kostet die Bestückung durch den
Platinenfertiger heute auch nicht mehr die Welt, zumindest dann, wenn
die Stückzahl etwas höher als 1 oder 2 ist.

Ich wollte mit meinem Vorschlag nur eine mögliche Alternative zu den
ansonsten propagierten 74er-Gräbern und und erst recht zu

MaWin schrieb:
> 100 Optokoppler oder 100 BC547 Transistoren mit 47k Basisvorwiderstand

aufzeigen.

Entscheiden, welches für ihn die praktikabelste Lösung ist, kann der TE
vermutlich selber.

: Bearbeitet durch Moderator
von (prx) A. K. (prx)


Lesenswert?

Yalu X. schrieb:
> Für dich vielleicht. Es gibt hier im Forum durchaus einige, die auch
> BGAs im Hobbykeller bestücken.

In Zeiten, in denen auch der Senf knapp wird, haben 164-er den 
unschätzbaren Vorteil, dass man sie notfalls in ausgelöteter und 
geputzter Form bei Chinesen des grössten Misstrauens noch kriegt. ;-)

von Stefan F. (Gast)


Lesenswert?

Wenn ein µC zu wenig Pins hat und alle eh das gleiche tun sollen, dann 
würde ich zwei µC (oder mehr) verwenden.

Oder halt Port-Expander wie wie den PCF8574 oder den MCP23017, oder 
Schieberegister wie 74HC165 und 74HC595.

von quotendepp (Gast)


Lesenswert?

Martin H. schrieb:
> Ich habe auf der einen Seite 100x TTP223 Touch Sensoren und möchte auf
> der anderen Seite je einen von 100 LED-Streifensegmente mit je 20cm
> schalten. Bis hierher würde es ja mit direkter Verkabelung vom Sensor
> zum Streifen funktionieren, nur würde ich gerne RGBW-Streifen haben, die
> auch unterschiedlich auf den Touch-Impuls reagieren sollen (je nach
> Wunsch)

* soll das ganze außer der farbe auch etwas anderes machen? (irgendwas 
ein-/ausschalten oder so?)
* muss die information über ein einzelnes feld überall bekannt sein?

=>

wäre es möglich, das ganze feld in kleinere einheiten (z.b. 4x5 felder) 
zu unterteilen und die teilcontroller ggf. untereinander zu vernetzen 
(evtl. mit einem master)?

das reduziert das problem mit der anzahl an benötigten I/O ports ganz 
gewaltig...

von Oliver S. (phetty)


Lesenswert?

Ich finde den TTP223 auch nicht schlecht aber damit 100 Touchs an einem 
Projekt zu realisieren halte ich für abenteuerlich.
Ein simpler Touchscreen könnte helfen.

von Frank M. (ukw) (Moderator) Benutzerseite


Lesenswert?

Martin H. schrieb:
> Ich habe auf der einen Seite 100x TTP223 Touch Sensoren

Warum 100x TTP223, wenn man mit einem TTP229 bereits 16 Kanäle hat? Das 
reduziert den Aufwand erheblich.

von Bruchmueller (Gast)


Lesenswert?

> Die Arduino-Software kannst du vom Teensy 4.0 übernehmen.

Kann man die Arduino-Software, entwickelt auf auf einen Teensy 4.0 (der 
ja den speziellen bootloader hat), tatsächlich auf einem custom board, 
ohne den Teensy bootloader, ausführen? Hat das schon mal jemand 
ausprobiert?

Ich dachte immer, dass der Arduino-Code auf Routinen im Bootloader 
zurückgreift.

von Stefan F. (Gast)


Lesenswert?

Bruchmueller schrieb:
> Ich dachte immer, dass der Arduino-Code auf Routinen im Bootloader
> zurückgreift.

Keine Ahnung, aber bei vielen Mikrocontrollern liegt das Programm mit 
und ohne Bootloader an unterschiedlichen Positionen im Speicher und muss 
daher neu compiliert werden.

Wie dem auch sei, du kannst den Quelltext mit der IDE öffnen und dann 
wahlweise für oder ohne Bootloader compilieren.

von Jan (Gast)


Lesenswert?

Ich habe als Hobbybastler schon so einiges gemacht, aber die Grenze der 
Vernunft ist bei QFN e=0.5mm erreicht. Nehme ich nur, wenn es kein QFP 
gibt und BGA? LOL, also n bissl Spass soll das ganze ja noch machen....

von Stefan F. (Gast)


Lesenswert?

Bruchmueller schrieb:
> Ich dachte immer, dass der Arduino-Code auf Routinen im Bootloader
> zurückgreift.

Offenbar trifft das auf den Teensy 4.o nicht zu

"Teensy 4.0's bootloader is stored in a dedicated chip. All of the main 
chip's memory is available to your program. Upon power up, your program 
runs immediately. The bootloader does not run automatically at startup, 
as is done with most Arduino compatible boards. The physically separate 
chip keeps Teensy's bootloader separate from your code and prevents 
flash programming from being able to damage or erase the bootloader."

https://www.pjrc.com/store/teensy40.html

von Johannes S. (Gast)


Lesenswert?

und den dedicated Chip kann man für 6 Dollar fuffzig kaufen. Also kein 
Problem wenn man ein custom board damit bauen möchte.
https://www.pjrc.com/store/ic_mkl02_t4.html

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.