da ich langfristig mehr Pins brauche, denke ich den Mega zu holen.
Ist denn der Arduino Mega einfach nur wie der Uno nur mit mehr Pins, hat also keine Nachteile und alles kompatibel und die Pins sind übereinander? Das heißt, z.B. der Pin 5 vom Uno ist an der selben Stelle wie der Pin 5 beim Mega? Dann wären ja alle Shields schonmal kompatibel.
Der MEga hat einen andern Controller, immer aus der selben Familie.
Dieser hat mehr RAM, Flash und EEPROM und mehr UART (Serielle Schnittstellen) mehr analoge Eingänge und Timer (PWM Ausgänge)
Einige Schnittstellen sind auf anderen Pins herausgeführt: I2C, SPI.
Nicht alle Sketche und Shields sind kompatiebel. Einige können adabtiert werden.
Grüße Uwe
Ganz reißerisch würde ich behaupten, dass 90% der Leute, die meinen mehr Pins zu benötigen, diese gar nicht brauchen. Ein- und Ausgänge lassen sich auch schön mit Schieberegistern erweitern, was zudem noch den "Programmierhoriziont" erweitert. Den größten Vorteil des Mega sehe ich in der stark erhöhten Speicherkapazität.
Wie auch immer, du hast ja beide Boards verlinkt, die Pins liegen an identischer Position. Die Boards sollten demnach kompatibel sein, wenn du dich klassisch auf klassische Ein- und Ausgänge beschränkst. Sonderfunktionen wie SPI und I2C sprach Uwe ja bereits an. Der große Nachteil des Mega ist der höhere Preis.
Seit heute ist übrigens der Arduino Due erhältlich, der wiederum pinkompatibel zum Mega ist. Die Software ist derzeit im Betastadium, er ist aber noch leistungsfähiger als der Mega (32bit vs. 8bit). Größtes Manko: läuft mit ausschließlich mit 3,3V und die Ausgänge dürfen nicht mehr so stark belastet werden. Was die Atmega328 nochmal verzeihen konnten, kann hier schonmal der Magic Smoke vortreten...
Danke für die Antworten!
Ich werde zunächst bei meinem Uno bleiben (habe ja schon zwei), allein weil ein Arduino recht teuer ist.
Von Shiftregistern habe ich schon gehört, mich damit aber noch nicht befasst. Dann habe ich wohl was zu tun
Sehe ich das richtig, dass man sie dann genauso benutzen kann wie einen digitalen oder sogar analogen Ein-/Ausgangs-Pin?
Problematisch wird das bei z.B. dem LCD, der ja in der Library als Klasse definiert ist, dessen constructor ja "integer"pins erwartet. Kann man die von den Shiftregistern auch irgendwie als integer zuweisen und dann als Paramter diesem constructor übergeben?
Aber könnte ich einen Ausgang auch als integer-Variable definieren, und dann mit digitalWrite arbeiten?
Wie ich jetzt gesehen habe, brauch der 74HC164 drei Eingänge und hat acht Ausgänge, also sozusagen 5 Pins zusätzlich.
Könnte man dann die acht Ausgänge z.B. 31,32,33,34,35,36,37,38 nennen und dann z.B. mit pinMode(33, OUTPUT) ihn als Ausgang definieren?
Und kann der Schieberegister genauso als digitaler Aus- wie Eingang benutzt werden?
Und gibt es auch die Möglichkeit, analoge Signale zu senden (PWM) oder zu lesen?