Category Archives: Arduino

Bewegungssensor-Steuerung

Ein PIR Sensor ist ein passiver Sensor (PIR = Passive InfraRed), der häufig in Bewegungsmeldern zum Einsatz kommt. Die gängigen PIR Module sind am Arduino sehr einfach aufgebaut und verfügen über 2 Pins für die Stromversorgung (+5V, GND) und ein Statuspin, das bei erkannter Bewegung auf HIGH gesetzt wird. Einige der PIR Sensor-Module sind zusätzlich noch… Read More »

Temperatur-Messung mit dem DS18B20

Für das Messen von Temperaturen findet man verschiedenste Sensoren. In diesem Beitrag soll der Sensor DS18B20 zum Einsatz kommen. Diesen Sensor gibt es auch in einer wasserdichten Ausführung, die im folgenden an ein Arduino Board angeschlossen werden soll. Dabei handelt es sich um einen sehr präzisen Sensor, der im Bereich von -55°C bis +125°C mit… Read More »

Neue Hardware: M5 Stack

Die chinesische Firma Espressif Systems hat mit dem M5 Stack eine beeindruckende Harwareplattform auf den Markt gebracht. Sie bietet neben einem integrierten LCD, Wifi, ESP32 Modul auch die einfache Programmierung über die Arduino IDE. Eine ausführliche Beschreibung findet man unter http://www.m5stack.com Die Installation auf dem MAC benötigt aber einige Zeit, da man neben der Anleitung (die sich… Read More »

Arduino-basierter DDS Signal-Generator

Mit Hilfe des AD9850 DDS Signalgenerator Bausteins lässt sich zusammen mit einem Arduino ein kostengünstiger Signalgenerator aufbauen. Der Generator liefert Rechtecksignale und Sinussignale von 0 bis 40 MHz und wird über einen Microcontroler angesteuert. Das Sinussignal ist in digitaler Form auf dem Chip hinterlegt und wird über einen schnellen 10-bit DA-Wandler kontinuierlich ausgegeben. Rechtecksignale können bis zu… Read More »

Pull-Up und Pull-Down Widerstände

Um an einem elektrischen Eingang ein definiertes Signal zu erhalten, werden üblicherweise sogenannte Pull-Up bzw. Pull-Down Widerstände verwendet. Die Funktion lässt sich aus den Bezeichnungen ableiten: Ein Pull_Up-Widerstand zieht also etwas hinauf und ein Pull_Down-Widerstand zieht etwas hinunter. Eine Pull_Up-Widerstand-Schaltung sorgt dafür, dass die elektrische Spannung hinauf bis zum Betriebsspannungswert +Ub (Vcc) gezogen wird. Die Pull_Down-Widerstands-Schaltung zieht… Read More »

Encoder mit dem Arduino auslesen

Encoder sind  Drehwinkel-Sensoren. Encoder haben keinen Start- oder Endpunkt. Man kann ihn daher endlos in beide Richtungen drehen.  Die Absolute Positionsabfrage ist damit nicht möglich, da der Encoder ja keine feste Positionen hat. Stattdessen gibt er bei jeder Drehung einen Impuls ab. Da die Kontakte versetzt angeordnet sind, kann man an der Reihenfolge der Signale erkennen… Read More »

Kapazitätsmessung mit dem Arduino

Die Idee des Meß-Prinzips besteht darin, ein präzises Monoflop 74HC4538E zu verwenden, um einen Impuls zu erzeugen, der direkt von der Kapazität des zu messenden Kondensators abhängt. Die Impulslänge wird dann über den Arduino gemessen und über die Formel T = R*C kann dann bei bekanntem T und R die Kapazität C gemessen werden. Zum… Read More »

Pulsweitenmodulation (PWM)

Bei der Pulsweitenmodulation (engl. Pulse Width Modulation, abgekürzt PWM) wird das Verhältnis zwischen der Einschaltzeit und Periodendauer eines Rechtecksignals bei fester Grundfrequenz variiert. Dazu nimmt man ein Rechtecksignal mit einer festen Frequenz und variiert die Breite der jeweiligen Pulse. Den Abstand zweier aufeinander folgender Pulse bezeichnet man als Periodendauer, die Breite des aktiven Pulses (T1) als… Read More »

OLED Display

