Hallöle,
Mein Modellbauverein hätte gerne eine digitale Steuerung für den Bahnhof, also werde ich eine bauen / programmieren
Meine Wahl ist auf den Arduino gefallen weil am praktischsten und so...
Jetzt hätte ich ein paar Fragen:
Ich brauche ca. 70 Digitale Inputs und 4 Analoge Inputs. An Outputs brauche ich ca. 70 Stück (LEDs leuchten lassen). Außerdem brauch ich noch nen Bildschirm...
Da das Steuerpult ja nicht da steht wo z.B. die Weiche gesteuert wird muss ich 2 Arduinos mit LAN Board nehmen und die per UDP kommunizieren lassen. Soweit so gut, aber an dem anderen Arduino brauch ich auch noch ca. 70 Outputs.
Jetzt ist die Frage:
Welchen Arduino muss ich jeweils nehmen? Und noch ne generelle Frage: Wird das Ding jetzt in Java oder C++/C programmiertSieht mir doch stark nach Java aus, oder?
TFT + Ethernet geht auf einem Mega. Bei einem 3,2" mit Shield muss man beim Anschluss etwas kreativ werden aber es geht. Oder den Ethernet Controller als Breakout Board nehmen. Kleine TFTs gibt es auch mit SPI.
Die LED Strips kann man wie gesagt seriell ansteuern. Dafür reicht dann ein UNO oder gar ein Nano.
Auch wenn du wirklich 70 I/Os brauchst, gibt es da noch andere Lösungen mit Schieberegistern, I2C Port-Expander oder externen PWM Controllern. Man braucht nicht immer gleich einen zusätzlichen µC.
Ja, PWM ist hier unnötig. Aber bei anderen externen Bausteinen gilt das gleiche. Man kann ein Arduino Board auch so mit ein paar ICs oder Breakout Boards erweitern.
Den kleinen mit 300x100px oder sowas in der Richtung finde ich ganz gut.
Also könnte ich mit einem MEGA pro "Seite" auskommen, wenn ich nen I²C Expander nutze?
Du bräuchtest schon mehrere. Ein PCF8574 macht 8 Bit. Und man kann 7 Stück mit den 3 Adressleitungen adressieren.
Der MCP23017 hat 16 Bit und hat auch 3 Adressleitungen.
Wobei du da auch bedenken musst, dass du direkt mit denen keine LEDs treiben kannst. Die machen nur ca. 100mA pro IC. Dann braucht man noch einen Treiber. Auch deshalb wären LED Strips vielleicht die bessere Wahl.
Die LED Strips gibt es auch ohne Strip. Allerdings hast Du dabei 4 Anschlüsse pro LED (5V, Gnd, Din und Dout). Aber nur eine Datenleitung vom µC. Und dafür gibt es eine tolle Library: FastLED
mgcss:
Der DigiX http://digistump.com/products/50 ist Arduino-DUE kompatibel und hat von Haus aus 99 I/O Pins. Gibt's auch von nem deutschen Distributor.
Hilft aber auch nur bedingt weiter. Zwar hat dieser wirklich deutlich mehr Ports, aber dadurch steigt nicht die maximale Leistung, die über den Linearregler laufen kann.
Die Idee mit den WS28xx Strips ist hier sinnvoller. Es wurde gesagt, diese gibt auch als "nicht" Strip. Dabei handelt es sich dann nur im das Bauteil. Die Bedrahtung ist einfach. Es wird lediglich noch ein Kerko benötigt. Jedoch weiß ich nicht,. in wie weit du diese Strips einbauen kannst. Alternativ gibt es den IC, der bei den WS28xx verbaut ist, auch einzeln. Dann müsstest du halt vor jeder LED ein solches IC verbauen.
sschultewolter:
Die Idee mit den WS28xx Strips ist hier sinnvoller. Es wurde gesagt, diese gibt auch als "nicht" Strip. Dabei handelt es sich dann nur im das Bauteil. Die Bedrahtung ist einfach. Es wird lediglich noch ein Kerko benötigt. Jedoch weiß ich nicht,. in wie weit du diese Strips einbauen kannst. Alternativ gibt es den IC, der bei den WS28xx verbaut ist, auch einzeln. Dann müsstest du halt vor jeder LED ein solches IC verbauen.
Etwas preziser:
WS2811 ist ein PWM-LED-Treiber/Controller zum Anschluß einer 6 poligen RGB LED.
WS2812 hat den Treiber im LED integriert.
WS2812B hat statt 6 Pins nur mehr 4 ist aber sonst weitgehend aber nicht wirklich 100% kompatibel zum WS2812.
Alle genannten Bauteile haben ein 1 -Draht Interface wobei das Eingangsignal abzüglich der eigenen Daten am Ausgang Wiederholt wird. Tehoretisch können unendlich viele hintereinander geschaltet werden. Praktisch bestehen Grenzen wegen der Signalbusfrequen und gewollten Aktualisierungsfrequenz.
WS2801 ist ein PWM-LED-Treiber/Controller zum Anschluß einer 6 poligen RGB LED. Er besitzt ein 2 Draht interface (Daten und Takt).
Also,
Wie mach ich das jetzt am besten? Mit diesen komischen LEDs bei denen ich nicht blicke wie man die ansteuert (:D) oder mit einfach vielen I/O pins? Oder mit nem Stackbaren Expander??
Was würdet ihr empfehlen? Das mit den LEDs gefällt mir iwie nicht sooo recht...
@Uwefed: Dann sei auch noch der WS2803 erwähnt, ein 18 Kanal PWM LED Treiber / Controller für 6 RGB LEDs.
2 Draht Interface bis 25MHz.
... ist ein PWM-LED-Treiber/Controller zum Anschluß einer 6 poligen RGB LED.
Du meinst sicherlich zum Anschluß von 2 RGB LEDs?!
@java4ever: Die Ansteuerung ist wirklich kein Problem, Du schreibst einfach alle Helligkeiten/Farben in ein Array, sendest das, fertig. Wie gesagt, es gibt eine Library dafür, die sich um alles kümmert.
So sehen die WS2812 LEDs aus: http://www.watterott.com/de/WS2812-Intelligent-RGB-LED-10-Stueck
Also ich werde jetzt erstmal ein LCD Display und einen Arduino Uno bestellen, oder was sagt ihr?
Das mit den LED Streifen ist doof, weil das ja ein Steuerpult ist und die LEDs nicht direkt aneinander hängen...
Also wenn ich mit 50LEDs á 20mA an 5V Rechne komme ich auf 1A, passt doch! Außerdem leuchten nicht alle LEDs gleichzeitig