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

Variables Netzteil mit Arduino UNO selbst bauen – Schaltplan & Code Schritt für Schritt

Variables Netzteil mit Arduino UNO bauen

Ein Netzteil ist Grundvoraussetzung für Elektronik und elektrische Geräte/Schaltungen. Verschiedene Schaltungen benötigen unterschiedliche Spannungen – z. B. WiFi-Module, Relais, Motoren. Im Handel gibt es nicht für jede Schaltung ein passendes Netzteil, daher erzeugen wir eigene spezifische Versorgung aus verschiedenen Methoden. Einfache Lösung: Batterien.

Batterien werden oft für Elektronikprojekte genutzt – leicht verfügbar & einfach anzuschließen. Aber: schnelle Entladung, kein hoher Strom für starke Motoren, Erwärmung bei Dauerbetrieb, sinkende Lebensdauer. Lösung: Variables Netzteil aus Arduino UNO.

Mit diesem Projekt erhalten Sie variables Netzteil passend zu Ihrer Elektronik – ohne Lade-, Entlade-, Hitzesorgen. Viele Methoden existieren, dies ist der einfachste Weg mit günstigen, verfügbaren Bauteilen. Sehen wir die benötigten Komponenten.

Benötigte Komponenten

Software: Arduino Nightly oder Atmel Studio 6.2

Schaltplan Variables Netzteil

Vorab einige Hinweise zum Projekt.

Variables Netzteil mit Arduino UNO selbst bauen – Schaltplan & Code Schritt für Schritt

Arduino UNO

Arduino UNO ist Open-Source-Plattform für Elektronikprojekte. Einfach programmierbar, löschbar, neu programmierbar. Viele Boards: UNO, Nano, Mega, LilyPad etc. mit unterschiedlichen Spezifikationen. Hier: Arduino UNO zur Steuerung. ATmega328 Mikrocontroller-IC, 16 MHz Takt. Unterstützt USART, I2C, SPI.

Programmierung per Arduino IDE über Micro-USB. ATmega328 mit vorprogrammiertem Bootloader – Code-Upload ohne externe Hardware. C/C++ Programmierung, leicht erlernbar. Arduino IDE trennt Code in void setup() (einmalig, Initialisierung) und void loop() (kontinuierlich).

Board: 6 Analog-Inputs, 14 digitale GPIO-Pins (6 mit PWM), 10-bit-Auflösung an A0–A5. Stromversorgung per USB (5 V) oder DC-Buchse (7–20 V). Onboard-Spannungsregler für 3,3 V (Low-Power). Kommunikationspins: USART (0 Rx, 1 Tx), I2C (A4 SDA, A5 SCL), SPI (10 SS, 11 MOSI, 12 MISO, 13 SCK).

ADC am Arduino UNO

Arduino UNO hat 6 onboard ADC-Kanäle für analoge Signale 0–5 V. Sensoren liefern analoge Werte, Arduino liest digital – ADC wandelt Sensorwerte in analoge Werte für Mikrocontroller um. Anwendungen: Temperatur-, Distanz-, Geschwindigkeitsmessung, diverse analoge Sensoren.

10-bit ADC = Werte 0–1023. Auflösung = Anzahl diskreter Werte über Analogbereich. Max. ADC-Spannung 5 V → 1 Step ≈ 5/1024 ≈ 4,9 mV. 6 ADC-Kanäle (A0–A5) = simultan 6 analoge Geräte steuerbar. Arduino IDE: analogRead(pin) liest Analogwerte (Pin A0–A5).

PWM am Arduino UNO

Pulsweitenmodulation (PWM) erzeugt analoge Signale aus digitaler Quelle durch Variieren der Pulsbreite bei konstanter Frequenz. Zwei Hauptparameter: Duty Cycle & Frequenz.

Duty Cycle: Anteil der ON-Zeit an der Periodendauer.

Duty Cycle = 100 × T_on / (T_on + T_off)

Steuert Leistung an Last durch Ein-/Ausschalten – z. B. Lichtintensität oder Motorgeschwindigkeit. Nach analogWrite() erzeugt Pin stetige Rechteckwelle mit angegebenem Duty Cycle bis zum nächsten analogWrite() oder digitalRead()/digitalWrite() am selben Pin.

Frequenz:

Wie schnell Signalzyklus abgeschlossen wird (ON→OFF oder umgekehrt). Bei bestimmtem Duty Cycle verhält sich Output wie konstante Analogspannung. PWM-Frequenz an den meisten Pins ≈ 490 Hz. An UNO: Pins 5 & 6 ≈ 980 Hz. Leonardo Pins 3 & 11 ≈ 980 Hz.

Arduino UNO hat 6 8-Bit-PWM-Kanäle (Kennzeichen ~). Analoge Spannung per analogWrite():

analogWrite(pin, Duty Cycle)

Pin: Arduino-Pin für Analogausgang. Duty Cycle: 0 (min) bis 255 (max).

16×2 LCD-Display

