Forum: Mikrocontroller und Digitale Elektronik Mein Start in die Welt der Mikrocontroller


von Florian (Gast)


Lesenswert?

Hallo,

mein Name ist Florian und studiere Mechatronik im 4. Semester. Ich habe 
bis jetzt im Studium ein wenig C und C++ programmiert. Auch ein Kurs 
über Mikrocontroller habe ich belegt. Bis jetzt habe ich so ziemlich 
alle Prüfungen gut bestanden.

Trotz der bestandenen Prüfungen in den jeweiligen Fächern, habe ich das 
Gefühl, dass ich vom Programmieren nicht viel Ahnung habe. Ich arbeite 
mich für die Prüfungen in die Themen ein, aber wenn ich ein halbes Jahr 
später nochmal über die Themen nachdenke fällt mir auf, wie wenig da 
eigentlich hängen bleibt. War oder ist das bei euch auch so?

Vor zwei Wochen habe ich mir einen Arduino gekauft und wollte damit ein 
wenig basteln. Um rein zu kommen habe ich mir Tutorials auf Youtube 
angesehen und nachprogrammiert. Das hat auch ziemlich gut geklappt. Als 
nächstes wollte ich einen DS18B20 Temperatursensor an den Arduino 
anschliessen und bin kläglich gescheitert.

Ich hatte eigentlich vor, nur mithilfe des Datenblatts den Sensor 
anzuschließen, aber irgendwie hab ich das Datenblatt nicht richtig 
verstanden oder wusste einfach nichts mit den Infos anzufangen. Auf 
Quellcode von anderen Leuten wollte ich eigentlich verzichten. Da man 
später im Beruf nicht auch immer irgendwo abschreiben kann.

Habt ihr einen Tipp für mich, wie ich mich am Besten in die Thematik 
einarbeite (Buch oder Online-Tutorium)? Wie seid ihr zu 
Mikrocontroller-Profis geworden?

Gruß Florian

von Karl H. (kbuchegg)


Lesenswert?

Florian schrieb:

> später nochmal über die Themen nachdenke fällt mir auf, wie wenig da
> eigentlich hängen bleibt. War oder ist das bei euch auch so?


Zum Teil ja, zum Teil nein.

Am meisten bleibt dann hängen, wenn man Dinge selber macht und die nicht 
auf Anhieb funktionieren. Hat man das Problem dann gelöst und auch 
verstanden wie es zu dem Problem kam, dann beschert das einem eine 
unauslöschbare Erinnerung, die man auch nach Jahrzehnten noch abrufen 
kann.
Das ist das Kapital, das einen Erfahrenen Entwickler ausmacht. Er hat 
jeden Fehler, den du in den nächsten 10 Jahren machen wirst, schon x mal 
selbst gemacht und weiss wie er ihn erkennt und behebt.

Fazit: Am Spruch "Übung macht dem Meister" ist was drann. Wobei 
Scheitern als Teil der Übung zu sehen ist.

> Vor zwei Wochen habe ich mir einen Arduino gekauft und wollte damit ein
> wenig basteln. Um rein zu kommen habe ich mir Tutorials auf Youtube
> angesehen und nachprogrammiert. Das hat auch ziemlich gut geklappt.

Das Problem bei Arduino ist, dass dir das Framework mit seinem vielen 
vorgefertigten Komponenten so viel wegabstrahiert, dass du überhaupt 
nicht mehr siehst, was sich da auf ganz unterer Bit bzw. Pin Ebene 
abspielt.

> nächstes wollte ich einen DS18B20 Temperatursensor an den Arduino
> anschliessen und bin kläglich gescheitert.

Ist letzten Endes eine Frage des richtigen Timings. Das ist bei One-Wire 
der 'Tricky part'.

>
> Ich hatte eigentlich vor, nur mithilfe des Datenblatts den Sensor
> anzuschließen, aber irgendwie hab ich das Datenblatt nicht richtig
> verstanden oder wusste einfach nichts mit den Infos anzufangen. Auf
> Quellcode von anderen Leuten wollte ich eigentlich verzichten.

