Archiv der Kategorie: Arduino

AD9833 Frequenzgenerator mit dem Arduino programmiert und vermessen

Ich habe einen AD9833 Frequenzgenerator mit dem Arduino programmiert. Er kann Frequenzen von 0 bis zu 12,5MHz und die Kurvenformen Sinus, Dreieck und Rechteck ausgeben.

Hier das AD9833 Datenblatt und für die praktische Anwendung die Application Note AN-1070 von Analog Devices.

Er wurde mit dem Arduino Uno programmiert.
Die Anschlüsse sind:
Uno – AD9833
5V  > VCC
GND > GND
D6 > FNC
D7 > DAT
D8 > CLK

Und hier das Arduino Programm: Weiterlesen

Den ADS1115 16-Bit AD Wandler am Arduino mit Autorange betreiben

Ich habe den ADS1115 16-bit AD Wandler mit dem Arduino Uno eingestellt und ausgelesen. Wenn der Messwert kleiner wird, passt sich der Eingangsverstärker an und wird hochgefahren. Dadurch werden die 6 Messbereiche +-6.144V bis hinunter zu +-0.256V optimal ausgenutzt.

Zusätzlich wird beim Einschalten einmalig die USB Versorgungsspannung gemessen. Die AD-Wandler Eingangsspannung darf die Versorgungsspannung (VDD oder VCC) nicht um mehr als 0,3V Übersteigen, ansonsten kann der AD Wandler zerstört werden. Im Alltagsbetrieb ist hier noch eine Schutzschaltung vorzusehen, auf die ich aber hier verzichtet habe.

Praktisch am ADS1115 ist dass er eine Referenzspannung bereits eingebaut hat. Weiterlesen

Den ADF4351 Frequenzgenerator 35MHz bis 4,4GHz vom Arduino Uno ansteuern

Mit dem AFD4351 von Analog Devices lassen sich Frequenzen von 35 MHz bis 4,4 GHz erzeugen. Er ist digital vom Arduino ansteuerbar. Die Frequenz und Ausgangsleistung kann eingestellt werden. Damit ist er prima als Synthesizer zur Frequenzerzeugung geeignet.

Der interne VCO erzeugt 2,2 – 4,4 GHz und ist PLL gesteuert stabil. Diese Frequenzen können direkt als Sinus ausgegeben werden. Die Frequenzen darunter werden über digitale Frequenzteiler erzeugt, das heißt es werden Rechteck Signale ausgegeben mit den entsprechenden Oberwellen nach der Fourier Reihe.

Vom PC ist das Programm über die serielle Ausgabe steuerbar. Mit der Eingabe von h im Seriellen Monitor des Arduino Programms oder einem anderen Terminal Programm gibt es die Hilfe für die akzeptierten Steuerbefehle. Weiterlesen

Arduino serial buffer size ändern

Wenn längere Datenzeilen über die Serielle Schnittstelle in den Arduino eingelesen werden sollen ist es nötig den seriellen Buffer zu erhöhen.

Die Voreinstellung in der Arduino Umgebung ist 64 Byte pro Buffer. NMEA Datensätze können aber länger sein, z.B 74 Byte. Oder es können zwei Zeilen ankommen bis wieder Zeit ist den Seriellen Buffer zu lesen. Dann kann die Variable SERIAL_RX_BUFFER_SIZE von 64 auf 128 oder 256 Byte erhöht werden.

Dazu geht man unter Datei > Voreinstellungen

Weiterlesen

Arduino Uno mit LCD shield in einem 3D gedruckten Gehäuse

Der Arduino Uno wird mit dem 1602 LCD Shield mit 6 Tasten in ein Gehäuse aus dem 3D Drucker gesetzt und mit einer einfachen Software betrieben.

Das häufig verwendete 16×2 LCD Standard Shield wird auf den Arduino Uno gesetzt und dann dieses Gehäuse von Thingiverse eingebaut. Nach dem 3D Druck müssen die 3 Doppeltasten von dem Gehäuse getrennt werden. Dazu am besten mit einem scharfen Messer die Kanten entlang fahren und die Tasten mit Gefühl heraus drücken. Nach dem entgraten der Tasten funktionieren Sie dann auch gut als Wipptasten. Mit 2 Schrauben lässt sich das Gehäuse verschliessen. Die Anschlüsse für USB und Spannungsversorgung sind gut geschützt seitlich zu erreichen. Weiterlesen

PE4302 Attentuator einstellen vom PC & Rotary Encoder, Ausgabe auf LCD Display

Das Dämpfungsglied PE4302 mit dem Arduino vom vorherigen Beitrag wurde erweitert um einen Rotary Encoder aus diesem Beitrag und ein LCD Display 16×2 wie in diesem Beitrag verwendet.