Das 0,96 Zoll OLED Display I²C ist über die I2C-Schnittstelle anzusteuern und verfügt über eine Auflösung von 128 mal 64 monochromen Bildpunkten, die selbst leuchten und somit keine Hintergrundbeleuchtung benötigen. Zur Ansteuerung mit dem Arduino müssen 2 Bibliotheken eingebunden werden. Das wäre einserseits die Adafruit_SSD1306-Bibliothek zur Ansteuerung des Displaytreibers und dann noch die Adafruit_GFX-Bibliothek für… Read More »

NeoPixel Ring mit 16 RGB LEDs

Die Ansteuerung des sehr hellen Neo Pixel Rings mit 44m Durchmesser erfolgt mit nur einem Pin sowie einer externen +5V Spannungsversorgung. Jede einzelne LED ist durch den Microcontroller ansteuerbar, da der Treiberchip bereits in der LED ist.  Es sind keine externen Widerstände nötig. Der Ring kommt ohne Anschlüsse, diese sind auf der Platine angezeigt und müssen… Read More »

Schrittmotor Steuerung

Ein Schrittmotor (oft auch Stepper genannt) ist ein Synchronmotor, bei dem der Rotor bei geschickter Wahl der angesteuerten Stator-Spulen gezielt um einen Winkel gedreht werden kann. Auf diese Weise kann man in mehreren Schritten jeden Drehwinkel, als Vielfaches des minimalen Drehwinkels anfahren. Schrittmotoren eignen sich als hochpräzise Stellmotoren. Sie können eine vorherbestimmte Anzahl von Schritten… Read More »

DC-Motorsteuerungen

Motorsteuerung bedeutet im einfachsten Fall, den Motor in Bewegung zu versetzen. Dies geschieht in dem die Wicklungen des Motors mit Spannung versorgt werden. Dabei gibt es nur zwei Zustände: der Motor ist mit Spannung versorgt und dreht sich oder im anderen Fall eben nicht. Die dazu erforderlichen Schalter können zwar mechanische Schalter sein, heute sind… Read More »

Der Logikanalysator von Saleae

Ein Logikanalysator (engl. Logic Analyzer) ist ein elektronisches Messgerät, das den Zeitverlauf von digitalen Signalen aufzeichnen und bildlich darstellen kann. Es dient dem Test und der Fehlersuche in digitalen elektronischen Schaltungen, beispielsweise bei der Entwicklung von Computern und elektronischen Steuergeräten. Der hier vorgestellte Logikanalysator stammt von einer amerikanischen StartUp Firma mit dem Namen Saleae, mit… Read More »

EEPROM als externer Speicher

Ein EEPROM (electrically erasable programmable read-only memory) ist ein nichtflüchtiger, elektronischer Speicherbaustein. Er wird verwendet zur Speicherung kleinerer Datenmengen in elektrischen Geräten, bei denen die Information auch ohne anliegende Versorgungsspannung erhalten bleiben muss. Ein EEPROM kann im Durchschnitt 1 Million Schreib/Lesezyklen durchführen wobei die Speicherbarkeit der Daten vom Hersteller für mehrere Jahrzehnte garantiert wird. Der Anschluss… Read More »

Arduino als Zähler

Ereignis-Zähler Möchte man verschiedene Ereignisse die als Signal an einem Eingang des Arduino vorliegen zählen, gibt es die einfache Möglichkeit über das sogenannte Polling-Verfahren die Werte einzulesen und zu verarbeiten. Beim Polling wird der Zustand des digitalen Eingangs durch eine Schleife in regelmäßigen Abständen abgefragt wird:

Der Nachteil bei dieser Methode ist, dass die Abfrageintervalle abhängig… Read More »

Serielle Schnittstelle

Wenn der Arduino Daten am seriellen Port empfängt, wird immer ein Interrupt ausgelöst. Interrupts sind Ereignisse, auf die der Microcontroller sofort reagiert. Er unterbricht seine aktuellen Aktionen und führt eine für diesen Interrupt definierte Routine aus. Beim Arduino ist eine Interruptroutine für den seriellen Port vordefiniert (serialEvent()) und diese tut im normalen Betrieb nichts. Um… Read More »

14 Segment Display

Bei einer 14 Segment-Anzeige hat man den gleichen Aufbau wie bei einer 7-Segment-Anzeige nur mit dem Unterschied, dass man 7 zusätzliche Licht-Segmente ansteuern kann. Damit ergeben sich natürlich mehr Darstellungsmöglichkeiten. Insbesondere, wenn man mehrere solcher Displays neben einander anbringt, wie in meinem Versuchsaufbau. Wie 8 solcher Display-Module angesprochen und angesteuert werden, soll nachfolgend erklärt werden. Um… Read More »

