Archiv der Kategorie: Berechnung

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 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 = \frac{ 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

Ein SeaTalk zu Arduino Interface mit LT-Spice simuliert

Thomas Knauf stellt auf seiner Seite viele Informationen zum SeaTalk Protokoll von Autohelm / Raymarine zur Verfügung, unter anderem eine RX / TX Eingangsstufe vom PC (RS232) zum SeaTalk Bus.

Diese Schaltung habe ich mit LT-Spice simuliert und etwas verändert.
1. Es wurden die Standard Transistoren BC547B (NPN) und BC557B (PNP) verwendet.
2. Die Spannung am Arduino Pin sollte 5V nicht übersteigen, deshalb ist am Ausgang zum RX am Arduino ein Spannungsteiler mit 4,7k und 2,2k Ohm eingefügt. Weiterlesen

Den Arduino Quarz Takt genauer bestimmen mit einer RTC oder mit GPS

Für einen Frequenzzähler mit dem Arduino ist es wichtig den Quarz Takt genau zu bestimmen. Beim Arduino Uno ist er mit 16 MHz angegeben. Der eingebaute Quarz hat einen typischen Fehler von \pm 30ppm (parts per million) also \pm30*10^{-6}.

Das entspricht 30 Sekunden auf 1.000.000 Sekunden beim Arduino.

Für den Frequenzzähler bedeutet das einen Fehler für 100.000 Hz von \pm 3Hz. Da dieser Fehler auch bei 99.999 Hz gilt, können wir von dieser Genauigkeit ausgehen:
> Die ersten 4 Stellen der Frequenz werden korrekt dargestellt. Weiterlesen

Den LTC-1799 mit LT-Spice simulieren Teil 2

Nun soll die Schaltung berechnet und das Signal ausgegeben werden. Dazu bietet Spice eine Zeit Simulation an, die mit tran abgekürzt wird. Hier wird mindestens die Zeit für die Simulation eingegeben.

Als erstes ändern wir den Widerstand mit der rechten Maustaste auf 10k Ohm.
Die Frequenz wird nach folgender Formel berechnet
f (Hz) = 10.000.000 Hz * 10.000 Ohm / N / Rset

Mit N=1 für GND und RSet = 10.000 Ohm ergibt sich eine Frequenz von 10 MHz.

Dann wählen wir die Simulation aus > Läufer Butten oben im Menu, dann den Reiter Transient und tragen unter Stop Time neu 10u (10 Microsekunden) ein. Unten in der Ausgabe steht dann .tran 10u. Weiterlesen

Den LTC-1799 Rechteckgenerator mit LT-Spice simulieren. Schritt für Schritt Erklärung. Teil 1

Der Rechteckgenerator LTC-1799 aus dem vorherigen Beitrag soll mit LT-Spice simuliert werden. Dabei wird die Schaltung Schritt für Schritt aufgebaut und erklärt.

Die Software LT-Spice wird kostenlos von Linear Technology angeboten, hier ist der Download.

Mit File > New Schematic bekommen wir ein neues und leeres Arbeitsblatt für die Schaltung. Weiterlesen

Ein Rechtecksignal mit hoher Frequenz direkt aus dem Arduino Uno ausgeben

Mit der schon vorher besprochenen Funktion lassen sich hohe Rechteck Frequenzen erreichen.

while(k==10) {
  PORTB=B00111100; // 15
  asm("nop\n nop\n");
  PORTB=B00000000; // 0
}

Weiterlesen