Arduino als Spannungsregler

Hallo! Habe mir einen Arduino UNO bestellt, vor allem um dem ewigen Kampf gegen die kleinen Probleme der E-technik aus dem weg zu gehen. Teilweise echt frustrierend. Bin nun seit ein paar Tagen am C lernen und schaue mich so um, was es für so für Spielereien mit dem Board gibt, und hoffe die meisten Sachen über die Programmierung zu lösen zu können.

Folgende Frage habe ich, weder mein E-technik unwissen noch das internet waren bisher behilflich:

Kann ich den Arduino über einen PWM Ausgang in Kombination mit einem Transistor und einer Spule als Step up Wandler benutzen? Die Spannung in diesem "sekundärkreis" wird über einen Spannungsteiler an einem anderem Pin gemessen und dadurch die Frequenz eingestellt. Ich weiss nicht ob das zu viel verlangt ist ;) aber ich bräuchte 400V (bei wenigen mA)

Gibt es da schon was? Wie dimensioniert man die Spule? Oder völliger Humbug?

Danke schonmal und schönes Wochenende.

Ein Controller als PWM Regler von eine Switchingnetzteil ist nicht ratsam. Dafür gibts analoge IC wie sand am Meer. Wenn Du 400V und nu einige mA brauchst dann such Bauanleitungen für GM-Zähler. Grüße Uwe

Jedes mal Datenblätter wälzen, kaputte Bauteile suchen, das hatte ich gehofft mit dem Arduino zu umschiffen. Wenn ich einmal diese Schaltung gebaut habe, muss ich nur noch den Code ändern und habe alle Spannungen die ich benötige, ohne jedes mal neue Bauteile auszusuchen und zu kaufen.

Danke für deine schnelle Antwort Uwe, anscheinend gibt es eine Möglichkeit einen Step up mit Ard. zu bauen. Was sind die Probleme die dabei entstehen?

Ich habe mal aus spass einen kleinen boost “regler” mit einem AVR gebastelt (diskontinuierlicher betrieb der einfachheit halber). Um das ganze schnell genug zu bekommen (22µH induktivitaet), musste ich den internen analog-komparator verwenden. Per interrupt wurde dann entschieden, ob der transistor fuer die spule mit pulsen versorgt oder eben nicht (lief in ‘loop’). Fuer eine weisse LED hat es gereicht, effizient war es nicht.

Den code kannst du haben, wo was angeschlossen werden muss weiß ich nicht mehr :wink:

#include <avr/interrupt.h>
#include <avr/delay.h>
#include <avr/io.h>
#include <stdint.h>                                                                              

void setup(void) {
  DDRB |= _BV(PB0);
  PORTB &= ~_BV(PB0); // transistor off
  DDRB |= _BV(PB5);
  PORTB &= ~_BV(PB5); // LED off
  
  ADMUX &= ~( _BV(MUX2) | _BV(MUX1) | _BV(MUX0) ); // select ADC0 as negative comparator input
  ADCSRA &= ~_BV(ADEN); // ADC OFF
  ADCSRB |= _BV(ACME); // analog comparator multiplex enable
  ACSR |= _BV(ACBG); // analog comparator bandgab reference
}

void loop(void) {
  if( ACSR & _BV(ACO) ) { // AC voltage less than 1.1V
    PORTB |= _BV(PB0); // transistor on -- SMPS
    _delay_us(10);
    PORTB &= ~_BV(PB0); // transistor off
    _delay_us(10);
    PORTB &= ~_BV(PB5); // LED off
  }
  else {
    PORTB |= _BV(PB5); // LED on
  }
}

Die µs delays habe ich nur grob abgeschaetzt. Ein osci bild zwecks ripple usw. gibts auch nicht mehr.

Vielleicht koenntest du einen ‘typischen’ boost-ic verwenden und anstatt der spule einen entsprechenden trafo mit 1:X uebersetzung. Das feedback muss dann natuerlich heruntergeteilt werden. Aber wie schon gesagt, bei vielen geigerzaehlern tut es auch ein 555 (feedback?).