Forum: Mikrocontroller und Digitale Elektronik Anfänger: Microcontroller programmieren?


von Kay (Gast)


Lesenswert?

Hallo!

Ich bin neu hier und auch auf dem Gebiet der Microcontroller.
Ich habe für meinen Modellbau (Modellbahn H0) schon einige LED 
Schaltungen nachgebaut, bin aber auch in Sachen der Komponenten 
(Kondensatoren, Transistoren,....) nicht ganz so Sattelfest.
Bin da nicht vom Fach und baue eher Schaltungen aus dem Netz nur nach 
und teste/variiere eventuell etwas, was mir aber auch mehr Spaß macht, 
als nur fertige Sätze zu kaufen.
Nun gibt es aber Schaltungen, die mit solchen Komponenten wohl nicht 
(oder eher kompliziert) gebaut werden können und ich stoße da immer auf 
Microcontroller.
Haupsächlich geht es da z.B. um zufälliges Aufblinken von mehreren LED 
(gerade passend - z.B. bei einem Weihnachtsbaum, wo immer LED angehen 
und andere wieder aus. Alles eher zufällig).
Dann habe ich auch eine Schaltung gefunden, wo ein Haus zufällig 
geschaltet wird, mit TV-Simulation. Diese aber dann auch mit 
Microcontroller.
Meine generelle Frage, kommt man da als Einsteiger, ohne große 
Vorkenntnisse, rein oder ist das ein sehr komplexes Thema? Es gibt ja 
auch einige Projekte im Netz, die man übernehmen und damit testen 
könnte?
Des Weiteren meine Frage was man dafür benötigt?! Ich habe da 
Komplett-Sets gefunden (~40-70€) die für Einsteiger sein sollen. Aber 
macht das Sinn? Und es gibt ja wohl auch noch den Unterschied der 
Sprachen: Bascom und C.
Vielen Dank erstmal!

von Christian M. (krusti)


Lesenswert?

Als Einsteig wäre da wohl die Arduino-Plattform in Betracht zu ziehen. 
(Kommt hier im Forum allerdings nicht bei allen so gut an). Ist einfach 
und schnell zu realisieren. Die nötige Beschaltung des Mikrocontrollers 
ist schon fertig auf dem Board. Dann brauchst du dich erst mal nicht 
drum kümmern. Dürfte für solche Zufalls-LED-Sachen ausreichen. Eventuell 
brauchst du dann, je nach Anwendung, eben Verstärkerschaltungen oder 
sonstiges an Bauteilen drumherum.
Wenn du dann in der Materie drin bist und noch komplexeres machen 
willst, kannst du dir überlegen von der Arduino-Sprache auf C 
umzusteigen. Das ist mit den Arduino-Borads auch möglich, allerdings 
dann auch etwas komplizierter umzusetzen.

von Reginald L. (Firma: HEGRO GmbH) (reggie)


Lesenswert?

Nur keine scheu, ich hatte vor 2 jahren nur minimalste matlab 
kenntnisse, hab mir ein stm32f4discovery board zugelegt und bin in c 
eingestiegen.
Es kostet Zeit, nerven und Haare aber es ist kein hexenwerk ;)
Achso: die erfolgsergebnisse machen einen Riesen Spaß!

von Kanaan (Gast)


Lesenswert?

Den Einstieg würde ich mit Bascom machen. Dazu gibts unter halvar.at ein 
sehr gutes Tutorial, durch die vielen Highlevel-Befehle kommt man recht 
schnell voran und im Gegensatz zu C muss man sich nicht mit einer 
unmöglichen Syntax rumschlagen.
Dazu von Pollin das Programmerboard für 15,- und du kannst schonmal 
spielen.

von Oyoyo (Gast)


Lesenswert?

Ich finde auch, dass für den Einstieg in die Mikrocontroller-Welt sowas 
wie die Arduino-Boards am sinnvollsten sind.

Nicht so begeistert bin ich allerdings davon, ausgerechnet mit C/C++ als 
erster Programmiersprache anzufangen. Bei Mikrocontrollern hat man wegen 
der begrenzten Ressourcen zwar üblicherweise gar nicht viel mehr 
Auswahl, aber das sind einfach keine für absolute Programmier-Einsteiger 
besonders gut geeigneten Programmiersprachen (Falls Du bereits 
Programmiererfahrung hast, ist es natürlich was anderes).

Was diese Komplett-Sets betrifft... Die sind natürlich in gewisser 
Hinsicht schon ganz praktisch, weil da viel Unterschiedliches dabei ist, 
mit dem man ein herumexperimentieren kann. Andererseits wirst Du das 
meiste davon vermutlich nicht brauchen...
Falls Geld für Dich keinerlei Problem ist, können die schon ne 
praktische Sache sein. Falls dem nicht so ist, schreib lieber, was genau 
Du so an Ideen umsetzen möchtest.

