Zurück (C) Christof Ermer, Regensburg
Gästebuch 
(public. sonst besser Email)  ChristofErmer@gmail.com


Gratis Counter 08.05.2018


Steuerung für einen "Modelbau" Brushless DC Motor.

Software für den ATMega8:  AT8-BLDC-Sauger-StateMachine vom-28-3-2014.zip
Ein Projekt mit  einem fetten BLDC Motor für Modellflugzeuge. Genutzt als Luftpumpe in einem Reinraum.
Vorgeschaltet war ein SERVO_BLDC Wandler aus China.
Also musste erst ein Servo Signal erzeugt werden

Alles ist recht billgi via China zu bekommen.
Dieser
ier wird über Model-Servo PWM Signale angetrieben.
Siehe (später) auch Multi_PWM.html



Letztlich läuft es auf  eine Zeitsteuerung für ein PWM Signal heraus.
Dieses Signal erzeugt ein Mikrokontroller oder sonstige Elektronik:

PWM = Pulsweitenmodulation
Konditionen:
PWM ~50..60HZ
Mindestens 1ms OnZeit bis 2ms.

Das heisst, in dieses "Zeitfenster" von 20 Millisekunden wird nur ein 1..2mSek. Fenster genutzt.
Grund. Historisch. Im selben Zeitfenster könnten noch andere Servos genuzt werden.
Gemultiplext. Von "einer" Erzeuger-elektronik. So war wohl der Gedanke.
Das ist aber heutezutage mit digitalen µControllern blödsinn.
Diesen PWM Frames werden  per Software ( interrupts ) erzeugt..

Wir haben also einen 3 Leiter  Servo:
PWM, Plus 55.7V, Minus 



Siehe Grafik:


                  
  Universal Servo 



Schaltung für eine Servotester. mit diskreter, primitiver Elektronik:  ( Quelle Servotester vom Conrad, glaube ich )
Links= Taktgerator für 50Hz, Rechts = Monoflop für 1..2ms  ( Negative Flanke )



Realisation für ein Multi PWM,  also viele Servos, mit einer gemeinsame PLUS und Masse.
TRICK:
Variante ohne Shunt Widerstand.
Fetter Transistor übernimmt den grossen Servostrom
Hier mit einem kleinen Spannungslift auf 6,5 V
Kann aber weggelassen werden, ~5 V tun es auch..   
Dazu dann die "Rote LED" mit einer normalen 1N4148 Diode ersetzen ( kompensiert den Basis-Emitter Spannungsverlust )
ACHTUNG: Bauteile ( Spannungsregler / Transistor )  masseisoliert verbauen.
ENABLE(5V)  kommt als Signal vom µController zum BUZ11
    Man kann ersatzhalber auch die PWM Todzeit von 18..19 mS auf 10mS verkürzen..



Softwarekonzept
So wird der Timer im µController Programmiert:
Bsp: 8 Bit Timer des ATMegaX mit 16MHz Qarz:
8Bit Timer   --> Vorteiler N= 1/1024 -->   = 16*10^6(Quarz) / 1024(Vorteiler) / 256(8TBittimer) =
     ~61Hz PWM Frequenz  --> PASST
T=1/F =  1/61Hz = 16.384 milli-Sekunden pro Periode = 256 Bits Overflow = 16.384ms/256 =  Time/Bit =0.064mS/Bit
OCRxA= Mtte Servoe = 1.5ms = 1.5/0.064ms/Bit = ~round( 2.4375) = 23..
.01ms = ~16
1.5ms = ~23
2.0ms = ~ 31
dann im OCR0A kommt der Wert für 1,5mS für ServoMitte =23

Wir sehen,, eine erbärmliche Auflösung.
Das geht seh viel besser, nur anders,
    Aber das ist die einfachste, leider aber schlechteste Lösung.
    aber richtig im Prinzp.
Nicht veregssen.
OCx Port = Ausgang
OCx falling edge bei Compare match
OCx Risingedge  bei Overflow.
Sehr viel besser geht es z.B mit einem 16 Bit Timer udn etws schlauer programmiert
oder Siehe auch Multi_PWM.html