Schlagwort-Archive: Uno

Eine Grafik auf dem 5110 LCD Display ausgeben

Auf dem Nokia 5110 LCD Display soll eine Grafik ausgegeben werden. Später soll ein Frequenzspektrum dargestellt werden, vorerst werde ich aber Zufallszahlen verwenden und darstellen, was dann wie ein Rausch Spektrum aussieht.

Eine schöne Grafik Library für den Arduino hat Henning Karlsen hier bereit gestellt.

Die Anschlüsse:
Ich habe hier eine 5V Daten kompatible Version. Normalerweise wird aber ein Daten-Spannungsumsetzer von 5V > 3,3V in die Datenleitungen geschaltet, da das Display nur für 3,3V Datenpegel ausgelegt ist.
Pin 8 > Clk
Pin 9 > Din
Pin 10 > DC Weiterlesen

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

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

Eine Taste per Interrupt einlesen und entprellen

Ein Taster an speziellen Anschlüssen kann per Interrupt das laufende Programm anhalten und sofort ein Unterprogramm per Interrupt ausführen.

Die Arduino Uno und Arduino Nano haben 2 solche Interrupt Pins
Pin 2 für Interrupt 0
Pin 3 für Interrupt 1
Für andere Arduino Versionen gibt es hier die Beschreibung.

Wenn z.B. der Pin2 mit digitalWrite(2, HIGH) über den internen Pull up Widerstand auf 5V gelegt wird und als INPUT definiert wird, ist nur noch ein Schalter oder Taster gegen Masse notwendig. Weiterlesen

Vergleich der Stromaufnahme von Arduino Schaltungen, vom Uno bis zum IC im Schlafmodus auf dem Steckbrett

Der Stromverbrauch der ATMEGA329P-PU Schaltungen wird hier verglichen

1. Arduino Uno im Normalbetrieb, LED13 ist aus
54 mA

2. Arduino Uno im Schlafmodus: SLEEP_MODE_PWR_DOWN
39 mA Weiterlesen

ATMEGA328P-PU Bootloader laden vom Arduino Uno als ISP

Der Arduino Bootloader soll in einen neuen ATMEGA 328P-PU IC auf dem Steckbrett geladen werden.

Dazu wird der Arduino Uno als ISP (In-System-Programmer) verwendet. Dazu sind 4 Schritte notwendig.

1. Den UNO zum ISP Programmer umfunktionieren

Als erstes wird der UNO mit der Programmer Software geladen.
Dazu darf das Steckbrett noch nicht angeschlossen sein. Weiterlesen

Temperatursensor DS18B20 mit dem Arduino Uno und LCD Display

Ich habe den Maxim Temperatur Sensor DS18B20 bekommen. Er ist bereits dicht vergossen und wird mit einem 3-poligen Anschlusskabel geliefert (rot schwarz gelb)

Er hat einen 1-wire Bus, das heisst es müssen nur die Datenleitung und GND zum Anschluss verwendet werden. Mit einem 4,7 kOhm Widerstand von der Datenleitung gegen 5V wird am Arduino die „parasitäre“ Stromversorgung hergestellt. Der Sensor bekommt so die Stromversorgung mit über die Datenleitung.
Bei Leitungslängen über 6m sollte die 5V Versorgung zusätzlich angeschlossen werden, das ist hier aber nicht notwendig. Weiterlesen

Unterschiedliche Signalformen mit dem R2R DA-Wandler ausgeben. Dreieck, Impuls, Sägezahn direkt mit dem Arduino Uno.

Hier werden Sägezahn Kurven mit steigender und mit fallender Flanke erzeugt, eine Dreieckskurve und eine Impulsausgabe mit ggf. einer langen Auszeit. Es werden der Arduino Uno und der 4-bit DA-Wandler verwendet.

Wie im vorherigen Artikel beschrieben wird das byte Feld mit Werten beschrieben.

Wenn nun eine Sägezahnspannung mit kontinuierlich steigender Flanke ausgegeben werden soll, kann folgendes Feld mit 16 Stützwerten verwendet werden.

Weiterlesen