Wenn Du einen gaaaanz günstigen Einstieg in die Mikrocontroller-Welt 
möchtest, um erst einmal bei minimalen Kosten zu schauen, ob das was für 
Dich ist, dann würde ich persönlich empfehlen:
Bestelle Dir bei Aliexpress ein "Arduino Nano v3"-Board (ca 2,50 Euro) 
und/oder ein "Nodemcu devkit (NICHT v3!!!!)" (ca. 3,50 Euro), ein 
kleines Breadboard/Steckboard (ca. 2-3 Euro), einen Pack Steckbrücken 
(paar Cent) und einen Meter WS2811/WS2812-LED-Streifen. (Du scheinst 
Dich ja speziell für irgendwelche Beleuchtungs-Sachen zu interessieren)

von Andreas R. (daybyter)


Lesenswert?

Billigste Lösung dürfte ein Arduino Klon mit USB Kabel sein. So 3,- bei 
eBay, Alibaba und Co.

Dazu noch ein Steckbrett.

Alternativ gleich ein Einsteigerset.

Dazu noch die Arduino IDE runterladen und los gehts.

http://funduino.de/anleitungen

von Kay (Gast)


Lesenswert?

Vielen Dank erstmal für die Antworten.
Also ist Arduino wohl für den Anfang sehr ratsam?!
An LED habe ich bereits eine größere Auswahl. Auch ein Steckbrett und 
weitere Bauteile sind vorhanden.

@Oyoyo (Gast): Ich habe mal nach dem "Arduino Nano v3" geschaut. Dieses 
gibt es bei eBay ja bereits im 3/5er Pack um die 5€. Ist das dann der 
komplette Controller, der dann später verbaut wird?
Ich dachte eher an etwas kleines, wie ein AtTiny, der auf ein Bord (so 
wie das z.B. hier erwähnte Board von Pollin?!) gesteckt wird, um dann 
programmiert zu werden?

Es sind aber auch sicherlich nicht alle Controller mit allen Boards 
kompatibel/programmierbar?!

von Widerstand (Gast)


Lesenswert?

Der Haken an den Arduino-Nachbauten ist, daß der Chip manchmal/eventuell 
nicht korrekt (d.h. dann gar nicht) programmiert ist, um mit der 
Arduino-Programmierumgebung zusammenzuarbeitn.

Daher hatte ich einem Kumpel in der selben Situation empfohlen, sich zum 
Einstieg einen gebrauchten Original-Arduino zu besorgen 
(zuuuufälligerweise hatte ich gerade einen übrig.) :)

Der Arduino ist halt eine komplette Entwicklungsumgebung, die einfach 
funktioniert. Man holt sich die Software, egal ob für Windows, Unix oder 
MacOS, und nach der Installation und Anstecken der Platine kann man 
binnen 30-60 Sekunden das erste Beispielprogramm laden, verändern und 
brennen und tut.

Das finde ich gerade für den Anfang einen unschätzbaren Vorteil 
gegenüber mehrtägigem Raussuchen von avr-gcc, gcc, avrdude, 
ISP-Programmer, Treiber dafür und Furz und Feuerstein. Möchte ich ins 
Auto einsteigen und einfach wohin fahren oder möchte ich Zündwinkel und 
Einspritzmenge von Hand einstellen müssen, damit der Motor läuft?

Tatsächlich bin ich in den letzten 2, 3 Jahren um das "echte" 
Programmieren immer wieder drumherum geschlichen wie die Katze um den 
heißen Brei, letztlich dann aber doch immer wieder den Arduino (oder 
mittlerweile auch Raspberry) genommen. Irgendwann hole ich mir mal sonen 
ISP und installier die ganze Toolchain. Mittlerweile habe ich auch ne 
ganz lustige Sammlung an Atmegas in fertigen Produkten (aus einem 
Midi-Keyboard, einer Atemgas-Druckanzeige, einem Kabeltuner und einer 
Dotmatrix fürs Aufzugsstockwerk), wo es sich lohnen würde, den Chip zu 
löschen und mal auf eine eigene Platine zu setzen.

Wenn Du konkret ein Projekt hast und gleich am Anfang sagst ich hau mir 
das auf ne eigene Platine mit Controller, lohnt sich vermutlich der 
Sprung ins kalte Wasser. Andererseits sind Arduino-Clones so billig, daß 
selbst ne Lochrasterplatine für das eigene Projekt nicht viel billiger 
kommt.

Außerdem kann man den Arduino selbst als ISP benutzen. Ich bin damit 
immerhin schonmal so weit gekommen, die Chipdaten eines dieser 
"Industrie-Atmegas" auslesen zu können.

von Joachim S. (oyo)


Lesenswert?