In deiner jetzigen Situation ist das die falsche Einstellung. Lernen 
bedeutet nicht automatisch, dass man sich alles selbst von 0 aus 
beibringen muss. Anderer Leute Code zu studieren ist genauso Teil des 
Lernens. Sowohl im positiven als auch im negativen Sinn kann man von 
anderer Leute Code viel lernen. Das einzige was wirklich nichts bringt, 
das ist Code zu kopieren, laufen zu lassen, sich zurücklehnen und sagen 
"Schön, jetzt kann ich das auch". Einen Schmarrn hat man dann dabei 
gelernt.
D.h. gegen das Hernaziehen von fremden Code zum Zwecke des Studiums wie 
der das gewünschte macht, ist überhaupt nichts einzuwenden. Nur muss es 
eben auch wirklich ein Studium sein und nciht einfach nur gedankenloses 
Kopieren. Ganz im Gegenteil ist es auch oft ganz gut, sich mehrere 
Implementierung anzusehen und sich anzusehen, wo die Unterschiede 
liegen, ob und wenn ja welche Implementierung besser (egal wie man 
besser definiert) ist und welche schlechter.

> Da man
> später im Beruf nicht auch immer irgendwo abschreiben kann.

Du würdest dich wundern :-)

> Habt ihr einen Tipp für mich, wie ich mich am Besten in die Thematik
> einarbeite (Buch oder Online-Tutorium)? Wie seid ihr zu
> Mikrocontroller-Profis geworden?

AVR-Tutorial
AVR-GCC-Tutorial

: Bearbeitet durch User
von Frank S. (hobbyist)


Lesenswert?

Ich bin sicherlich kein Profi und lerne selber noch reichlich dazu. 
Diese Kombination finde ich sehr hilfreich:

http://www.pollin.de/shop/dt/Mjg3OTExOTk-/Fundgrube/Literatur/AVR_Programmierung_und_Hardware_in_C_inkl_Evaluation_Board.html

von Na dann Prost! (Gast)


Lesenswert?

>Das Problem bei Arduino ist, dass dir das Framework mit seinem vielen
>vorgefertigten Komponenten so viel wegabstrahiert, dass du überhaupt
>nicht mehr siehst, was sich da auf ganz unterer Bit bzw. Pin Ebene
>abspielt.


Das ist ein VORTEIL, kein NACHTEIL!

Bit-Popelei kann er immer noch machen.
Muss ja nicht für alle Zeiten bei Arduino bleiben.

Als Nachteil ist die unkomfortable IDE und die nicht vorhandenen
Debug-Möglichkeiten zu nennen.

von Karl H. (kbuchegg)


Lesenswert?

Na dann Prost! schrieb:
>>Das Problem bei Arduino ist, dass dir das Framework mit seinem vielen
>>vorgefertigten Komponenten so viel wegabstrahiert, dass du überhaupt
>>nicht mehr siehst, was sich da auf ganz unterer Bit bzw. Pin Ebene
>>abspielt.
>
>
> Das ist ein VORTEIL, kein NACHTEIL!

Das kommt drauf an. Wenn du lernen möchtest, wie eine Servoansteuerung 
funktionert, dann ist es nicht sehr zuträglich wenn man einfach nur
1
   Servo.MoveTo( 98 );
schreiben kann.

Wenn man eine künstlerisch wertvolle Objektinstallation machen will, 
dann braucht man auch nicht wissen, was da dahinter steckt. Da ist das 
dann ein Vorteil.
Wenn man aber lernen will, wie es funktioniert, dann ist das ein 
Nachteil.

Der TO ist Mechatronik Student und will wissen und lernen was da hinter 
den Kulissen abgeht.

von W.S. (Gast)


Lesenswert?

Florian schrieb:
> Habt ihr einen Tipp für mich, wie ich mich am Besten in die Thematik
> einarbeite (Buch oder Online-Tutorium)? Wie seid ihr zu
> Mikrocontroller-Profis geworden?

Tja Florian,
ich habe leider eher das Gegenteil.

Ich nenne mal drei Sätze, die mir erinnerlich geblieben sind. Der eine 
stammt von meinem Vater, der (hochbetagt) durchaus Interesse an PC's 
gezeigt hatte, aber es war nur so stark, daß er mir mal sagte "Das ist 
ja alles hochinteressant, aber mir hat das noch nie jemand erklärt, wie 
das alles geht". Der zweite Satz stammt von einem meiner früheren Chefs, 
der zu einem Lehrling gesagt hatte "Das muß von INNEN kommen!" und der 
dritte Satz stammt von einem früheren Jung-Kollegen: "Darauf bin ich 
nicht geschult worden".

Und wie ich selbst dazu gekommen bin? Als es die allerersten Z80 gab und 
mein Prof von einer USA-Reise ein Kit dazu mitbrachte, hat sich 
unsereiner zunächst auf die ebenfalls mitgebrachte Doku gestürzt und die 
Dame im Sekretariat bekniet, daß sie mir die Seiten mit den Opcodes 
kopiert. Hat sie auch. Die mitgebrachte Hardware (Kit zum Selberlöten) 
durften wir Studenten selbstverständlich NICHT anfassen.

