Archiv der Kategorie: ICs

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

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

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

RS485 Repeater mit dem NMEA shield

André hat ein RS485 Repeater Programm für das NMEA shield geschrieben:

Moin moin,

habe die RS 485 getestet und funktioniert einwandfrei !
Anbei Bilder hierzu , der zusätzliche Wiederstand in der Klemme ist, weil der Bus auf beiden
Seiten mit 120 Ohm abgeschlossen sein muß … der FTDI zu USB hat zwar einen eingebauten den muß man aber über die zusätzlichen Kabel mit anschließen, da ich das für die Programmierung der Brandmeldeanlage aber nicht brauche, habe ich das so gelöst. Weiterlesen

Das NMEA Shield für den Arduino Mega 2560 ist fertig

Endlich ist es fertig, das NMEA Shield 1.7 für den Arduino Mega 2560 ist da.

Andre und ich haben ein eigenes Arduino Shield entwickelt mit den NMEA Schnittstellen:
2 x NMEA0183 / RS232
1 x N2k (NMEA2000) / CAN Bus
1 x RS485
1 x USB ( durch den Arduino Mega darunter ist natürlich auch ein USB Port vorhanden )

Ein N2k (NMEA2000) Abschlußwiderstand kann mit einem Jumper eingeschaltet werden, wenn das Shield am Ende eines NMEA2000 Backbones betrieben werden soll. Normalerweise ist dieser Jumper aber nicht gesteckt.

Ein Abschlusswiderstand für den RS485 Eingang kann auch per Jumper zugeschaltet werden. Weiterlesen

Kapazitäten messen. Ein Eagle Board von Andre.

Andre hat ein Board in Eagle gezeichnet für die Kapazitäts Messung aus diesem Beitrag.

Das Board ist für einen Arduino Nano geeignet.
Benötigt werden der Arduino Nano, zwei Widerstände mit 220 Ohm / 10 kOhm und 1-3 Steckleisten.

Hier die Schaltung

und das Layout der Platine. Weiterlesen

Ein Batteriemonitor für Strom und Spannung mit dem INA226 und dem Arduino Uno

Ich möchte einen Batteriemonitor bauen. Dazu muß die Batteriespannung gemessen werden mit 12V oder 24V und der entnommene oder geladene Strom. Für die Strommessung wird ein Shunt Widerstand verwendet. Für hohe Ströme von einigen Ampere bis hin zu mehreren Hundert Ampere werden Shunt Widerstände angeboten die einen Spannungsabfall von ca. 60mV bis 75 mV beim Maximalstrom haben.

Ich brauche also einen AD Wandler der -+75mV genauso gut messen kann wie 12V oder 24V. Das ist mit zwei langsamen aber hochauflösenden AD Wandlern machbar. Dazu kann man einen Spannungsteiler für 24V und eine OP Verstärker für +-75 mV vorschalten. Hierbei sind dann noch die Toleranzen der Widerstände und der OP Schaltung zu beachten. Weiterlesen

NMEA2000 Ankeralarm mit dem Arduino aufgebaut

Ein Ankeralarm hält die Ankerposition des Bootes fest und ermittelt dann kontinuierlich den Abstand zum Ankerplatz über die Nacht. Es wird ein Alarmradius eingegeben den das Boot nicht verlassen darf. Alle gehen schlafen und sollen geweckt werden, wenn der Anker nicht hält, weil z.B. der Wind stärker geworden ist, der Anker sich gelöst hat und der eingestellte maximale Ankerradius verlassen wird.

Dazu benötige ich einen GPS Empfänger (hier mein Lowrance HDS), ein NMEA2000 Netzwerk, den Arduino mit Schnittstellenplatine zur Berechnung der Positionen und dem Abstand, einen Poti um die Alarmdistanz (maximaler Ankerradius) einstellen zu können und einen Alarmtongeber (hier habe ich nur eine LED angeschlossen) der ggf. noch über ein Relais geschaltet werden kann. Weiterlesen