Industrielle Fertigung
Industrielles Internet der Dinge | Industrielle Materialien | Gerätewartung und Reparatur | Industrielle Programmierung |
home  MfgRobots >> Industrielle Fertigung >  >> Manufacturing Technology >> Herstellungsprozess

JX Wave Generator – Arduino-kompatibler DDS-Oszillator mit OLED-Display

Komponenten und Zubehör

Arduino Nano R3 1 Alternativ kann vermutlich jedes Arduino-Modell verwendet werden
SH1106 I2C OLED Display 128x64 Pixel (4 Pin) 1
AD9833 DDS-Modul 1
Drehgeber mit Taster 1 Lötkolben erforderlich
Drehgeber-Modul 1 Besser für Steckbrett-Montage
5V Relais-Modul (optional) 1 Optional, falls keine AC/DC-Kopplungsumschaltung nötig ist
Reed-Relais 5V 500 Ohm 1 Ideal für Kleinsignale, direkt an Arduino-Pins anschließbar (10 mA)
Kondensator 10 µF 1
Kondensator 10 nF 1 Polyester-Kondensator
AC-DC 100-220V auf 5V Step-Down Netzteil-Modul 1 Optional, für Stromversorgung ohne USB

Benötigte Werkzeuge und Maschinen

Apps und Online-Dienste

Über dieses Projekt

Lange habe ich den Kauf eines Oszilloskops hinausgezögert. Nach der Anschaffung wurde klar: Für die Hobby-Elektronik fehlt noch ein preiswerter Signalgenerator – unverzichtbar zur Diagnose von Audio-Schaltungen und mehr. Die Kombination aus Elektronik und Programmierung macht ein Arduino-basiertes Eigenbau-Projekt zur idealen Lösung.

Funktionen

JX Wave Generator – Arduino-kompatibler DDS-Oszillator mit OLED-Display

Hinweis

ACHTUNG: Seien Sie extrem vorsichtig beim Umgang mit Netzspannung!
Lebensgefahr durch Stromschlag und/oder Verletzungen an Haut und Augen.
Passen Sie auf Ihr Leben auf – Sie haben nur eines!

Kurzanleitung

JX Wave Generator – Arduino-kompatibler DDS-Oszillator mit OLED-Display

Prototyp

JX Wave Generator – Arduino-kompatibler DDS-Oszillator mit OLED-Display
JX Wave Generator – Arduino-kompatibler DDS-Oszillator mit OLED-Display
JX Wave Generator – Arduino-kompatibler DDS-Oszillator mit OLED-Display
JX Wave Generator – Arduino-kompatibler DDS-Oszillator mit OLED-Display

Ich verwendete ein vormontiertes Relais-Modul mit 10A-Kontakten, da mir kein Mikro-Reed-Relais zur Verfügung stand. Dies wäre die beste Wahl, um Transistoren, Dioden und Widerstände zu vermeiden, wenn keine Leistungsrelais benötigt werden. Ein digitaler Arduino-Pin liefert maximal 40 mA – ein elektromechanisches Relais mit 120/150 Ohm Spule kann daher nicht direkt angeschlossen werden.

Quellcode

Das Projekt besteht aus drei Dateien:

Hauptprogramm (Auszug)

/* Copyright (c) 2020 Janux – MIT Lizenz */
#include "JXWG_Defs.h"
#include "JXWG_Graphics.h"

void setup() {
  // Encoder-Pin-Konfiguration
  pinMode(PinA, INPUT);
  pinMode(PinB, INPUT);
  pinMode(PinS, INPUT);
  digitalWrite(PinA, HIGH);
  digitalWrite(PinB, HIGH);
  digitalWrite(PinS, HIGH);
  
  pinMode(PinCoupling, OUTPUT);
  Encoder.setDebounceDelay(5);
  display.begin(SH1106_SWITCHCAPVCC, 0x3C);
  display.clearDisplay();
  Wire.begin();
  TWBR = 5; // I2C Frequenz 615 kHz
  
  attachInterrupt(digitalPinToInterrupt(PinS), encoderSwitch, FALLING);
  DDS_Init();
  setConfig(); // Konfiguration laden und Startwerte setzen
}

void loop() {
  JX_WaveGenerator_MAIN();
}

// Hauptfunktion mit Zustandsmaschine für verschiedene Betriebsmodi:
// LOGARITHMIC, SINGLEDIGIT, SWEEP, OPTIONS, OPTMODE, OPTWAVE, OPTCOUP, OPTSWEEP, SWEEPEDIT, DIGITCHANGE
void JX_WaveGenerator_MAIN() {
  // ... Zustandsmaschine für Encoder-Drehung, Tastendrücke, Langdruck
  // Frequenzberechnung, Display-Aktualisierung, DDS-Ansteuerung
  // Sweep-Funktionen, Konfigurationsspeicherung im EEPROM
  // Bildschirmschoner nach 10 Min Inaktivität
}

Wichtige Definitionen (JXWG_Defs.h)

Grafik-Daten (JXWG_Graphics.h)

Enthält alle Icons als Bitmaps im PROGMEM (ca. 1.148 Bytes): Betriebsmodi (Logarithmisch, Einzeller, Sweep), Wellenformen (Rechteck, Sinus, Dreieck), Kopplung (AC, DC, OFF), Sweep-Parameter (Min, Max, Step, Start, Pause), kleine Status-Icons und Symbole (Pfeile, Dreh-Icon).

Schaltplan

JX Wave Generator – Arduino-kompatibler DDS-Oszillator mit OLED-Display
Schaltplan – Display-Typ aktualisiert
JX Wave Generator – Arduino-kompatibler DDS-Oszillator mit OLED-Display
Steckbrett-Aufbau

Herstellungsprozess

  1. Wassertropfen-Hochgeschwindigkeitsfotografie mit Arduino Nano – DIY Setup
  2. Bluetooth-gesteuerter Arduino-Spybot bauen – Überwachungsroboter mit IP-Kamera
  3. FlickMote: Gestensteuerung per Ultraschall & IR für Smart Home (Arduino 101)
  4. DIY Arduino TV-B-Gone: Universelle TV-Aus-Fernbedienung
  5. Einen eigenen LED-Master-Clock mit Alarm bauen – aus 12 Metern Entfernung ablesbar
  6. Find Me: Smarter Gegenstands-Finder mit Arduino und Bluetooth
  7. Optimierte Stromversorgungslösungen für Arduino-Projekte
  8. DIY VR-Skateboard mit Arduino, Google Cardboard und Bluetooth bauen
  9. Arduino Mega mit NEO‑6M GPS-Modul verbinden: Schritt-für-Schritt-Anleitung
  10. Arduino Tic Tac Toe mit MAX7219 LED-Matrix und Karton-Gehäuse