Der Rotary Encoder kann die Dämpfung in 0,5 dB Schritten verändern. Durch drücken der Taste wird der aktuelle Wert in das EEPROM abgelegt und beim nächsten Einschalten verwendet.

Die PC Steuerung wurde erweitert um die EEPROM Befehle:
e – speichern in EEPROM
r – auslesen aus EEPROM

Die Anschlüsse des 16×2 LCD Displays sind im Programm angegeben. Es wurde die LiquidCrystal.h Library verwendet. Die neue displayupdate Variable wird gesetzt wenn das LCD-Display geschrieben werden soll. Weiterlesen

Rotary Encoder KY-040 auslesen und den Wert im EEPROM ablegen

Der KY-040 Rotary Encoder (Drehimpulsgeber) mit Taste soll ausgelesen werden und beim Tastendruck soll der aktuelle Wert in das EEPROM des Arduinos abgelegt werden.

Er wird mit 5 Leitungen mit dem Arduino (Nano) verbunden:
Pin 6 zu CLK am KY-040
Pin 7 zu DT am KY-040
Pin 8 zu SW am KY-040
5V zu + am KY-040 Weiterlesen

Der PE4302 Attentuator / Dämpfungsglied ist vom PC steuerbar über einen Arduino

Das Dämpfungsglied mit dem PE4302 Chip soll seriell einstellbar sein und vom PC aus angesprochen werden können.

Dazu nehme ich die Schaltung vom vorherigen Beitrag und erweitere die Arduino Software für die serielle Steuerung.

Diese seriellen Kommandos können im Seriellen Monitor des Arduino Programms eingegeben werden und werden dann zum Arduino geschickt, der entsprechende Aktionen auslöst.

Die Kommandos sind:
s : set attentuator. Examples: s1.5 | s0 | s 22.5 | s 31 | s 0.0
g : get actual attentuator value
d : device class Weiterlesen

Einstellbares Dämpfungsglied bis 4GHz mit dem Arduino

Ich habe die Attentuator (Dämpfungsglied) Platine aus China bekommen mit dem PE4302 Chip drauf.

Diese Platine soll seriell vom Arduino angesteuert werden. Die Dämpfung ist dann einstellbar bis zu einer Frequenz von 4GHz. Das funktioniert wenn man das Datenwort seriell überträgt mit Data und Clock und dann mit LE das Wort scharf schaltet.

Doch zuerst ein Blick auf die gelieferte Platine. Da fallen gleich ein paar Fehler auf:

Am Ausgang in der Nähe des SMA Steckers ist eine Masse Durchkontaktierung direkt neben die Streifenleitung gesetzt worden. Da hat einer nicht aufgepasst.

Die Lötbrücke J5 ist gesetzt. Damit liegt LE direkt auf 3V und ist nicht ansprechbar. Diese Lötbrücke habe ich entfernt.

Die Lötbrücke J6 ist gesetzt. Damit ist P/S auf GND und somit auf den Parallelbetrieb eingestellt. Diese Lötbrücke habe ich entfernt. Für den Seriellen Betrieb habe ich die Lötbrücke J4 gesetzt und damit P/S auf 3V gelegt. Dann können die seriellen Daten akzeptiert werden.

Hier die Änderungen im Bild.

Dann wurde der Arduino Uno angeschlossen.
Die Spannungsversorgung des PE4302 Platine ist auf 5V ausgelegt und damit direkt am Arduino 5V Ausgang anschließbar.
Die Datenpegel des Uno Liegen bei 5V. Der PE4302 akzeptiert aber nur 3V. Hier wurden drei Spannungsteiler in den 3 Datenleitungen zwischengeschaltet jeweils mit 2,2 kOhm und 3,3k Ohm Widerständen um den PE4302 nicht zu beschädigen. Weiterlesen

Die Airmar PB100 Wetterstation mit dem NMEA Shield am PC auslesen

André Singer hat ein Programm für die Airmar Wetterstation PB100 und das NMEA Shield geschrieben.

Moin Moin !

Ich habe einen AIRMAR PB100 an das Shield angeschlossen.
Die PB100 sendet und empfängt Ihre NMEA0183 Daten nicht über eine normale RS232 sondern über RS485.
Zum Glück haben die gesendeten Daten einen vernünftigen Pegel, trotz 25m Zuleitung, sodass
hierfür die Serial3 zum empfangen der Daten genutzt werden konnte. Zum senden der Einstellungen und Befehle habe ich die RS485 auf Serial1 verwendet, da hierfür die 25m einfach zu lang war, oder aber die PB100 die Daten wirklich als RS485 erwartet.
Für die Serial3 ist es wichtig die Masse der 12V Versorgung der PB100 noch mit auf die Klemme zu legen.


Danach kann man die Daten über den Seriellen Monitor sich anschauen oder aber über die Software von AIRMAR visualisieren. Weiterlesen