So war der Anfang: Lesen und Hardware verstehen lernen. Und wenn ich 
heutzutage und in diesem Forum immer wieder lesen muß "Ich will mich mit 
XYZ beschäftigen, wo finde ich den passenden Nürnberger Trichter und wer 
setzt ihn mir fachgerecht auf den Kopf?" dann rümpft sich mir die Nase 
von selbst und es kommt ein Gefühl der tiefsten Verachtung auf - ich 
kann da nicht anders. Es muß eben von innen kommen.

W.S.

von Ulrich F. (Gast)


Lesenswert?

W.S. schrieb:
> dann rümpft sich mir die Nase
Mir, wenn ich den Begriff "Video Tutorial" höre...

W.S. schrieb:
> Es muß eben von innen kommen.

Das Video Tutorial?

von Klaus (Gast)


Lesenswert?

Mit Arduino lernt man nicht programmieren oder Elektronik, man lernt cut 
& paste. JM2C

Frank S. schrieb:
> Diese Kombination finde ich sehr hilfreich:
>
> 
http://www.pollin.de/shop/dt/Mjg3OTExOTk-/Fundgrube/Literatur/AVR_Programmierung_und_Hardware_in_C_inkl_Evaluation_Board.html

Hast du das? Kannst du dazu was schreiben? Vielleicht gleich bei Amazon 
oder so, damit auch andere Leute das finden und nicht immer wieder 
fragen?

von jadenhabich (Gast)


Lesenswert?

https://www.terrashop.de/Buch/AVR-Mikrocontroller-Kochbuch-Irmtraut-Meister-Lukas-Salzburger-ISBN-3645651268/art/64565126/
Dazu nen bisschen Hardware und du kannst fuer geschaetze 15 Euro schon 
ne Menge tun.

von Conny G. (conny_g)


Lesenswert?

Ich habe mir am Anfang die AVR Grundschaltung auf dem Breadboard 
aufgebaut, zunächst mit Blink LED und dann immer neue Sachen 
ausprobiert.
Mal mehrere LEDs, mal ein Shiftregister IC, mal einen I2C 
Temperatursensor, mal ein Relais mit Transistor angesteuert, ein 
Funkmodul einfach, ein Funkmodul SPI.
Dann mal einen IR Sender mit 6 IR LEDs, der den ganzen Raum bestrahlen 
kann. Uvm.
Dann mal eigene Platinen gemacht, die zB meine Kaffeemaschine per 
Funkmodul schaltet oder eine, die 4 Ausgänge mit Mosfets hat und damit 
diverse Dinge tun kann.
Auf Arduino hatte ich keine Lust, weil mich der davon abhält die 
Bauteile, die Hardware zu verstehen.
Habe erst 1-2 Jahre später mal einen Arduino verwendet wo es mir nur 
darum ging auf ein Wochenende etwas fertig zu machen.

von Paul B. (paul_baumann)


Lesenswert?

Conny G. schrieb:
> Auf Arduino hatte ich keine Lust, weil mich der davon abhält die
> Bauteile, die Hardware zu verstehen.

Wie macht der Arduino das?

Grübel

Paul

von Joachim B. (jar)


Lesenswert?

Florian schrieb:
> Habt ihr einen Tipp für mich, wie ich mich am Besten in die Thematik
> einarbeite (Buch oder Online-Tutorium)? Wie seid ihr zu
> Mikrocontroller-Profis geworden?

um Himmels Willen ich bin kein Profi, OK ich habe auch mal 
"professionell" programmiert neben der Hardware in Basic und C. Aber ich 
nutze viel aus dem Netz, Fleury Dannegger (Danke an diese) und lerne 
davon auch mal mehr mal weniger.

Erste Versuche selbst DCF77 entschlüsseln am PC, später nutze ich nur 
noch den genialen Code von PeDa. Die Fleury LIB half mir I2C zu nutzen 
und ich habe sie sogar teilweise zum Arduino portiert weil dort nicht 
alles rund läuft. Tastenentprellung nach Dannegger auch.

Also einiges selber machen verstehen und auch von den "Profis" lernen.

von Conny G. (conny_g)


Lesenswert?

Paul B. schrieb:
> Wie macht der Arduino das?

Der Arduino ist eine fertige Platine, mit einer fertigen IDE, mit einem 
fertigen Object Framework. Dazu gibt es Module, die man andocken kann.
Es ist als das Lego Duplo der Elektronik, zwei Sachen zusammenstecken, 
Beispiel suchen, rumspielen.
Es hält mich von allen Details fern, die Elektronik eigentlich 
ausmachen.
Ich lerne dabei nichts über den Mikroprozessor an sich, Widerstände, 
warum ich die wohin mache (Pullup, Pulldown), was ein Quartz ist und wie 
man den Mikroprozessor genau programmiert, mit Registern etc.
Und ich lerne nicht Datenblätter zu lesen, siehe Story des TO.