Kay schrieb:
> Vielen Dank erstmal für die Antworten.
> Also ist Arduino wohl für den Anfang sehr ratsam?!

Meiner Meinung nach: Ja. Arduino ist halt DIE Mikrocontroller-Plattform 
schlechthin für Einsteiger, dafür findest Du Unmengen 
Dokumentation/Tutorials/Code-Beispiele und Leute, die damit Erfahrung 
haben. Für den Einstieg ist das einfach extrem vorteilhaft.

> An LED habe ich bereits eine größere Auswahl. Auch ein Steckbrett und
> weitere Bauteile sind vorhanden.

Perfekt, dann fehlt Dir für die ersten Schritte wirklich nur noch ein 
kleines Development-Board a la Arduino.

> @Oyoyo (Gast): Ich habe mal nach dem "Arduino Nano v3" geschaut. Dieses
> gibt es bei eBay ja bereits im 3/5er Pack um die 5€. Ist das dann der
> komplette Controller, der dann später verbaut wird?
> Ich dachte eher an etwas kleines, wie ein AtTiny, der auf ein Bord (so
> wie das z.B. hier erwähnte Board von Pollin?!) gesteckt wird, um dann
> programmiert zu werden?

Beim "Arduino Nano" ist (wie auch bei diversen anderen Arduino-Boards) 
der Mikrocontroller fest aufgelötet, das stimmt. Du kannst ihn also 
nicht einfach so entfernen oder einen anderen aufsetzen. Dafür sind die 
Boards halt super-günstig...
Wenn es Dir wichtig ist, den eigentlichen Mikrocontroller 
aufstecken/entfernen zu können, dann müsstest Du eher zu einem Board wie 
dem "Arduino UNO" greifen, das einen µC im "DIP-Package" verwendet 
(DIP-Package = Steckboard-geeignet).

Von den Attinys würde ich an Deiner Stelle ganz am Anfang erst einmal 
die Finger lassen. Ich sehe da einfach nicht den grossen Vorteil, die 
paar Cent Preisunterschied zu einem AtmegaXX8 (wie er z.B. auf den 
"Arduino UNO"-Boards verwendet wird) sind kaum der Rede wert. Das wäre 
für den Einstieg meiner Meinung nach am falschen Ende gespart; wenn Du 
durch ein Arduino UNO/NANO-Board die ersten Erfahrungen mit 
AVR-Mikrocontrollern gesammelt hast, ist es kein Problem, dann 
alternativ auch mal mit einem ATtiny herumzuexperimentieren.

> Es sind aber auch sicherlich nicht alle Controller mit allen Boards
> kompatibel/programmierbar?!

Das stimmt, auch ein Board wie z.B. das oben erwähnte "Arduino UNO" ist 
nur mit ganz wenigen, "pinkompatiblen" Mikrocontrollern kompatibel.
Wenn Du eine richtig universelle Lösung willst, die mit ganz vielen 
AVR-Mikrocontrollern kompatibel ist, dann musst Du von solchen 
Development Boards Abstand nehmen, alles auf Steckboard aufbauen, einen 
sogenannten "AVR ISP Programmer", einen USB-Seriell-Wandler etc. kaufen.

Ich sag mal so: Kann man machen (und war z.B. auch die Variante, mit der 
ich vor einigen Jahren angefangen habe), aber ganz ehrlich: Ich würde an 
Deiner Stelle für die allerersten Schritte ein ganz billiges, erprobtes 
Arduino-Board wie eben den Nano nehmen, und erst, nachdem Du damit die 
ersten Erfolge hast, auf eine solche Lösung umsteigen, bei der einfach 
deutlich mehr potentielle Fehler-/Frust-quellen lauern. Der Umstieg ist 
dann einfach.

von Mampf F. (mampf) Benutzerseite


Lesenswert?

Kanaan schrieb:
> Dazu von Pollin das Programmerboard für 15,- und du kannst schonmal
> spielen.

Puh, sowas kann man machen, wenn man viel Erfahrung hat ...

Wichtiger als funktionierende Hardware und minimaler Preis ist die 
Community, der Support, die Entwicklungsumgebung, die Code-Beispiele, 
und und und ...

von Manfred (Gast)


Lesenswert?

Kay schrieb:
> Ich habe für meinen Modellbau (Modellbahn H0) schon einige LED
> Schaltungen nachgebaut, bin aber auch in Sachen der Komponenten
> (Kondensatoren, Transistoren,....) nicht ganz so Sattelfest.
Einmal durch's Internet gestochert, finden sich diverse Scripte von 
Schulen, die bei Null anfangen: LED blinken, Taster abfragen, Drehpoti 
abfragen, ein Motoörchen schalten ... ich war fasziniert, wie simpel das 
ist. Vielleicht bringt der Weihnachtsmann auch ein Buch mit 
"Die_elektronische_Welt_mit_Arduino_entdecken" - ich finde es gut.

