Kleinere und billigere Alternative zu Arduino Uno für dauerhafte Projekte


14

Ich habe ein bisschen mit einem Arduino Uno gespielt, der in einem Kit mit einem Steckbrett und Komponenten geliefert wurde. Bald möchte ich noch einige dauerhafte Dinge machen.

Ich würde eine kleinere und billigere Einheit als das Arduino Uno bevorzugen, aber das ist fast so einfach zu bedienen wie das Arduino Uno und sehr ähnlich zu bedienen.

Ist der Arduino Pro Mini 328 - 5V / 16MHz ein logischer nächster Schritt? Bei 1/6 der Größe des Arduino Uno ist es viel kleiner. Bei 10 $ pro Stück ist der Preis auch gut.

Ich verstehe, dass ich löten muss, damit es funktioniert. Das sollte kein Problem sein.

Benötige ich auch eine serielle USB-Karte, um das Gerät zu programmieren?


2
nächstes kleiner mit 328p ist Nano
Juraj

1
ATmega32u4-Chips sind auch ein guter Schritt (wie Leonardo) für 8-Bit-Micro. Die Codierung unterscheidet sich geringfügig von UNO / 328p (insbesondere bei seriellen Geräten), Sie vermeiden jedoch den USB / Seriell-Konverter. Schließlich können Sie Ihre eigenen Leiterplatten herstellen und die SMD-Chips für ein wirklich kompaktes Projekt verwenden.
MichaelT

1
Pro Mini, 5V 16MHz Modul mit Kristalloszillator ($ 2.18CDN): aliexpress.com/item/… . PL2303HX USB zum UART Adapter ($ 0.70CDN): aliexpress.com/item/… .
VE7JRO

Antworten:


8

Ich denke, die erste beste Wahl ist, den ATMega328p-pu-Chip von Ihrem Arduino UNO zu entfernen und ihn in Ihre endgültige Schaltung zu integrieren. Die Chips kosten nur ca. 1,50 US-Dollar.

Auf diese Weise können Sie Ihr UNO anstelle des endgültigen Geräts, das Sie bereitstellen, einfach als Programmierer verwenden.

Ich bin mir nicht sicher, warum es nach Abschluss der Programmierung keine weitere Dokumentation gibt, wie der ATMega328p-pu-Chip ordnungsgemäß entfernt und auf Ihrem Steckbrett verwendet werden kann.

Wie das genau geht, erkläre ich auf meinem Blog: http://raddev.us/arduino/post/2018/07/03/arduino-uno-using-your-atmega328p-u-as-standalone

Aber hier sind die Grundlagen. Zuerst entfernen Sie den Chip. Danach sieht es wie folgt aus. (Hinweis: Ich verwende den Elegoo-Klon einer UNO.)

atmega328p-pu chip entfernt

Als nächstes legen Sie Strom an Pin 7 an und verbinden Pin 8 mit GND.

Brauche einen 16MHz Kristall

An diesem Punkt scheint der Chip Ihre Skizze jedoch nicht auszuführen. Das liegt daran, dass Sie tatsächlich einen Kristall benötigen, um mit 16 MHz zu arbeiten.

Auf dem UNO-Board ist dieser Chip installiert, und deshalb funktioniert er. Sie können es hier sehen:

16MHz Quarz auf UNO

Schließlich fügen Sie den 16-MHz-Kristall und ein paar 22pF-Kappen hinzu, und Ihr Chip wird eigenständig ausgeführt (ohne UNO).

Sie fügen den Kristall den Stiften 9 und 10 hinzu. Sie können alle Details sehen, indem Sie meinen Blogeintrag lesen oder das atmega328-Datenblatt lesen .

Kristall auf Steckbrett

Schließlich verdrahten Sie einfach alles andere

Danach verbinden Sie einfach den Rest Ihres Stromkreises mit den richtigen Pins und Sie können Ihren ATMega328p-pu eigenständig betreiben.

Eigentlich ist es auch eine schöne Lernerfahrung.
Kaufen Sie einfach Ersatz-atmega328p-pu-Chips für Ihre UNO und Sie können alle gewünschten Projekte sehr günstig erstellen.


2
Es wäre gut, wenn Sie dort einen zusätzlichen Schaltkreisschutz installieren würden, da das 328p über keinen eigenen verfügt. Ansonsten ist dies ein guter Weg.
SnakeDoc

