Erik Bartmann - Mit Arduino die elektronische Welt entdecken

Здесь есть возможность читать онлайн «Erik Bartmann - Mit Arduino die elektronische Welt entdecken» — ознакомительный отрывок электронной книги совершенно бесплатно, а после прочтения отрывка купить полную версию. В некоторых случаях можно слушать аудио, скачать через торрент в формате fb2 и присутствует краткое содержание. Жанр: unrecognised, на немецком языке. Описание произведения, (предисловие) а так же отзывы посетителей доступны на портале библиотеки ЛибКат.

Mit Arduino die elektronische Welt entdecken: краткое содержание, описание и аннотация

Предлагаем к чтению аннотацию, описание, краткое содержание или предисловие (зависит от того, что написал сам автор книги «Mit Arduino die elektronische Welt entdecken»). Если вы не нашли необходимую информацию о книге — напишите в комментариях, мы постараемся отыскать её.

Der Arduino-Mikrocontroller ist aus der Elektronikwelt nicht mehr wegzudenken, er hat sich zu einem Standard im Hobbybereich entwickelt. In unzähligen Projekten kommt das Arduino-Board zum Einsatz, Hunderttausende von ausgereiften Softwarelösungen stehen für jeden zugänglich und unter freier Lizenz zur Verfügung. Der Arduino ist leicht zu programmieren. Preiswerte elektronische Bauteile wie LCDs, Sensoren und Motoren können an das Arduino-Board angeschlossen und damit gesteuert werden.
Mit «Arduino die elektronische Welt entdecken» führt den Leser in die faszinierende Welt der Elektronik und Programmierung ein. Die Hardware wird leicht verständlich dargestellt und die Programmierung des Mikrocontrollers Schritt für Schritt grundsätzlich erklärt. Herzstück des Buches sind 48 detailliert beschriebene Arduino-Bastelprojekte, wobei sich die Komplexität von Projekt zu Projekt steigert. In jedem Bastelprojekt wird ein neues Grundlagenthema behandelt, neue Hardware wird eingeführt und neue Programmierkniffe
und –werkzeuge werden vorgestellt.
Jedes Bastelprojekt ist mit zahlreichen Fotos und Abbildungen illustriert und kann Schritt für Schritt nachgebaut werden. Alle verwendeten Bauteile werden genau erklärt und in ihrer prinzipiellen Funktionsweise vorgestellt. Die Bastelprojekte können beliebig erweitert und für andere Zwecke angepasst werden.
Generationen von Hobbybastlern haben mit Erik Bartmanns Bestsellerbuch bereits die Arduino-Programmierung gelernt. In der komplett überarbeiteten 4. Neuauflage des Arduino-Standardwerkes wurden neue Bauteile wie der ESP32 oder LoRaWAN aufgenommen und neue Entwicklerwerkzeuge wie Node-RED, KiCad und MQTT behandelt.

Mit Arduino die elektronische Welt entdecken — читать онлайн ознакомительный отрывок

Ниже представлен текст книги, разбитый по страницам. Система сохранения места последней прочитанной страницы, позволяет с удобством читать онлайн бесплатно книгу «Mit Arduino die elektronische Welt entdecken», без необходимости каждый раз заново искать на чём Вы остановились. Поставьте закладку, и сможете в любой момент перейти на страницу, на которой закончили чтение.

Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

Doch kommen wir zurück zum binären System. Wie berechnet man die Stellenwertigkeit? Das erfolgt nach folgender Formel:

Wie groß ist also die Wertigkeit des Bits an der Position 4 Dann wollen wir - фото 258

Wie groß ist also die Wertigkeit des Bits an der Position 4? Dann wollen wir mal sehen:

Sehen wir uns jetzt die Variante an die mithilfe der Register beziehungsweise - фото 259

Sehen wir uns jetzt die Variante an, die mithilfe der Register- beziehungsweise Bit-Manipulation‌ realisiert wird. Um das gewünschte LED-Muster zu erzeugen, muss lediglich an den Stellen innerhalb des Bytes eine 1 stehen, an denen die LEDs leuchten sollen. Zum besseren optischen Verständnis habe ich hier anstelle der LED-Bar, wie sie auf dem Arduino Discoveryboard zum Einsatz kommt, richtige LEDs mit 5mm Durchmesser verwendet, was du natürlich ebenfalls machen kannst:

Der entsprechende SketchCode dazu sieht wie folgt aus void setup DDRB - фото 260

Der entsprechende Sketch-Code dazu sieht wie folgt aus:

void setup() { DDRB = 0b11111111; // PORT B komplett als OUTPUT PORTB = 0b00010101; // Erzeugung des LED-Musters } void loop() { /* leer */ }

Wir sehen, dass die Zeile mit der verwendeten Bit-Kombination

PORTB = 0b00010101;

genau dem LED-Muster entspricht. Natürlich muss bei der Initialisierung keine Binärzahl verwendet werden. Es funktioniert auch mit einer Ganzzahl. Machen wir ein kleines Experiment und lassen uns ein paar Bit-Kombinationen von 0 bis 63 anzeigen. Dazu muss lediglich ein Wert immer um 1 inkrementiert – also erhöht werden. Diesmal muss sich aber ein Teil des Codes innerhalb der loop -Funktion befinden, denn es soll ja in regelmäßigen Zeitabständen eine Änderung bewirkt werden:

byte pattern = 0; void setup() { DDRB = 0b11111111; // PORT B komplett als OUTPUT } void loop() { PORTB = pattern++; // Inkrementieren von pattern delay(100); // Kurze Pause von 100ms }

Die Variable pattern ist vom Datentyp byte und hat somit acht Bits und kann Werte von 0 bis 255 speichern. Wenn wir sie innerhalb der loop -Funktion inkrementieren, dann wird irgendwann einmal ein sogenannter Überlauf‌ erfolgen, wenn der Inhalt der Variablen 255 beträgt und anschließend noch einmal der Wert 1 addiert wird. Das funktioniert natürlich nicht, denn das Fassungsvermögen ist erschöpft. Es erfolgt der genannte Überlauf und das Spiel beginnt bei 0 von vorn. Mit folgender Zeile erfolgt das Inkrementieren der Variablen, wobei der Inkrement-Operator‌ , der durch die beiden Pluszeichen repräsentiert wird, die Aufgabe des Hochzählens übernimmt:

PORTB = pattern++;

Man hätte das Gleiche auch mit den folgenden Zeilen erreicht:

pattern = pattern + 1; PORTB = pattern;

Das ist natürlich Geschmackssache, aber Programmierer lieben es, Dinge zu verkürzen und so wenig Code wie möglich zu formulieren.

Die Bit-Manipulation

Kommen wir nun zu einem sehr interessanten Teil: der Bit-Manipulation‌ . Es ist möglich, die Bits über geeignete Operatoren vielfaltig zu manipulieren, was jedoch ein wenig Übung erfordert. Aber wenn man sich diese Art der Programmierung erst einmal erschlossen ist, dann macht es richtig Spaß, die Bits in jeglicher Weise zu verbiegen. Da das Thema dieses Bastelprojektes ja ein Lauflicht ist (was später noch etwas anders als hier realisiert wird), wollen wir doch einmal sehen, wie es möglich ist, eine einzelne LED »wandern« zu lassen. Wir nutzen dazu die sogenannten Bit-Operatoren‌ .

Schiebeoperatoren‌

Damit eine einzelne LED von einem Bit zum anderen geschoben wird, nutzen wir einen der folgenden Schiebeoperatoren:

>>‌ Bedeutet nach rechts schieben.

<<���‌ Bedeutet nach links schieben.

Wie soll das funktionieren? Sehen wir uns dazu die folgenden Inhalte von PORT B und was mit ihnen im Laufe der Zeit passiert:

Abb 9Die Inhalte von Register PORT B zu unterschiedlichen Zeiten Man kann - фото 261

Abb. 9:Die Inhalte von Register PORT B zu unterschiedlichen Zeiten

Man kann sehen, dass die 1 rechts außen schrittweise nach links wandert. Der kleine rote Punkt markiert die Endposition zur angegebenen Zeit. Wie können wir aber diese 1 von rechts nach links schieben? Der angesprochene Schiebeoperator für das nach links Schieben wird uns gute Dienste leisten. Wir gehen davon aus, dass die 1 auf der rechten Außenposition, die – wir erinnern uns – LSB (Least Significant Bit‌)‌ genannt wird und das Bit mit dem niedrigsten Wert kennzeichnet, immer als Ausgangsposition für alle Schiebeoperationen genommen wird. Der folgende Sketch-Code übernimmt diese Funktion des Schiebens:

byte pos = 0; // Positionswert void setup() { DDRB = 0b11111111; // PORT B komplett als OUTPUT } void loop() { PORTB = 1 << pos++; // Die 1 nach links schieben if(pos > 5) pos = 0; delay(500); // Kurze Pause von 500ms }

Die Variable tritt in der Funktion als Schiebeweitenangeber‌ in Erscheinung. Zu Beginn hat sie den Wert 0, was bedeutet, dass beim ersten Schleifendurchlauf die 1 auf ihrer Position bleibt, wie das auch bei Zeitmarke t1 der Fall ist. Nach der Abarbeitung des Befehls wird die Variable pos um den Wert 1 erhöht, was wiederum bedeutet, dass beim nächsten Schleifendurchlauf eine Schiebeaktion nach links um eine Position bedeutet. Es muss jedoch darauf hingewiesen werden, dass durch das Schieben nach links auf der rechten Seite eine 0 eingeschoben wird. In gleicher Weise wird bei jedem erneuten Durchlauf verfahren. Ist der Wert von pos jedoch größer 5, was außerhalb unserer LED-Darstellungsmöglichkeit von sechs Bits liegt, wird er mithilfe der if -Anweisung und des nachfolgenden Befehls auf den Wert 0 zurückgesetzt und das Spiel beginnt von vorn.

Einzelne Bits setzen

Jetzt wollen wir einmal sehen, wie es möglich ist, einzelne Bits zu setzen, also mit dem Wert 1 zu versehen, ohne bestehende Bits in ihrem aktuellen Zustand zu beeinflussen. Schauen wir uns die folgende Situation an, wobei die gezeigte Bit-Kombination die Ausgangs-Bit-Maske (Folge von Bits) darstellt:

Die Aufgabe ist es jetzt das Bit mit der Wertigkeit 8 an Position 3 zu setzen - фото 262

Die Aufgabe ist es jetzt, das Bit mit der Wertigkeit 8 an Position 3 zu setzen. Wir könnten den folgenden Sketch-Code schreiben, um diese Anforderung zu realisieren:

void setup() { DDRB = 0b11111111; // PORT B komplett als OUTPUT PORTB = 0b00000110; // Ausgangs Bit-Maske delay(500); PORTB = 1 << 3; // 3 Positionen nach links schieben } void loop() { /* leer */ }

Die Ausgangs-Bit-Maske, die 500ms lang zu sehen ist, sieht also wie folgt aus:

Im Anschluss soll dann die LED mit der Wertigkeit 8 zusätzlich zu den schon - фото 263

Im Anschluss soll dann die LED mit der Wertigkeit 8 zusätzlich zu den schon leuchtenden angehen. Doch was ist das Ergebnis? Schau mal:

Was ist schiefgelaufen Nun wir haben eine 1 rechts außen auf das LSB gesetzt - фото 264

Was ist schiefgelaufen? Nun, wir haben eine 1 rechts außen auf das LSB gesetzt und dann diese um 3 Positionen nach links geschoben. Wir erinnern uns, dass beim Schieben immer eine 0 an die vorherige Position eingeschoben wird. Für unser Vorhaben nicht so gut, denke ich. Was also tun? Die Lösung verbirgt sich hinter einem weiteren Operator, der aus der Kategorie der Bit-Operatoren entnommen wird. Es handelt sich um das binäre ODER . Dazu sollten wir uns jedoch die folgende Wertetabelle anschauen, damit wir erkennen, welche Auswirkungen dieser Operator hat:

Читать дальше
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

Похожие книги на «Mit Arduino die elektronische Welt entdecken»

Представляем Вашему вниманию похожие книги на «Mit Arduino die elektronische Welt entdecken» списком для выбора. Мы отобрали схожую по названию и смыслу литературу в надежде предоставить читателям больше вариантов отыскать новые, интересные, ещё непрочитанные произведения.


Отзывы о книге «Mit Arduino die elektronische Welt entdecken»

Обсуждение, отзывы о книге «Mit Arduino die elektronische Welt entdecken» и просто собственные мнения читателей. Оставьте ваши комментарии, напишите, что Вы думаете о произведении, его смысле или главных героях. Укажите что конкретно понравилось, а что нет, и почему Вы так считаете.

x