Aber jetzt geht's gerade in die übliche dogmatische Diskussion, das 
können wir uns sparen, gibt's hier im Forum wohl hundertfach. Wir 
schaffen keinen Mehrwert, wenn wir da nochmal einsteigen.
Ich habe nichts gegen Arduino, ich wollte es halt nicht so. Jeder wie er 
will.

von Franz (Gast)


Lesenswert?

>Wie macht der Arduino das?

Er übt einfach zu wenig zwang aus. Wenn Du einen Atmega328 kaufst, bist 
Du gezwungen, das Datenblatt zu lesen, damit die LED irgendwann blinkt.
Den Arduino schließt man an, lädt das Blink-Example, drückt den 
Download-Knopf und schon blinkt es. Man wir einfach nicht gezwungen, das 
Datenblatt zu lesen.

BTW.: Wer Spaß daran hat, kann auch bei einem Arduino UNO in der loop()

PORTB|=1<<2;

schreiben ( Das geht trotz der Lib ).

von Paul B. (paul_baumann)


Lesenswert?

Franz schrieb:
> Er übt einfach zu wenig zwang aus.

Conny G. schrieb:
> Der Arduino ist eine fertige Platine, mit einer fertigen IDE, mit einem
> fertigen Object Framework. Dazu gibt es Module, die man andocken kann.

Ich habe hier Arduino Mini Pro. Das ist nichts weiter als ein Platinchen 
mit Spannungsversorgung und dem Atmega328 drauf.

NICHTS zwingt mich, die Arduino-Software zu benutzen. NIEMAND hält mich 
davon ab, das Ding in Assembler, Bascom oder auch C zu programmieren.
Ebenso hält mich NICHTS davon ab, nach Herzenslust an Registern "von 
Hand" herumzufuhrwerken.

Ich verstehe den Hass mancher Leute auf ein kleines Platinchen nicht. 
Warum schimpft man nicht genau so auf ein STK500 oder die AVR-Platine 
von Pollin?
Das ist auch NICHTS ANDERES, als eine fertige Experimentiermöglichkeit.

MfG Paul

von Jupp (Gast)


Lesenswert?

Paul B. schrieb:
> Das ist auch NICHTS ANDERES, als eine fertige Experimentiermöglichkeit.

Es ist mehr als NUR eine fertige Experimentiermöglichkeit. Es ist 
praktisch der Standard oder wird es gerade.

von R. R. (elec-lisper)


Lesenswert?

Arduino ist ein furchtbarer mischmasch Begriff. Pures Chaos, genau wie 
im Kopf der Künstler die damit Lichtinstallationen bauen.
Der Arduino Uno ist ein wunderbares kleines Platinchen welches man dank 
China sehr günstig bekommt. Ideales Experimentieplattförmchen wo dann 
nicht gleich 50€ hinüber sind wenn man mal mist baut.

von Olaf (Gast)


Lesenswert?

> mein Name ist Florian und studiere Mechatronik im 4. Semester.

Hallo Florian, willkommen im Haifischbecken.

> Bis jetzt habe ich so ziemlich alle Prüfungen gut bestanden.

Streber. :-)

> Trotz der bestandenen Prüfungen in den jeweiligen Fächern, habe ich das
> Gefühl, dass ich vom Programmieren nicht viel Ahnung habe.

Deine Gefuehle sind zu 100% richtig.

> Quellcode von anderen Leuten wollte ich eigentlich verzichten. Da man
> später im Beruf nicht auch immer irgendwo abschreiben kann.

Das ist zweifellos richtig so und im Zeitalter von Lug&Betrug eine 
ungewoehnlich ehrbare Ansicht.

> Wie seid ihr zu Mikrocontroller-Profis geworden?

Wir haben nicht so schnell aufgegeben. Ausserdem habe ich nicht alle 
meine Pruefungen mit gut bestanden weil mir manchmal das Basteln mit 
Mikrocontrollern wichtiger war. :)

Zunaechst mal, es spricht nicht dagegen sich auch mal den Source anderer 
Leute anzuschauen. Man kann daraus lernen, man sollte ihn bloss nicht 
ohne zu denken oder verstehen, kopieren.

Dann ich der 1-Wirebus fuer einen Anfaenger leider auch noch ziemliche 
Kacke. Das liegt daran das der Bus ziemlich hohe Timinganforderungen 
stellt. Man kann da nicht mitten in einer Uebertragung mit dem Debugger 
anhalten und dann weitermachen.