1
@duskwuff, ich glaube das geht nur wenn du DAC machst. Dies ist nur ein einfaches Beispiel, um jemanden dazu zu bringen, den Chip als eigenständiges Gerät zu verwenden. Ich versichere Ihnen, dass der Code zum Blinken der LED im Beispiel ausgeführt wird. Als ich anfing, erstellte ich die Schaltung, die ich oben in einem Kommentar erwähnte, und ich verband nie AVCC und GND, und die Schaltung lief zwei Jahre lang. Natürlich sage ich nicht, dass das immer wahr sein wird. Ich erwähne nur die Art und Weise, wie der Chip tatsächlich funktioniert. Wie immer überprüfen Sie das Datenblatt auf genaue Spezifikationen und insbesondere, wenn Sie etwas anderes erleben. Vielen Dank.
Raddevus

1
@raddevus Siehe Tabelle 28.8 im Datenblatt: "AVCC absolut min / max: 1,8 V / 5,5 V". Wenn Sie das AVCC nicht mit Strom versorgen, entspricht dies nicht den Spezifikationen und kann Schäden verursachen. Der GND-Pin an Pin 22 ist nicht speziell mit dem ADC verbunden und muss mit GND verbunden werden.
Duskwuff

1
@duskwuff Danke für die aufschlussreiche Diskussion. Ich stimme dem zu, was Sie sagen, und werde meine Dokumente und Schaltkreise bald ändern, um sicherzustellen, dass immer eine Verbindung besteht. Zu Ihrer Information: Ich habe angefangen, mit ATMega328p-pu über das fantastische Buch AVR Programming: Software für Hardware schreiben lernen ( amzn.to/2PS9OOA ) zu arbeiten, und in diesen ersten Schaltkreisen hat der Autor Elliott Williams diese Pins ebenfalls nicht angeschlossen. Ich glaube, das hat mich beeinflusst. Das Buch ist wirklich großartig und der Autor kennt sich aus. Nochmals vielen Dank, tolle Diskussion.
Raddevus

1
@reddevus. Genauer gesagt ist der Kristall, den Sie in dieser Antwort in der roten Box angegeben haben, der Kristall, der vom Mikrocontroller verwendet wird, der die USB-Kommunikation abwickelt, und nicht vom ATmega328p-pu-Chip. Sie können den Uno-Diagrammen entnehmen, dass der ATmega328p-pu-Chip tatsächlich einen Resonator verwendet: mouser.com/ProductDetail/Murata-Electronics/…
Kavka

7

Überprüfen Sie das STM32F103C8T6-Entwicklungsboard, kostet etwa 1,5 US-Dollar und ist schneller / hat mehr Speicher als das Arduino Uno und ist viel kleiner.

Es kann mit der Arduino IDE zusammenarbeiten, aber nicht alle Bibliotheken werden unterstützt. Überprüfen Sie daher, bevor Sie es verwenden möchten, ob Ihre verwendeten Bibliotheken unterstützt werden oder ob es andere Bibliotheken gibt, die Sie stattdessen verwenden können.

Aktualisieren

Unterschiede:

                       Arduino Uno       STM32F103C8T6 Mini Dev Board

MicroController            Atmega328P           Cortex M3
MIPS/MHz                        1                   1.25
Operating Voltage [V]           5                   3.3, most pins 5V tolerant
Input Voltage   [V]            7-12               USB only
Input Voltage (limit) [V]      6-20                (USB)
Digital I/O Pins               16                   37
From them:PWM Digital I/O Pins  6                   12
Analog Input Pins               6                   10
DC Current per I/O Pin [mA]    20                    ?
DC Current for 3.3V Pin [mA]   50                    ?
Flash [KB}                     32                   64
SRAM [KB]                       2                   20
EEPROM [KB]                     1                    -
Clock Speed [MHz]              16                   72

I2C                             1                    2
SPI                             1                    2 (18 MBit/s)
UART                            1                    3
CAN                             0                    1
USB                             0          USB 2.0 FS 12 MBit        
DMA                             0          7 channels (ATsP, SPI, I2C, USART)
RTC                             0                    1
CRC                             0                    1
Unique ID                       0                    1

Programmed by                  USB                 SWD Debug (around $5)

IDE                         Arduino IDE         Arduino IDE, CubeMX, ...
Libraries                      Many               Limited

