Archiv der Kategorie: ICs

#9 Frequenzgenerator mit dem AD9833 DDS und Arduino – Sinus, Dreieck und Rechteck von 1Hz bis einige MHz

Hier stelle ich einen programmierbaren Frequenzgenerator mit dem DDS Baustein AD9833 vor.
Er wird vom Arduino angesteuert und ist über ein Terminal Programm vom PC aus einstellbar für Frequenz und Kurvenform.
Frequenzen: 1Hz bis einige MHz in 1Hz Schritten, quarzgenau
Kurvenformen: Sinus, Dreieck und Rechteck

Von Analog Devices das Datenblatt AD9833 und die Application Note AN-1070.
Dort findet Ihr weitere Infos zum IC und zu der Ansteuerung. Weiterlesen

Tutorial #8 Ein MOSFET Schalter am Mikrocontroller / Arduino betreiben.

Wie wird ein MOSFET Leistungsschalter an einen Mikrocontroller angeschlossen?
Welche Widerstände sind notwendig, wie hoch ist die Erwärmung / Leistung und wie schnell kann ich schalten?

Die verwendeten Gleichungen:
Vorwiderstand LED : R = (Vcc-Vled) / I led
Vorwiderstand Gate : R = Vcc / Imax
Verlustleistung : P = I^2 * Rdson
Maximalstrom : I = Wurzel (P / Rdson)
Gate Ladezeit: t = Q / I
Maximale Frequenz : f = 1 / 2*t

von Matthias Busse

Arduino Tutorial #7 – Einen Boost Konverter / DC – DC Wandler aufbauen und steuern.

Ein Gleichspannungswandler / Schaltregler wird aufgebaut und mit dem PWM Signal eines Arduino angesteuert. Die Ausgangsspannung ist einstellbar mit einem Poti. Eine Ausgabe für den Seriellen Plotter von der Arduino Software ist vorgesehen. Die rote LED 13 zeigt einen Fehler an, wenn die Ausgangsspannung nicht stimmt.
5,6V Eingangsspannung  werden zu 5 – 14V Ausgangsspannung.

Weiterlesen

Der I2C Bus Scanner. Die Adressen von Geräten am I2C Bus ausgeben.

Der I2C Bus ist ein 2-Draht Bus mit den Leitungen SCL (clock) und SDA (data). Er wird auf Platinen zwischen zwei Geräten / ICs verwendet. Die Hersteller der ICs geben die I2C Bus Adresse vor, manchmal können die unteren Bits angepasst werden, da theoretisch nur 128 Adressen zu Verfügung stehen und zwei ICs auf der selben Adresse liegen könnten.
Der Bus hat einen Master (hier der Arduino) und bis zu 112 Slaves (verschiedene ICs mit unterschiedlichen Adressen).

Hier die I2C Beschreibung bei Wikipedia.
Beim Arduino wird die Library Wire.h für die I2C Befehle eingebunden.
Der TWI Bus ist identisch mit dem standard I2C Bus.

Ein einfaches Arduino Programm scannt alle Adressen im I2C Bus und gibt die verwendeten Adressen aus.

// I²C Scanner aus dem Arduino.cc forum
// Netzfund, unbekannter Autor.
// Sucht I2C Geräte an den Adressen 0...127 und gibt bei gefundenen Geräten die Adresse aus.
//
// Matthias Busse 22.9.2018 Version 1.0

#include <Wire.h>

void setup() {
  Wire.begin();
  Serial.begin(38400);
  while (!Serial);
  Serial.println("\nI2C Scanner");
}

void loop() {
  byte error, address;
  int nDevices;
     
  Serial.println("scannen...");
  nDevices = 0;
  for(address = 1; address < 127; address++ ) {
    // Der i2c Scanner nimmt den Rückgabewert von Write.endTransmisstion um zu schauen ob ein Gerät auf dieser Adresse antwortet.
    Wire.beginTransmission(address);
    error = Wire.endTransmission();
    if (error == 0) {
      Serial.print("I2C Geraet gefunden an Adresse 0x");
      if (address<16) Serial.print("0");
      Serial.println(address,HEX);
      nDevices++;
    }
    else if (error==4) {
      Serial.print("Unbekannter Fehler an Addresse 0x");
      if (address<16) Serial.print("0");
      Serial.println(address,HEX);
    }    
  }
  if (nDevices == 0) Serial.println("Kein I2C Geraet gefunden\n");
  else Serial.println("fertig\n");
  delay(5000);           // 5 Sekunden warten bis zum nächsten durchlauf
}

Und hier die Ausgabe

I2C Scanner
scannen...
I2C Geraet gefunden an Adresse 0x68
fertig

von Matthias Busse

HF Verstärker 100MHz bis 2GHz mit dem ERA 1SM+

Ich habe einen Verstärker aufgebaut mit einem ERA 1SM+ IC.

Am Eingang und Ausgang liegen jeweils 10nF Kondensatoren um die Gleichspannung auszukoppeln.
Der Era 1SM+ ist über eine 0.1mm breite Leitung, 120 Ohm und eine eigene gewickelte Induktivität an 8V angeschlossen. Die Gleichspannung wird zusätzlich noch mit 10nF gegen Masse abgeblockt.

Hier der Schaltungsaufbau

Auf der Rückseite ist ein 7808 Spannungsregler aufgelötet. Die Gleichspannung wird über einen Durchführungskondensator in das Gehäuse gebracht. Außen können 9-13V angelegt werden. Die Schaltung nimmt 43mA. Weiterlesen

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

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