Kanaan schrieb:
> Den Einstieg würde ich mit Bascom machen.
Nee, warum kommerzielle Software kaufen, wenn es jede Menge freier 
Umgebungen gibt?

Oyoyo schrieb:
> Nicht so begeistert bin ich allerdings davon, ausgerechnet mit C/C++ als
> erster Programmiersprache anzufangen. Bei Mikrocontrollern hat man wegen
> der begrenzten Ressourcen zwar üblicherweise gar nicht viel mehr
> Auswahl, aber das sind einfach keine für absolute Programmier-Einsteiger
> besonders gut geeigneten Programmiersprachen (Falls Du bereits
> Programmiererfahrung hast, ist es natürlich was anderes).
Ich kenne Basic, ich programmiere in AutoIT, ich habe 65xx / 68xx in 
Assembler gemacht. Arduino-C fand ich nun nicht so toll, aber es ist 
verbreitet und mit ein paar Stunden Stocherei ist auch das begreifbar. 
Ich habe hier noch keine Programme gepostet, meine Fehler stets selber 
gefunden.

Wichtig ist eher, dass man persönlich bereit ist, sich wirklich 
einzuarbeiten und Zeit aufzubringen. Wer Modellbau betreibt, dürfte 
diese Energie besitzen.

Widerstand schrieb:
> Der Haken an den Arduino-Nachbauten ist, daß der Chip manchmal/eventuell
> nicht korrekt (d.h. dann gar nicht) programmiert ist, um mit der
> Arduino-Programmierumgebung zusammenzuarbeitn.
Stimmt, hatte ich zwei von. Nach etwas Zickerei hat der Chinese sein 
Geld nicht bekommen, inzwischen kann ich ISP und habe die Dinger 
erfolgreich in Betrieb gesetzt.

@Kay: Der Arduino-Uno ist mechanisch recht groß, ich mag ihn nicht. Mein 
erster Kauf war dennoch ein UNO, weil praktisch alle Basisanleitungen 
auf diesen aufsetzen. Da Du wenig Ahnung hast (Deine Aussage), 
vielleicht den: 
https://www.heise.de/make/meldung/Sonderheft-Make-Arduino-Special-jetzt-online-bestellbar-3103699.html
("im heise Shop für 24,95 Euro versandkostenfrei bestellbar")

Nikolaus steht vor der Tür, dazu: 
https://www.conrad.de/de/adventskalender-conrad-adventskalender-fuer-arduino-ab-14-jahre-1421382.html

Damit machst' über Weihnachten Grundlagenarbeit, danach vom Chinesen ein 
paar Nanos um 2..3 US-Dollar und weiter geht das.

von Markus (Gast)


Lesenswert?

>@Kay: Der Arduino-Uno ist mechanisch recht groß, ich mag ihn nicht. Mein
>erster Kauf war dennoch ein UNO,

Ursrünglich hatte ich auch immer UNOs und fand die nicht so schlecht. 
Irgendwann habe ich dann die Nanos ausprobiert und sie haben sich 
tatsächlich als das bessere Format herausgestellt. Man kann sie vor 
allen Dingen auf ein Steckbrett stecken und dann zusätzliche Bauteile 
anschließen.

von Gästchen (Gast)


Lesenswert?

Oyoyo schrieb:
> Ich finde auch, dass für den Einstieg in die Mikrocontroller-Welt
> sowas
> wie die Arduino-Boards am sinnvollsten sind.

Ja, das kann man so unterschreiben.

Wichtig ist halt, sich nicht nur unverstandene Codeschnipsel zu holen 
und zusammenkopieren, sondern alles selber zu schreiben. Die Arduino Lib 
nimmt einem dabei am Anfang viele Details ab.

Hast man dann das Gefühl, dass das damit richtig gut klappt, ist die 
Zeit gekommen, sich einen µC zu suchen. Der Einstieg geht dann deutlich 
besser, weil man viele Konzepte schon kennt.

Der µC lohnt gegenüber dem Arduino dann schon deshalb, weil man on-chip 
debuggen kann, und der Platzbedarf der Sache ist auch besser.

von Bussard (Gast)


Lesenswert?

Manfred schrieb:
> Kanaan schrieb:
>> Den Einstieg würde ich mit Bascom machen.
> Nee, warum kommerzielle Software kaufen, wenn es jede Menge freier
> Umgebungen gibt?

Öhm, für einen Anfänger reichen die 4kB möglicher Code mit der freien 
Version sehr lange, bei manchen Leuten ein Bastlerleben lang.

my2ct

http://www.mcselec.com/index.php?option=com_docman&task=cat_view&gid=99&Itemid=54 
BASCOM AVR DEMO
dazu noch das Handbuch, und los gehts

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.