Hallo zusammen,
vorneweg - ich bin Maschinenbauer mit Mechatronik Vertiefung. Daher
bitte ich um Verständnis, dass ich nicht das qualifizierteste
Elektronik- und Elektrotechnik-Wissen besitze. Ich wende mich an dieses
Forum, da ich hier offensichtlich die richtigen Fachleute anspreche.
Zur Problematik:
Ich möchte einen kleinen Coreless-DC-Motor mit 3.7V ansteuern. Dieser
ist bis 5V ausgelegt. Verwenden möchte ich den Motor - später dann vier
davon - für einen eigenen Quadrocopter, weshalb ich eine Versorgung per
Batterie benötige. Ich werde hierfür einen Lipo verwenden, der bei einer
Zelle eben nur 3,7V hat (bzw. 4,2 wenn voll geladen) - soviel zur
Erklärung warum 3,7V.
Diese 3,7V sollen über ein PWM-Signal vom Arduino variiert werden. Anbei
findet Ihr einen Steck- und Schaltplan. Im Schaltplan sind die
verwendeten Komponenten beschriftet.
Mein Arduino-Code ist prinzipiell eine einfache PWM-Ansteuerung:
1 | #define PWM_PIN_M0 9
|
2 | int PWM = 0;
|
3 |
|
4 | void setup() {
|
5 | pinMode( PWM_PIN_M0, OUTPUT );
|
6 | TCCR1B = TCCR1B & B11111000 | B00000001; // set timer 1 divisor to 1 for PWM frequency of 31372.55 Hz
|
7 |
|
8 | analogWrite(PWM_PIN_M0, 0);
|
9 |
|
10 | Serial.begin(9600);
|
11 | }
|
12 | void loop() {
|
13 | if( Serial.available() ){
|
14 | /* irgendeine einlese-Routine für PWM
|
15 | PWM = ... ;
|
16 | */
|
17 | analogWrite(PWM_PIN_M0, PWM);
|
18 | }
|
19 | delay(100);
|
20 | }
|
Der Code ist noch etwas umfangreicher, das ist aber der entscheidende
Teil.
Nun wollte ich das gesamte Setup testen. Ich habe also den Sketch
hochgeladen und über den seriellen Monitor meine PWM-Werte geschrieben.
Ich habe das Ganze zunächst mit den Arduino 5V- und GND-Pins als
Stromversorgung probiert - hat super geklappt.
Danach dann den LiPo so angeschlossen wie im Steckplan. Selbst bei 100%
Duty-Cycle hat sich der Motor nicht gedreht. Batterie geprüft: 4,2V.
Danach habe ich den Motor direkt an die Batterie angeschlossen und er
dreht sich, wie er es soll.
Ich habe es dann erneut mit der PWM-Schaltung mit MOSFET probiert und
wollte an der Diode mit meinem Multimeter die Spannung messen, die über
dem Motor abfällt. Und plötzlich - ich habe NUR das COM-Ende an die
Diode gehalten - ging der Motor los. Ich habe dann die PWM-Ansteuerung
von dem Gate-Pin weggenommen und der Motor drehte weiter und weiter.
Anscheinend habe ich den MOSFET von Drain zu Source kurzgeschlossen
(???). Ich habe das gleich mit noch einem anderen MOSFET probiert und
wieder versucht mit dem Multimeter die Spannung zu messen. Erneut
reichte eine kleine Berührung aus und der MOSFET war kurzgeschlossen.
Da ich mich nur ansatzweise mit Elektronikkomponenten auskenne, hier
eine unqualifizierte These, was passiert ist:
Anscheinend wird die Drain-Source-Spannung nicht geschaltet, wenn diese
zu gering ist (Spannungsversorgung 5V vom Arduino vs. 3,7/4,2V vom
Lipo). Der MOSFET wurde beim Messen durch den Kontakt COM geerdet,
wodurch intern irgendwas passiert ist. Kann auch sein, dass ich einen
komplett falschen MOSFET für diese Anwendung verwende. Ich habe wie
gesagt wenig Ahnung.
Ich hoffe Ihr könnt mich aufklären und mir Tipps geben, wie ich diese
Schaltung umändern sollte. Ich wäre euch sehr dankbar.
Viele Grüße,
Janis