Kategorie-Archiv: Berechnung

Den Mittelwert fortlaufend bilden mit einer Funktion

Es soll ein fortlaufender Mittelwert aus n Integer Zahlen gebildet werden. Dazu wird die Funktion float mittelWert(int neuerWert) verwendet.

Am Anfang des Programms wird die Anzahl der Mittlungen festgelegt und die globalen Variablen werden erstellt.

#define anzahlMittelWerte 10
int werte[anzahlMittelWerte], zaehlerMittelWerte=0;

Im Hauptprogramm werden fortlaufend Zufallszahlen zwischen 1 und 10 erzeugt. Diese werden hier gemittelt und ausgegeben.

Weiterlesen

Der Hamming Code für den Arduino

Bei einer digitalen Funkübertragung kann es zu Störungen kommen und einzelne Bits werden falsch empfangen, kippen sozusagen um. Aus einer 1 wird eine 0.

Richard Wesley Hamming hat sich dazu Gedanken gemacht und eine Codierung entwickelt, die es erlaubt zu überprüfen ob alle Bits richtig übertragen wurden. Einzelne Bits können sogar rekonstruiert werden.

Hier sollen 4 Daten-Bits übertragen werden. Dazu werden nach einem bestimmten Schema 3 Paritäts-Bits hinzugefügt, die Daten werden codiert. Es müssen nun 7 Bits übertragen werden. Wird ein Bit falsch empfangen, so lässt es sich später bei der Decodierung rekonstruieren.

Die 4 Daten-Bits werden mit 3 Paritäts-Bit nach diesem Schema ergänzt.
Die Datenbits: d4, d3, d2, d1 Weiterlesen

FFT Ausgabe Nokia 5110 LCD

Arduino FFT auf dem 5110 Display ausgeben

Aus den letzten beiden Artikeln Arduino FFT berechnen und 5110 Grafik ausgeben ist nun eine Arduino Uno FFT Berechnung mit Grafik Ausgabe geworden.

Arduino Uno FFT Ausgabe

Für die Grafik Ausgaben wurde die Library von Henning Karlsen installiert und verwendet.

Das Programm berechnet verschiedene Wellenformen
– Ein Rechtecksignal
– Ein Sinus Signal
– Zwei addierte Sinus Wellen
– Eine Frequenzmodulation
und gibt das Frequenzspektrum von 0 – 2520 Hz aus, in 40 Hz Schritten. 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

koaxkabel-300

Die Dämpfung auf Koaxkabeln bei verschiedenen Frequenzen berechnen.

Die Kabeldämpfung berechnen für 4 Standard Koaxleitungen

RG174, RG58, RG213 und Aircell 7

Hier die Frequenz und Länge der Leitung eingeben dann wird die Dämpfung berechnet.

Zum besseren Verständnis wird zusätzlich noch die Ausgangsleistung berechnet wenn 25W Leistung eingespeist werden.

  • Frequenz und Länge eingeben
  • Dämpfungen der Kabel in dB :
  • Bei 25W Eingangsleistung kommen am Ende raus :

 

Zur Berechnung dient die Näherungsformel wie auf der Seite von Ralf Schüler beschrieben.

dB = k1 + k2*f + k3*\sqrt{f}

 

Paus = Pein * 10 ^ \frac{db}{10}

 

von Matthias Busse

AIS Daten vom Cypho-150 Empfänger im Arduino live einlesen und die MMSI ausgeben

Hier werden die AIS Daten von meinem AMEC Cypho-150 AIS Empfänger eingelesen und die MMSI wird ausgegeben.

Die NMEA0183 Ausgangsleitungen vom Cypho-150 sind gelb + und grün – , wie im Handbuch angegeben.

Zur NMEA0183 > UART Pegel Wandlung nehme ich den MAX232 Chip.
Der NMEA0183 Eingang+ ist Pin 8 (R2IN) und der UART Ausgang ist Pin 9 (R2OUT). Dieser kommt an den Arduino Uno RX Eingang.
Der NMEA0183 Eingang- kommt auf den GND vom MAX232 und vom Arduino. Weiterlesen

Distanz und Peilung zwischen 2 Positionen berechnen

Die Entfernung und die Peilung sollen von Position 1 (Länge / Breite) zu Position 2 (Länge / Breite) berechnet werden. Dabei werden beide Positionen in Grad mit Kommastellen eingegeben. Die Software soll auf dem Arduino laufen.

Die Distanz wird in m und sm (Seemeilen) ausgegeben, die Peilung in Grad 0….359 Grad. Weiterlesen