Dimensions  [mm]            68.6 x 53.4           53 x 22
Weight       [g]               25                    ?
Price (cheapest)  [$]         2.50                 1.50

Hinweis: Wie bereits erwähnt, werden trotz der meist besseren Spezifikationen nicht alle Bibliotheken unterstützt. Außerdem muss ein Programmierer gekauft werden (kostet nur einmalig ca. 5 USD).


1
Sie können es auch vermeiden, den Programmierer zu bekommen, wenn Sie die Maple Mini-Klone erhalten (dasselbe uC, fast dasselbe HW, aber mit einem bereits geflashten Bootloader)
frarugi87

1
@ frarugi87 Oder Sie können den eingebauten UART-Bootloader (aktiviert durch Setzen von BOOT0 auf Hoch) für die Erstprogrammierung verwenden.
Duskwuff

Der STM32F103C8T6 ist ein großartiger Teil. Aber es ist immer noch nur 3,3 V. Es ist kein Tropfen Ersatz für den Uno. Versuchen Sie, es an ein 5-V-LCD anzuschließen, und Sie werden Probleme haben, wenn es überhaupt funktioniert. (das LCD)
Rudy

6

Für mein Produkt ging ich von einem Arduino Uno :

Arduino Uno R3

zum Arduino Pro Mini :

Arduino Pro Mini

Ja, Sie benötigen ein FTDI-Kabel für die Programmierung und serielle Kommunikation mit dem PC. Wenn Sie jedoch nicht die ganze Zeit über Koms benötigen, benötigen Sie nur ein Kabel, um das Programm auf jedes Gerät hochzuladen. Sie können auch ziemlich billig gefunden werden.

Allerdings stelle ich fest, dass der Arduino Pro Mini jetzt im Ruhestand ist, sodass es möglicherweise etwas schwieriger ist, ihn zu beschaffen (er ist immer noch auf AliExpress erhältlich ). Aus diesem Grund schlage ich vor, dass Sie stattdessen den Arduino Nano ausprobieren :

Arduino Nano

Dies hat den zusätzlichen Vorteil von Onboard-USB, sodass Sie das FTDI-Kabel nicht mehr für die Programmierung oder für die Kommunikation benötigen.

Der ATMega328P, der der Prozessor dieser 3 Karten ist, verfügt nicht über natives USB. Dies bedeutet, dass die Karte auch den FTDI FT232RL-IC enthalten muss , der im FTDI-Kabel verwendet wird. Wenn Sie diesen IC haben, können sich zusätzliche Kosten auf Ihr Endergebnis auswirken.

Für ein paar Dollar billiger pro Gerät können Sie einen Mikrocontroller (wie den ATMega32U4) mit nativen USB-Coms verwenden (und damit FTDI-IC sparen). Ein solches Produkt ist das Arduino Micro :

Arduino Micro

Alle genannten Boards sind im Arduino-Ökosystem beheimatet und sollten (abgesehen vom pensionierten Pro Mini) einfach online oder in Ihrem örtlichen Elektronikgeschäft zu beziehen sein. Ihr Arduino Uno-Programm funktioniert für alle diese Alternativen - Sie müssen nur die Karte in der Arduino IDE wechseln:

Arduino Board Auswahl

Es gibt noch ein Board, das ich erwähnen möchte - den DigiSpark :

Digispark

Es ist nur für kleinere Programme geeignet, in einigen Funktionen eingeschränkt und kein offizielles Arduino-Board. Davon abgesehen gibt es reichlich Arduino-Unterstützung - und es ist billig!


4

Wenn Sie bei Arduino und seiner Toolchain bleiben möchten, können Sie nur einen nackten ATmega 328p (den Mikrocontroller im Herzen des Arduino Uno) bestellen und selbst verwenden!

Sie sind relativ günstig (1,50 bis 3,00 US-Dollar) und brotschonend. Für eine dauerhaftere Lösung können Sie sie in eine Prototafel (Perfboard) oder sogar eine kundenspezifische Leiterplatte einlöten, sobald Ihr Design dieses Niveau erreicht hat.

Hier ist eine ausgezeichnete Anleitung der Arduino-Leute zum Einrichten eines Arduino auf einem Steckbrett, wobei nur Rohkomponenten wie der ATmega 328p verwendet werden. Dieses Design verwendet einen externen 16-MHz-Clock-Kristall, genau wie ein Arduino Uno.