A4988 Schrittmotor Treiber

Das Modul eignet sich zum besonders einfachen Ansteuern von Schrittmotoren (bis 35V/2A). Es genügen dabei nur 2 Leitungen um einen Schrittmotor anzusteuern. Neben den üblichen Voll- und Halbschritt, beherrscht dieses Modul auch Mikroschritte (1/4 Schritte, 1/8 Schritte und 1/16 Schritte). Ein Standardschrittmotor mit 200 Schritten pro Umdrehung, kann dadurch also eine Genauigkeit von 3200 Schritten… Read More »

Interrupt Programmierung

Was ist ein Interrupt ? Durch die Verwendung eines Interrupts wird der gerade laufende Code buchstäblich unterbrochen, egal ob er gerade eine Schleife abarbeitet, Eingaben über den Seriellen Port verarbeitet oder komplizierte Berechnungen durchführt. Nach der Unterbrechung wird eine spezielle Interrupt-Routine aufgerufen und der dort defineirte Code ausgeführt. Sobald dieser abgearbeitet ist, wird der unterbrochene Programmablauf… Read More »

Multiple Sensor Chip mit 10 DOF von Adafruit

******* Beitrag ist noch in Bearbeitung *******   Bei diesem Sensor handelt es sich um einen sogenannten 10 DOF Sensor. Das ist eine Kombination aus verschiedenen Sensorzellen, die es erlauben 11 verschiedene Bewegungsarten oder Bewegungsrichtungen zu erfassen. Auf diesem Board wurden ein 3-Achsen Beschleunigung-Sensor, ein 3-Achsen Magnetometer, ein 3-Achsen Gyroskop und ein barometrischer Druck- und… Read More »

Absolute Orientation Sensor Adafruit BNO055

Der Bosch Sensortec BMF055 9-Achsen-Bewegungssensor ist eine Erweiterung der Familie der Anwendungsspezifischen Sensorknoten (ASSN), die einen benutzerdefiniert programmierbaren 9-Achsen-Bewegungssensor einführt, der Sensoren und einen Mikrocontroller in einem einzigen Gehäuse zusammenfasst. Der BMF055 ist ein System-in-Package (SiP), das Folgendes umfasst: triaxialer 14-Bit-Beschleunigungsmesser triaxiales 16-Bit-Gyroskop mit einem Bereich von ±2000 Grad pro Sekunde triaxialer geomagnetischer Sensor 32-Bit Cortex… Read More »

Magnetsensor

Der HMC5883L ist ein Sensor mit dem die magnetische Flußdichte von Magnetfeldern in 3 Achsen gemessen werden kann. Dadurch kann man ihn – unter anderem – zur Richtungsbestimmung auf der Erde, also als Kompass, verwenden. Die Feldlinien des Erdmagnetfeldes verlaufen nicht wie vielfach angenommen vom antarktischen zum arktischen Magnetpol. Sie entspringen vielmehr tief im Erdinneren… Read More »

Arduino Einführung

Die Arduino Plattform Die Programmierung von Microcontrollern und die Ansteuerung der verschiedenen Aktoren war selbst für ausgebildete Informatiker eine Herausforderung, so dass diese Aufgabe meist ausgewiesenen Experten mit einem Hang zur Hardware-nahen Programmierung vorbehalten blieb. Ohne wirklich komfortable Enticklungsumgebungen und nur mit intensivem Studium der meist sehr spezifischen Datenblätter war die Entwicklung von eingetteten System… Read More »

BMP 180 Pressure Sensor

Bei dem BMP180 Sensor von Bosch handelt es sich um einen MEMS-Sensor, it dessen Hilfe der aktuellen Luftdruck und die Temperatur mit Hilfe eines Microcontrollers über das I2C Protokoll gemessen werden können. Aus diesen beiden Werten lässt sich dann über die nebenstehenden Formel (aus dem Datenblatt entnommen) auch die aktuelle Höhe über NN berechnen. Der… Read More »

Arduino Port-Manipulation

Es kann bei manchen Anwendungen vorkommen, dass die Arduino-Input/Output-Funktionen, wie analogRead() oder digitalWrite() zu langsam sind, und den Programmfluss stören. In solchen Fällen kann man auf die Hardware-Ports des ATmega 328 direkt zugreifen. Da diese Form der Programmierung die Manipulation einzelner Bits erfordert, ist dazu die Kenntnis der elementaren Bit-Manipulations-Operationen notwendig. Der Vorteil dieser Mühe liegt… Read More »