Wenn ich dir etwas empfehlen darf, besorg dir erstmal ein SPI ICs. Das 
programmierst du direkt ohne die eingebaute Hardware im Controller. 
Danach machst du dasselbe mit einem I2C-Bus IC. Danach liesst du mal das 
Datenblatt deines Controllers intensiver und machst das mit der 
integrierten Hardware.

Und dann wendest du dich wieder dem 1-Wireprotokoll zu.

Olaf

von Frank S. (hobbyist)


Lesenswert?

@ Klaus:

Ja, das Buch und das Board habe ich in der verlinkten Kombination 
gekauft. Passend dazu habe ich mir zusätzlich noch diese hier 
angeschafft:

http://www.pollin.de/shop/dt/NjQ5OTgxOTk-/Bausaetze_Module/Bausaetze/Bausatz_ATMEL_Addon_Board_V1_0.html

http://www.pollin.de/shop/dt/ODM4OTgxOTk-/Bausaetze_Module/Bausaetze/Bausatz_Portsplitter.html

http://www.pollin.de/shop/dt/MjQ5OTgxOTk-/Bausaetze_Module/Bausaetze/Bausatz_Streifen_Punktrasterplatinen_Adapter.html

Da ich ziemlich talentbefreit bin, was das Programmieren angeht, tue ich 
mich ziemlich schwer damit, das alles zu verstehen. Aber ich werde mich 
mit der Zeit durch das Buch ackern. Was ich bisher gelesen habe, war 
schon hoch interessant und geht einiges über das Wissen hinaus, dass ich 
nach rund drei Jahren Herumbasteln mit den Arduinos und ein paar Attinys 
gelernt habe.

Es wird zu Beginn in dem Buch relativ ausführlich auf die AVR ansich und 
deren "Grundbeschaltung" eingegangen. Auch wird beispielsweise erklärt, 
wozu ein Kondensator gut ist und was für Alternativen es zu einem Quarz 
gíbt, etc.

Einiges kannte ich schon, andere Dinge waren mir aber neu. Ich kann 
diese Kombination jedem empfehlen, der sich ernsthaft mit dem Thema AVR 
auseinandersetzen möchte. Das Buch behandelt sicherlich nicht alle 
Kniffs und Tricks, die es für AVR gibt. Aber wenn man es durch hat und 
alles verstanden hat, ist man für eigene (auch umfangreichere Projekte) 
sehr gut gerüstet.

Frank

von Franz (Gast)


Lesenswert?

Wenn man sich überlegt, wie sich doch die Ansichten der MC-Netz User 
langsam aber sicher wandeln.

Beitrag "Re: Arduino - bringt's das ?"

von Klaus (Gast)


Lesenswert?

Frank S. schrieb:
> Aber wenn man es durch hat und
> alles verstanden hat, ist man für eigene (auch umfangreichere Projekte)
> sehr gut gerüstet.

Hört sich gut an. Wie gesagt: mein Tipp: bei Amazon reinschreiben, dann 
kann man da auch ggf. mal hinverweisen, wenn die immer gleiche Frage 
hier kommt.

von W.S. (Gast)


Lesenswert?

Franz schrieb:
> Wenn man sich überlegt, wie sich doch die Ansichten der MC-Netz User
> langsam aber sicher wandeln.



Zitat:
> ... Arduino:
> Es ist hald eher auf beginner ausgelegt, oder auf leute die besser
> programmieren als löten können.

Ja damit lügen sich die Arduinoboys regelmäßig selber in die Tasche.
Natürlich können die so schlecht programmieren wie sie Hardware
verstehen können (als wenn es aufs Löten ankommen würde...). Aber wenn
sie selber an die HW ranmüssen dann sehen sie sofort dass sie keine
Ahnung haben und nichts funktioniert. Bei SW geht das bisschen anders.
Erstmal hat man da die fertigen libs und dann kopiert man halt noch die
4 Zeilen Ansteuerung dieser libs ausm Netz.
Und voila, man kann programmieren. Nur das HW-Zeug liegt einem halt
nicht so. Die Lebenslüge schlechthin aber wer hat die nicht.

gruß cyblord

/Zitat

Tja, ich kann da unserem cyblord nur hinzufügen, daß es danach aussieht, 
als ob in Sachen µC-Verwendung und Programmierung die berüchtigte 
Richter-Skale nach unten hin geradezu unbegrenzt ist. Schlimmer geht's 
immer. Es ist wohl der Drang der Leute, ohne eigenen Fleiß den 
erwünschten Preis erringen zu können.

W.S.

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.