ebook img

Mikrocontrollerprojekte mit mit Arduino, ATmega, ESP32 und Co.: Von der Idee zum fertigen Projekt (German Edition) PDF

158 Pages·25.99 MB·German
Save to my drive
Quick download
Download
Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.

Preview Mikrocontrollerprojekte mit mit Arduino, ATmega, ESP32 und Co.: Von der Idee zum fertigen Projekt (German Edition)

Mikrocontrollerprojekte mit mit Arduino, ATmega, ESP32 und Co. Von der Idee zum fertigen Projekt Mikrocontrollerprojekte mit mit Arduino, ATmega, ESP32 und Co. Von der Idee zum fertigen Projekt Jörg Bischof DieInhaltediesesBucheswurdenmitgroßerSorgfalterstellt.TrotzdemkannderAutor keine Garantie für die Richtigkeit, Aktualität und Vollständigkeit der Inhalte überneh- men. Er haftet nicht für Schäden, die sich aus der Nutzung der hier angebotenen Informationen entstehen könnten. Die dargestellten Schaltungen, Programme und sonstige Informationen dienen Schulungszwecke und sind ohne Rücksicht auf eventu- elle Patentansprüche. Die im Buch verwendeten Soft- und Hardwarebezeichnungen, Markennamen und Produktbezeichnungen sind Eigentum der betreffenden Unterneh- men. Copyright©2022JörgBischof AlleRechtevorbehalten ISBN:9798839951853 Imprint:Independentlypublished Inhaltsverzeichnis 0 Vorwort 8 1 GrundlagenderElektronik 12 1.1 Spannung,Strom,Widerstand,Leistung 12 1.1.1 Spannung 12 1.1.2 Strom 13 1.1.3 Widerstand 13 1.1.4 Leistung 14 1.2 Kapazität,Induktivität 14 1.2.1 Kondensator 14 1.2.2 Induktivität 15 1.3 Halbleiterbauelemente 16 1.3.1 Halbleiterdioden 16 1.3.2 BipolareTransistoren 18 1.3.3 UnipolareTransistoren 19 1.4 GrundlegendeGesetze 21 1.4.1 OhmschesGesetz 21 1.4.2 2.KirchhoffschesGesetz 21 1.4.3 1.KirchhoffschesGesetz 22 2 GrundlagenderMikrocontroller 24 2.1 EtwaszurGeschichte 24 2.2 GrundsätzlicheFunktionvonComputern 25 2.3 PrinzipiellerAufbaudesMikrocontrollers 28 3 DerArduino 32 3.1 ZurEntwicklungsgeschichte 32 3.2 Boards 32 3.3 ArduinoIDE 34 3.4 ArduinoUnoRev3 40 4 DieArduinoIDE 44 4.1 GrundsätzlicherAufbaudesProgramms 44 4.2 Variablen 46 4.3 SpezielleVariablentypen 48 4.4 Operatoren 53 4.5 VordefinierteKonstanten 54 4.6 Kontrollstrukturen 56 4.6.1 if,if…else 56 4.6.2switch…case 57 4.7 Schleifen 58 4.7.1 for-Schleife 58 4.7.2 while-Schleife 59 4.7.3 do-while-Schleife 60 4.7.4 break,continue 60 4.8 Funktionen 62 4.9 NutzungderUART-Schnittstelle 64 5 ProgrammierungmitderIDE 68 5.1 DigitaleEin-undAusgabe 68 5.2 ProgrammierbeispielWürfel 74 5.2.1 DieVoreinstellungen 76 5.2.2ErkennendesSchalters 77 5.2.3ErzeugungderZufallszahl 79 5.2.4AnzeigederZahl 81 5.3 Interrupts 86 5.4 Bitweise-Operationen 90 5.4.1 AND(&),OR(|)undXOR(^) 90 5.4.2BitweisesNOT(~) 93 5.4.3Verschiebeoperatoren(<<,>>) 93 5.4.4Zeiger-Operatoren 94 5.5 BeispielEingangsport-Erweiterung 97 5.6 VerarbeitunganalogerWerte 104 5.6.1 AnalogeEingänge 104 5.6.2PWM-Ausgänge 106 5.7 WeitereBefehle 108 5.8 NutzungvonC/C++-Befehlen 109 6 ESP8266undESP32mitderArduinoIDE 114 6.1 Daten 114 6.2 AnpassungderArduinoIDE 115 6.3 HTTP-Protokoll,HTMLundCSS 119 6.3.1 HTTP-Protokoll 119 6.3.2HTMLundCSS 121 6.4 BeispielcodeWLAN-Schalter 123 7 C/C++-Programmierungmit MicrochipStudio 132 7.1 Programmer 132 7.2 MicrochipStudionutzen 135 7.3 Beispielprojekt:Fuchsjagdsender 139 7.3.1 GedankenzumProjekt 139 7.3.2 DasProgramm 142 8 Schlussbemerkungen 152 9 Literatur 153 10 Index 155 8 Vorwort 0 Vorwort Anfang der 80er Jahre des letzen Jahrhunderts begann ich mich für Computer zuinteressieren.AufeinerMessehatteichdenZ8-NachbauinFormdesU881, U882undU883kennengelernt.Interessantfandich,dasssichaufeinemChip alles befand, was einen Computer so ausmacht: CPU, PIO, CTC, RAM, ROM. Es mussten also nicht alle Einzelteile mühsam zusammengesucht werden. AberwieprogrammiertmaneigentlichsoeinDing? Wiekannmanwaserreichen,indemmanBitsmanipuliert? Da wurde von der Kammer der Technik (KdT) ein Lehrgang angeboten, der sich in zwei Wochenkursen mit eben diesen Z8 von Zilog beschäftigte. Also dafürgesorgt,dassichdortangemeldetundderKursbezahltwurde.Aberwie dasLebenmanchmalsospielt:MontagsollteeslosgehenundamSonnabend zerbrachmirbeimReinigeneinWeinballonundichhatteeineangeschnittene Sehne und den Arm in Gips. Also musste jetzt schnell jemand anderes hinfah- ren. Es gab ja auch Unterlagen zu holen. Nach einer Woche kam mein "Vertreter" zurück und die Aussage: "Ich weiß gar nicht, was die wollen und fahre nie wieder dort hin". Die Unterlagen habe ich mir angesehen und war dann letztendlich genau so schlau wie vorher. Zum zweiten Teil, der ein paar Wochen später begann, bin ich dann völlig ahnungslos hingefahren. Auf die Frage,wasichdennhierwill,wardieAntwort:Ichwillprogrammierenlernen! Die Programmiersprache war Assembler - also ganz unten auf der Maschinen- eben. Der Vorteil war, dass man den Controller richtig gut verstand. Im Kurs gab es eine Hardware: eine Spindel, die mit einem Motor angetrieben wurde, zweiEndschalterunddreiTaster.Wasmichfasziniertewar,dassmitderselben Hardware, aber unterschiedlicher Software völlig unterschiedliche Funktiona- litäten erreicht werden konnten. Ein paar Jahre später hatte ich für meine Abschlussarbeit an der damaligen TU Karl-Marx-Stadt eine aktive Bildschirm- steuerungmitdemU882einwickelt,diesogarfunktionierte. NachdemEndederDDRundderberuflichenNeuorientierunghatteichvöllig andere Probleme, als mich mit Mikrocontrollern zu beschäftigen. In den frü- hen 2000er begann ich mich wieder für Controller zu interessieren. Zuerst beschäftigte ich mich etwas mit den PIC-Controllern. Ich konnte mich aber nichtsorechtmitnureinemAccumulatoranfreunden.DerZ8hatteimmerhin 32 frei verfügbare Register, die manipuliert werden konnten. Die Controller der damaligen Firma Atmel trafen da schon eher meinen Geschmack. Dann stieß ich auf das Arduino-Projekt. Meine Programmierkenntnisse beschränk- ten sich damals auf JavaScript, PHP und ganz rudimentär Java. Arduino Vorwort 9 vereinte einfach alles auf einfacher Weise: eine Enwicklungsumgebung (IDE), einevereinfachteProgrammierspracheunderschwinglicheHardware.Alsobe- schäftigteichmichjetztwiedermitControllern. ZudieserZeitwarichDozentaneinerprivatenBerufsschuleundunterrichtete indem(fürangehendeInformatikerungeliebten)FachElektrotechnik/Elektro- nik. Um die Schüler mit Programmierung für die Elektronik wenigstens etwas zu interessieren, habe ich den Arduino in den Unterricht mit eingebunden. MeineBegeisterungfürdieControllerwarungebrochen. Undichbegannauch,michnähermitderProgrammierspracheCzubeschäfti- gen. Auf diese waren die Controller ausgerichtet und die Arduino-spezifische Sprache basierte auf dieser. Zumal man den Arduino problemlos völlig in C programmierenkann.OdermanmischtbeideSprachennachBelieben. Irgendwann musste man sich aus den Hardwarezwängen des Arduino befrei- en. Das betraf vor allem die festgelegte Taktfrequenz. Nun wurde der ATmega328 direkt verwendet und in C programmiert. In diesem Buch werde ichaufbeideMöglichkeiteneingehen. FürwenistdasBucheigentlichgedacht? Eigentlichfüralle,dieInteresseanProjektenderElektronikhabenundvonder reinen diskreten Schaltung abgehen möchten. Das können Funkamateure sein, Modellbauer, Interessenten für Steuerungen aller Art und viele weitere. Ich denke, viele Probleme lassen sich mit programmierten Mikrocontrollern eleganter lösen, als mit diskret aufgebauten Schaltungen.Man mag sich jetzt vielleicht fragen, warum statt ein paar Widerständen und Kondensatoren so- wie zwei Transistoren ein Schaltkreis mit mehreren Tausend Transistoren genommen werden soll. Die Antwort ist: man ist einfach viel flexibler auf ge- änderteAnforderungen. vs Abb.1:VergleicheinerdiskretenSchaltungmiteineräquivalentenMikrocontrollerlösung 10 Vorwort Wenn hier z.B. die Frequenz geändert werden soll, müssten bei herkömmli- chen Schaltungen zwei Widerstände und Kondensatoren ausgetauscht wer- den. Mit einem Controller wird einfach das Programm etwas geändert. Die Hardwarebleibtgleich. WelcheVoraussetzungensollteichmitbringen? Wichtig wären auf alle Fälle Grundkenntnisse der Elektrotechnik und (haupt- sächlich digitalen) Elektronik. Erfreulicher Weise braucht man dazu keine umfangreichen Formelkenntnisse. Das Ohmsche und bei beiden Kirchhoff- schen Gesetzte sollte aber keine Unbekannten sein.Damit kommt man aber dannschonrechtweit. Umfangreiche Programmiererfahrungen sind vielleicht gar nicht so schlecht, werden hier aber erst einmal nicht benötigt. Ich werde auf die Grundlagen anfangs eingehen und anhand einfacher Beispiele tiefer in die Programmie- rung einsteigen. Ziel ist es, ein Gefühl für die Anwendung von MikrocontrollerninderPraxiszubekommenunddanndamitaucheigenePro- jektezurealisieren. Ichmöchtenocheinmaldaraufhinweisen,dassdashierkeinBuchist,indem für alle möglichen Fälle Programmierbeispiel gezeigt werden: Dazu wäre viel- leicht[6]eineIdee. Mir geht es vielmehr darum, zu erklären, wie man an das Programmieren her- angehtundLösungenfürselbstgestellteAufgabenfindet.Dazusindnatürlich Kenntnisse der Hardware und Programmiersprache notwendig. Das nötige Rüstzeugdazuisthierzufinden. IchhabehierrechtwenigQuellcodegeschrieben,dajederseinenWegfinden soll.Aberichempfehle,diesenCodedochauszuprobierenundabzuschreiben. Immer nach dem Motto: „Durch das Auge in den Kopf und dann in die Hand. SomussesmindestenseinmaldurchdieBirne.”Keineristfehlerfrei–auchich nicht. Die Programme habe ich ausprobiert. Allerdings getestet auf einem Windows-Notebook, abgeschrieben auf einem iMac. Man kann sich ja auch malverschreiben… Aber:durchFehlersuchelerntmanamMeisten!

See more

The list of books you might like

Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.