Benutzerdefinierte Zeichen auf LCD sind nicht schwer. Erfordert Wissen über CG-RAM (Character Generator RAM) und LCD-Controller-Chip. Hier: Interfacing Arduino UNO mit 16×2 JHD162A LCD (HD44780-Treiber von Hitachi). 16 Pins, 4-Bit- (4 Datenleitungen) oder 8-Bit-Modus (8 Datenleitungen). Wir nutzen 4-Bit-Modus (weniger Verdrahtung).

Pin-Belegung 16×2 LCD:

Pin am LCD Beschreibung
VSSMasse
VCC+5 V Stromversorgung
VEEKontrasteinstellung
RSRegister Select: Daten- oder Befehlsmodus
RWRead/Write Modus
EEnable LCD
DB0–DB7Daten & Befehle
LED+Anode Backlight-LED
LED-Kathode Backlight-LED

LCD hat kein eigenes Licht – LED hinter Screen als Backlight. Interfacing mit Arduino UNO einfach: Arduino IDE bietet LiquidCrystal-Bibliothek mit vielen Funktionen für Initialisierung & Ausgabe. Hauptfunktionen in diesem Projekt:

LiquidCrystal lcd(rs, en, d4, d5, d6, d7);
lcd.begin()
lcd.clear()
lcd.print()

Funktionsweise Variables Netzteil mit Arduino

Verdrahtung gemäß Schaltplan. Ausgangsspannung an Output-Terminal messen & an einen ADC-Kanal geben. ADC liefert Digitalwert, der auf 16×2 LCD angezeigt wird. Taster für Inkrement/Dekrement der Spannung an Pin 4 & 5 des Arduino UNO. 10-bit-Auflösung = 0–1023, max. ADC 5 V → 1 Bit ≈ 4,9 mV. Inkrement/Dekrement ändert Digitalwert 0–1023.

ADC-Wert an Kanal A0 lesen: analogRead(A0). Pin 3 für PWM nutzen: analogWrite(3, Duty Cycle) erzeugt gewünschte Ausgangsspannung mit gegebenem Duty Cycle an Pin 3.

Durch Drücken der Tasten ändern wir Duty Cycle des PWM-Signals → änderung der Ausgangsspannung. Ein Taster inkrementiert, der andere dekrementiert. PWM-Wert Arduino UNO: 0–255 (0 V bis 5 V). Pin 3 an NPN-Transistor → variable Spannung am Emitter, wirkt als Schalter.

Transistorbasis erhält variables PWM-Duty-Ratio → variable Ausgangsspannung am Terminal. Da Spannung nicht linear, Kondensatoren zum Filtern von Rauschen an variabler Ausgangsspannung.

Code-Erklärung

Bibliotheken einbinden:

#include <LiquidCrystal.h>

Inbuilt LCD-Bibliothek mit Funktionen für einfache Zeichenanzeige.

LiquidCrystal lcd(8, 9, 10, 11, 12, 13);
int ref_volt = 125;
float flag = 0;

lcd nimmt Pin-Nummern für Datenpins, RS, RW, E. Referenzspannung 2,5 V → Duty Cycle 50 % → ref_volt = 125.

pinMode(3, OUTPUT);
pinMode(4, INPUT);
pinMode(5, INPUT);

Pin 3 = PWM-Output, Pin 4 & 5 = Input für Inkrement/Dekrement.

lcd.begin(16, 2);
delay(100);
lcd.setCursor(1, 0);
lcd.print("Variable Voltage");
lcd.clear();
delay(1000);

lcd.begin setzt LCD-Zeichenanzahl. Start: „Variable Voltage“ anzeigen.

float value = analogRead(A0);
value = (value * 5) / 1024;
analogWrite(3, ref_volt);

value liest Digitalwert aus ADC-Kanal A0 & wandelt in Spannung um. analogWrite liefert PWM an Pin 3.

if (digitalRead(4) == LOW) {
  if (ref_volt < 250) {
    ref_volt = ref_volt + 1;
    delay(100);
  }
}

Prüft Inkrement-Taster. Bei Druck: ref_volt erhöhen.

if (digitalRead(5) == LOW) {
  if (ref_volt > 0) {
    ref_volt = ref_volt - 1;
    delay(100);
  }
}

Prüft Dekrement-Taster. Bei Druck: ref_volt verringern.

So erzeugen Sie 5-Volt-Variables-Netzteil mit Arduino UNO – ohne Batteriesorgen und sperrige Schaltung.

Industrietechnik

  1. KI erkennt Menschen- & Wildtierhandel in globalen Lieferketten
  2. DTMF-Decoder mit Arduino bauen – ganz ohne zusätzlichen IC
  3. Intelligentes Voltmeter mit Arduino & Smartphone bauen – Einfaches DIY-Projekt
  4. Arduino UNO WiFi Webserver: LED per Browser steuern
  5. Python 3 zu Arduino UNO: Einfache Steuerung & LED-Demo
  6. Kompaktes FM-Radio mit Arduino Nano und RDA5807M selbst bauen
  7. Smartphone-G-Sensor-gesteuerter Roboter-Auto mit Arduino und Bluetooth
  8. Strom, Leistung und Drehmoment in Frequenzumrichtern meistern
  9. Duales ±12-VDC-Netzteil aus 230-VAC – Schaltplan & Anleitung
  10. Transformatorlose Netzteile: Eine bewährte Lösung zur Kosten- und Platzersparnis