Wenn Sie mit der internen 8-MHz-Uhr auf dem 328p zufrieden sind, können Sie die meisten zusätzlichen Komponenten weglassen und einfach den Raw-Chip wie in diesem Handbuch ausführen (indem Sie den Arduino Lilypad-Bootloader anstelle des Standard-Arduino-Bootloaders verwenden). Das spart noch mehr Geld!

In jedem Fall benötigen Sie ein AVR-Programmiergerät, da der 328p über keinen USB-Anschluss verfügt. Dies wird der teuerste Teil dieses Setups sein, aber eine gute Nachricht ist, dass Sie nur einen benötigen und alle 328p programmieren können, die Sie benötigen. Sie können auch verwendet werden, um Nicht-Standard-Chips zu programmieren, die über serielle Tx / Rx-Pins programmiert werden können, z. B. die ESP-Chips (Sie müssen sie nur von Hand verbinden). Sehr nützlich, wenn Sie es mit diesen Arten von Mikrocontrollern ernst meinen.

ATmega 328p Mikrocontroller-Chip

ATMega Pin Aufkleber

Perfboard

AVR-Programmierer


1
Wenn Sie Ihr ATMEGA328P-PU mit dem bereits installierten Bootloader bestellen : ebay.ca/itm/… , funktioniert ein PL2303HX USB zu UART Adapter ($ 0.70CDN), um "Code" hochzuladen: aliexpress.com/item/…
VE7JRO

Ich fand es immer seltsam, dass Arduino einen speziellen Bootloader zum Programmieren verwendet, anstatt die integrierte Programmierschnittstelle zu verwenden.
user253751

@immibis weiß nicht genau, was Sie meinen, aber die Arduino-Bootloader erledigen eine Menge Dinge, die die Arbeit mit den Arduino-Chips (und Atmel-Chips) erheblich erleichtern, einschließlich des Zurücksetzens von Pins, Umschalten auf eine externe Uhr, Weitergabe an Ihren Code, usw. Ohne sie müssten Sie im Wesentlichen Ihre eigenen schreiben ... was eine Zeitverschwendung wäre, da der Standard-Arduino-Bootloader in den meisten Fällen sowieso alles tut, was Sie wollen.
SnakeDoc

1
@immibis Ich denke, es ist viel einfacher, eine serielle Schnittstelle zu haben, als eine Programmierschnittstelle vom PC. Darüber hinaus denke ich (persönliche Meinung), dass sie vor allem zu Beginn ein komplettes System auf einer Platine haben wollten und die Integration eines Programmierers auf der Platine viel schwieriger war als das Schreiben eines seriellen Bootloaders. Bedenken Sie, dass die ersten Arduino-Boards eine serielle Schnittstelle hatten ( Arduino RS232 ), so dass nur ein Programmierer benötigt wurde, um viele von ihnen zu programmieren (sie wurden in der Schule verwendet)
frarugi87

1
@ frarugi87 Das ist wahrscheinlich wahr, aber für echte Anfänger ist es so einfach wie möglich, ein USB-Kabel anzuschließen und mit der Arduino IDE "Skizzen" hochzuladen. Ich denke, sie haben den richtigen Schritt unternommen, um es besonders für diejenigen zugänglich zu machen, die keine Erfahrung mit Mikrocontrollern haben.
SnakeDoc

4

Ich mag den Nano und den Pro Mini. Ich arbeite gerne damit auf einem Steckbrett mit anderen Modulen. Wenn mehr Schaltkreise erforderlich sind, ist dies für mich viel praktischer als die Verwendung eines Uno. Es gibt schnellere Prozessoren, aber für viele Projekte ist der 16MHz 328 mehr als ausreichend. Und wie beim Uno handelt es sich bei diesen beiden um 5-Volt-Teile. Manchmal funktioniert das, woran Sie eine Verbindung herstellen müssen, mit 3,3-Volt-Prozessoren nicht richtig.

Der Pro Mini und der Nano lassen sich leicht in 0,1 "" Veroboard "(oder ein gleichwertiges Material) einlöten. Wenn es Ihnen nichts ausmacht, geklonte Teile zu kaufen, betragen die Kosten für einen Nano und einen Pro Mini nur ein paar Dollar , oder sogar Ebay, kann Ihnen viel ersparen, solange Sie geduldig sind, wenn es um die Lieferung geht.

