Hallo und einen schönen Abend! Ich arbeite gerade an einem Projekt mit einem Arduino. Im Grunde misst der Arduino einen Widerstand, verarbeitet ddas Signal weiter und gibt ein Bild über die serielle Schnittstelle an einen kleinen monochromatischen Bildschirm aus. Längerfristig möchte ich gerne auf Mikrocontroller umsteigen, daher meine Frage. Kann der Arduinocode direkt auf einen Mikrocontroller übertragen werden, oder muss die Software neu geschrieben werden? Wäre es generell besser direkt den Mikrocontroller zu verwenden oder macht es Sinn zum probieren am Arduino zu bleiben? Vielen Dank für dei Antworten!
Arduino ist nur ein Software-Framework, der Code läuft so oder so auf nem uC. Du willst den uC lieber "bare" programmieren?
Arduino ist die Kapselung komplexer Vorgänge in ein sehr einfach verständliches Format, welches aber dem Nutzer alle internen Vorgänge der CPU verbirgt. Und es ist nicht kompatibel zu irgendetwas anderem außer Arduino. 2017 sind 8 Bitter fast schon obsolet, daher direkt zum Martführer ARM wechseln auf 32 Bit.
Nur zur Sicherheit: (hobel) verarscht Dich ;-) Natürlich kannst Du ein mit der Arduino-UI und Arduino-Bibliotheken erstelltes Programm auf einen nackten AVR flashen, entweder mit einem Programmer, oder per Bootloader. Du kannst Arduino-Projekte in Atmel Studio importieren, wenn Du von der Arduino-UI die Nase voll hast oder Debuggen willst. Du kannst Dein Arduino-Projekt auf andere AVR portieren (3rd party board definitions), auf diverse ARM portieren, z.B. STM32 (Plugin für Arduino), diverse TI-ARMs (Energia), oder auf ESP8266 und ESP32 (letzterer unfertig).
Hi Aber NICHT Alles auf JEDEN µC. Klingt aber auch logisch, da der neue/nackte µC ja den Arduino ersetzen können muß und somit wenigstens die dort benutzten Funktionen enthalten muß. Mit einem 8-Beiner wird man kein 16-fach Lauflicht direkt am µC herstellen können (jaha, der Arduino hat mehr als 8 Beine, schon gesehen) MfG
>Längerfristig möchte ich gerne auf Mikrocontroller umsteigen
Auf welchen? Das ist mal wieder so eine typische Vollpfostenfrage.
Patrick J. schrieb: > Mit einem 8-Beiner wird man kein 16-fach Lauflicht direkt am µC > herstellen können Mit 5 Pins kannst Du 20, mit 6 Pins 30 LEDs betreiben. https://en.wikipedia.org/wiki/Charlieplexing
Wenn ichs richtig verstehe is der Arduino nur ein Hardwarepaket um den ATmega328P. Prinzipiell wäre es doch sogar möglich den programmierten µC aus dem Arduino zu nehmen und ihn in ein Board zu löten? Die Frage die sich mir stellt ist ob der ATmega328P oversized ist für meine Anwendung, oder macht die Bildschirmausgabe einen µC dieser Art nötig?
Klaus W. schrieb: > Wenn ichs richtig verstehe is der Arduino nur ein Hardwarepaket um den > ATmega328P. Oder ein ATmega168 bei früheren Arduino UNO/NANO, ein ARM Cortex-M3 beim Arduino Due, eine ESP8266 beim ESP-12E oder ein ... Dauergast schrieb: > Du kannst Dein Arduino-Projekt auf ... Klaus W. schrieb: > Die Frage die sich mir stellt ist ob der ATmega328P oversized ist für > meine Anwendung, oder macht die Bildschirmausgabe einen µC dieser Art > nötig? Das kommt drauf an, wie und was du als Bild über deine serielle Schnittstelle schicken möchtest. Der SRAM eines ATmega328P ist auch nur 2kByte groß. Damit füllst du keinen 4k-Bildschirm ;-)
Klaus W. schrieb: > Prinzipiell wäre es doch sogar möglich den programmierten µC > aus dem Arduino zu nehmen und ihn in ein Board zu löten? Dann kannst du einfacher einen Arduino Pro mini nehmen und den als Modul aufs Board setzen.
Wolfgang schrieb: > Der SRAM eines ATmega328P ist auch nur > 2kByte groß. Damit füllst du keinen 4k-Bildschirm ;-) Der geplante Bildschirm ist nur 128x64 Pixel groß, aber 2kByte sind doch etwas wenig. Ich möchte ne Sequenz aus fünf Bildern ausgeben, da muss es doch mehr sein, oder wie funktioniert das mit den SRAM? Ein einzelnes Bild hat bei dieser Größe bereits 7kByte, oder vertue ich mich da?
Klaus W. schrieb: > Oder gibt es die Möglichkeit externen Speicher einzubinden? Solche Infos bekommt man aus dem Datenblatt des Controllers.
Was ich nicht ganz verstehe, wie schafft es der Arduino Uno Bilder darzustellen die größer als sein RAM sind? Ich bin dieser Anleitung gefolgt: www.instructables.com/id/How-to-use-OLED-display-arduino-module/ und es hat super funktioniert. Ich glaub ich seth etwas auf dem Schlauch...
:
Bearbeitet durch User
Klaus W. schrieb: > Der geplante Bildschirm ist nur 128x64 Pixel groß, > Ein einzelnes Bild hat bei dieser Größe bereits 7kByte, oder vertue ich > mich da? Nö, genau 1kByte. Oben stand was von monochromatisch, d.h. du kannst 8 Pixel in ein Byte speichern. Alternativ könntest du das Bild vor der Ausgabe neu berechnen/zeichnen. Der Code dazu steht dann halt im meist ausreichend vorhandenen Flash. Wenn du aber tatsächlich viel SRAM brauchst, suche mal nach seriellen SRAMs mit SPI- oder I²C-Schnittstelle.
Klaus W. schrieb: > Was ich nicht ganz verstehe, wie schafft es der Arduino Uno Bilder > darzustellen die größer als sein RAM sind? Das darstellen ist nicht das Problem, es geht um den Bildinhalt. Gerade bei der Anzeige von Messwerten oder Texten muss das Bild ja nicht pixelweise gespeichert werden sondern kann vor der Ausgabe neu berechnet werden.
> Wenn ichs richtig verstehe is der Arduino nur ein Hardwarepaket um den > ATmega328P. Es gibt nicht "den Arduino". Es gibt zahlreiche Arduino Module. Die meisten bestehen aus einem AVR Mikrocontroller und einem USB-UART Interface. Dann gibt es noch die Arduino Entwicklungsumgebung, welche im Wesentlichen aus einem sehr primitiven Texteditor, dem GNU C Compiler und einem Framework (Libraries) besteht. Herausragendes Merkmal der Arduino Software ist die kinderleichte Installation. Beides kann man unabhängig voneinander nutzen. Ich nutze zum Beispiel das Arduino Framework um meine ESP8266 Module (das sind keine Arduino Module) zu programmieren. Aber als Editor nutze ich stattdessen NetBeans. Ich benutze auch Arduino Nano Module (die billigen aus China), aber die programmiere ich nicht mit der Arduino Software, sondern mit der avr-libc und mit NetBeans oder QT Creator als IDE. Du kannst die ganze Arduino Software durchaus auch zum Programmieren einzelner AVR Mikrocontroller verwenden. Dann brauchst du allerdings entweder einen ISP Programmieradapter, oder du kauft die Chips bei einem Händler, der Dir den Arduino Bootloader vorinstalliert.
> Was ich nicht ganz verstehe, wie schafft es der Arduino Uno Bilder > darzustellen die größer als sein RAM sind? Viele Displays enthalten einen eigenen Bildspeicher mit seriellem Interface. Bei diesen kannst du das Bild ganz in Ruhe berechnen und Stück für Stück an das Display senden. Bei Displays ohne Bildspeicher, muss dein Programm das ganze Bild erzeugen/berechnen während es angezeigt wird - und zwar fortlaufend. Das ist schon deutlich schwieriger, dahert würde ich diese Variante vermeiden.
Stefan Us (stefanus) schrieb:
> Beitrag "Re: Vom Arduino zum Mikrocontroller"
Stefan, das war jetzt mal einer der besten Beiträge hier im MC-Netz zur
Nutzung von Arduinos und deren Frameworks.
Ein Lob und vielen Dank dafür.
Oh, ich habe im Wesentlichen nur nachgeplappert, was andere schon zig mal vor mir geschrieben hatten.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.