Forum: Mikrocontroller und Digitale Elektronik Vom Arduino zum Mikrocontroller


von Stanissse (Gast)


Lesenswert?

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!

von 1N 4. (1n4148)


Lesenswert?

Arduino ist nur ein Software-Framework, der Code läuft so oder so auf 
nem uC. Du willst den uC lieber "bare" programmieren?

von Christian J. (Gast)


Lesenswert?

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.

von Dauergast (Gast)


Lesenswert?

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).

von Klaus W. (stanissse)


Lesenswert?

Super, vielen Dank für die Antworten!

von Patrick J. (ho-bit-hun-ter)


Lesenswert?

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

von holger (Gast)


Lesenswert?

>Längerfristig möchte ich gerne auf Mikrocontroller umsteigen

Auf welchen? Das ist mal wieder so eine typische Vollpfostenfrage.

von Dauergast (Gast)


Lesenswert?

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

von Klaus W. (stanissse)


Lesenswert?

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?

von Wolfgang (Gast)


Lesenswert?

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 ;-)

von Wolfgang (Gast)


Lesenswert?

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.

von Klaus W. (stanissse)


Lesenswert?

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?

von Klaus W. (stanissse)


Lesenswert?

Oder gibt es die Möglichkeit externen Speicher einzubinden?

von STK500-Besitzer (Gast)


Lesenswert?

Klaus W. schrieb:
> Oder gibt es die Möglichkeit externen Speicher einzubinden?

Solche Infos bekommt man aus dem Datenblatt des Controllers.

von Klaus W. (stanissse)


Lesenswert?

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
von Jens (Gast)


Lesenswert?

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.

von Jens (Gast)


Lesenswert?

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.

von Stefan F. (Gast)


Lesenswert?

> 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.

von Stefan F. (Gast)


Lesenswert?

> 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.

von Markus (Gast)


Lesenswert?

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.

von Stefan F. (Gast)


Lesenswert?

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
Noch kein Account? Hier anmelden.