Das Modul, das ich jetzt am häufigsten benutze, ist der ESP8266. Es ist eine leistungsstarke WiFi-Plattform, die nur ein paar Dollar kostet und über ein ausgereiftes Arduino-Framework verfügt. Oft verwende ich diesen als einzigen Prozessor im Design. Ich habe es sogar als Basis für einen Datenlogger verwendet und die WiFi-Fähigkeit komplett ignoriert. 20x4-Zeichen-LCD, Strom- / Spannungsmesschip (INA219) und eine SD-Speicherkarte, die von einer 18650-Lithiumbatterie gespeist wird.

Es gibt viele gute preiswerte Möglichkeiten.


3
Vielleicht möchten Sie darauf hinweisen, dass ESP12-Module KEINEN .1 "-Stiftabstand aufweisen, was ein wenig störend ist. Es gibt kostengünstige Breakout-Boards, aber diese sind recht breit und schwer mit lötfreien Steckplatinen zu verwenden Für etwa 1 US-Dollar mehr als ein ESP12-Modul können Sie einen Wemos D1 mini (Klon) erwerben, der ungefähr so ​​einfach zu bedienen ist wie ein Arduino Pro Mini oder Nano.
Llaves

Wo soll ich den ESP-12 einsetzen? Ich habe auf den ESP8266 nicht viel eingegangen, weil das wirklich nicht im Mittelpunkt der Frage stand. Ich fand es erwähnenswert, da viele Leute damit nicht vertraut sind. Ich unterstütze Menschen, die die Wemos D1 Mini-Plattform nutzen, voll und ganz. Im Gegensatz zu ESP01, ESP12 usw. ist es eine sofort einsatzbereite Lösung. USB zu seriell und ein integrierter Regler machen einen großen Unterschied. Ich bin jedoch der Meinung, dass der Nano oder der Pro Mini die geeignetste Antwort für die Person ist, die die Frage gestellt hat.
Rudy

Es ist schwer, ein atmega-basiertes System im Jahr 2019 im Vergleich zu den ESP-Systemen in Betracht zu ziehen. Daher erhalten Sie für 2 US-Dollar mit einem ESP8266 einen 40-MHz-Prozessor, eine vollständige Entwicklungsplatine (kein Chip), WLAN und USB-basierte Programmierung Überwachung ohne zusätzliche Kabel. Erwähnen Sie auch die ESP32-Systeme, die mit 7 bis 10 US-Dollar teurer sind, aber zwei CPUs, ein vollständiges RTOS, mehrere MB Flash, BT für WIFI und native USB-Unterstützung enthalten. Die Kompatibilität mit Arduino ist enthalten, und selbst unter dem bereitgestellten RTOS enthalten sie Arduino-Bibliotheken.
Brian Bulkowski

Der ESP8266 verfügt über einen 160-MHz-Prozessor. Es ist eine großartige Option, hat aber Einschränkungen. Es hat nur einen A / D-Wandler und einen schlechten. Die digitalen IO-Pins haben auch Macken. Pull-up-Widerstände sind beim Einschalten der meisten standardmäßig eingeschaltet. Drei IO-Pins stellen den Betriebsmodus ein und besondere Sorgfalt ist geboten. Der ESP8266 benötigt auch eine ordentliche Stromversorgung. Beim ESP8266 wird viel Code im Hintergrund ausgeführt, und Ihr Code muss gleichzeitig vorhanden sein. Ich mag den ESP9266 wirklich, aber er ist kein großartiger Universal-Mikrocontroller. Der ESP32 ist aber auch bei Problemen besser.
Rudy

2

Arduino Pro Micro-Klone sind supergünstig und alles, was Sie zum Programmieren benötigen, ist ein normales Micro-USB-Kabel. Sie müssen wahrscheinlich die Header löten, um etwas Nützliches zu tun. Sie sind in einer Version mit 3,3 V / 8 MHz und 5 V / 16 MHz erhältlich.

Pro Micro


ProMicro verfügt über einen 3,3-V-Prozessor. Das kann bei einigen Designs ein Problem sein. Es ist kein Tropfen als Ersatz für einen Uno. Aber es ist ein interessanter Teil.
Rudy

1
Nein, genau wie beim Pro Mini gibt es eine 5V / 16MHz- und eine 3,3V / 8MHz-Version.
AndreKR

Entschuldigung, mein Fehler.
Rudy
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.