Archiv der Kategorie: Arduino

Eine einfache FFT – Fast Fourier Transformation – mit dem Arduino Uno

Ein Rechtecksignal kann aus verschiedenen Sinussignalen erstellt werden indem man die einzelnen Sinusschwingungen addiert. Um ein Rechtecksignal zu erhalten nimmt man die Grundfrequenz f mit der Amplitude 1 und addiert die dreifache Frequenz 3*f mit der Amplitude 1/3 und 5*f mit 1/5 Amplitude usw. Das ergibt dann eine Rechteckschwingung.

 f(t) = sin(\omega t) + 1/3 sin(3 \omega t) + 1/5 sin(5 \omega t) + 1/7 sin(7 \omega t) ...

Diese Fourierreihe beschreibt ganz allgemein die Frequenzbestandteile einer Schwingung. Siehe Wikipedia.

Hat man bereits eine Schwingung vorliegen und möchte sie zerlegen in die einzelnen Frequenzen kann man ein Fourierzerlegung machen, auch Fourier Transformation genannt. Für Mikrokontroller und andere Programme wurde eine schnelle Frequenzzerlegung geschrieben, die FFT oder Fast Fourier Transformation um diese Zerlegung fast im Echtzeit machen zu können. Weiterlesen

Die Auflösung des ADC vom Arduino Uno erhöhen auf 16 Bit mit Oversampling

Der Arduino Uno hat Analog Digital Wandler mit 10-Bit Auflösung eingebaut. Damit kann z. B. die Versorgungsspannung über die USB Schnittstelle ermittelt werden, wie in diesem Artikel beschrieben.

Bei 5V VCC und 10 Bit Auflösung sind das 1023 Messwerte oder ca. 5mV Auflösung eines Bits. Wenn das nicht ausreichend ist, kann die Genauigkeit erhöht werden durch den Trick des Oversampling. Dann sind 12 oder sogar 16 Bit Auflösung mit diesem einfachen AD Wandler möglich. Weiterlesen

Die NMEA 0183 GSV Datensätze vom GPS zerlegen

In den NMEA GSV Datensätzen werden die empfangenen Satelliten Nummern, die Richtung, die Höhe über dem Horizont und die Signalstärke ausgegeben. Hiermit lässt sich die für den Satellitenstatus so typische Draufsicht und die Signalstärkebalken anzeigen.

In jeder Zeile werden bis zu 4 Satellitendaten ausgegeben und für weitere Satelliten werden zusätzliche Zeilen angefügt. Bei einem 12-Kanal GPS Empfänger können also bis zu 3 Zeilen ausgegeben werden wenn 12 Satelliten im Empfangsbereich sind. Weiterlesen

Den NMEA0183 RMC Datensatz zerlegen

Hier nun das Programm zum Zerlegen des NMEA0183 RMC Datensatzes mit dem Arduino Uno.

Nach dem GGA Datensatz aus dem letzten Beitrag wird hier nun der RMC Datensatz ausgelesen. Weiterlesen

Den NMEA 0183 Datensatz GGA zerlegen in die einzelnen Daten

Der GGA GPS-Datensatz soll in die Bestandteile zerlegt werden. Einzelne Funktionen geben die Werte zurück.

Der GGA Datensatz sieht so aus:
$GPGGA,172643.004,5415.6232,N,01004.9739,E,0,00,,,M,,M,,*43
Er enthält mindestens die Uhrzeit, die Breite und Länge, siehe nmea.de .
Mehr Inhalt ist möglich, aber häufig nicht enthalten.

Zuerst werden die Daten eingelesen. Ich verwende hier eine GPS Antenne und einen selbstgebauten NMEA0183 > UART Wandler mit dem Arduino Uno zusammen. Weiterlesen

Teil 2: Kapazitäten von 10nF bis 2000uF einfach messen mit dem Arduino

Auf der Grundlage des vorherigen Artikels habe ich das Programm etwas verändert. Jetzt sind Messungen von ca. 10nF bis hin zu gut 2000uF möglich.

1. Als erstes werden jetzt Mikrosekunden (10^-6) gemessen und nicht mehr Millisekunden (10^-3). Dadurch sind auch schnellere Ladezeiten erfaßbar und nF Kondensatoren können vermessen werden.

2. Der Ladewiderstand wurde gemessen und eingegeben, was zu einer höheren Genauigkeit führt

3. Die Zeit der Nullmessung ( ohne Kondensatoranschluß ) wurde abgezogen. Auch hier eine genauere Messung der Zeit. Weiterlesen

Teil 1: Kapazitäten von 1uF – 2000uF einfach messen mit dem Arduino

Auf Grund dieses Beispiels von der Arduino Seite habe ich mir das Kapazität Messverfahren einmal genauer angesehen. Die Schaltung ist sehr simpel aufgebaut mit 2 Widerständen, einem Arduino Nano und 6 Drahtbrücken

Zuerst wird der Kondensator aufgeladen über dem 10kOhm Widerstand auf 63% von der Arduino Versorgungsspannung (5V). Die Zeit wird ermittelt und die Kapazität daraus errechnet.

Kapazität = Zeit (63%) / Widerstand Weiterlesen

Eine LED mit einem kapazitiven Schalter dimmen oder umschalten

Ein kapazitiver offener Draht soll auf dem Arduino Uno eine LED umschalten oder dimmen.

Die verwendete Hardware:
– Arduino Uno
– 1nF Kondensator
– Draht
– 200 Ohm Widerstand
– LED

Pin 8 > 1nF Kondensator > Draht zum anfassen
Pin3 (PWM) > LED > Widerstand 200 Ohm > GND Weiterlesen

Kapazitiver LED Umschalter mit einem einfachen, offenen Draht

Ein kapazitiver offener Draht soll auf einem Arduino Uno Pin die LED 13 umschalten.

Die verwendete Hardware:
– Arduino Uno
– 1nF Kondensator
– Draht

Pin 8 > 1nF Kondensator > Draht

Basierend auf dem vorherigen Artikel wird die LED 13 nun umgeschaltet. Weiterlesen

Simpler kapazitiver Schalter auf einem beliebigen Arduino Pin

Ein kapazitiver offener Draht soll auf einem Arduino Uno Pin die LED 13 ein- und ausschalten.

Die verwendete Hardware:
– Arduino Uno
– 1nF Kondensator
– Draht

Hier wird der Pin8 verwendet, es ist aber auch jeder andere digitale ( und analoge ) PIN möglich. In Reihe wird ein 1nF Kondensator gelegt, das sorgt für eine Gleichspannungsentkopplung und schützt den Arduino Pin vor Überspannungen. Weiterlesen