5V Motor betreiben

Hallo ich wollte ein 5v Motor mit arduino betreiben und dazu nur das blinkLED script nutzen

// the setup function runs once when you press reset or power the board
void setup() {
// initialize digital pin LED_BUILTIN as an output.
pinMode(LED_BUILTIN, OUTPUT);
}

// the loop function runs over and over again forever
void loop() {
digitalWrite(LED_BUILTIN, HIGH); // turn the LED on (HIGH is the voltage level)
delay(10000); // wait for a second
digitalWrite(LED_BUILTIN, LOW); // turn the LED off by making the voltage LOW
delay(10000); // wait for a second
}

Minus ist an 13 angeschlossen und Plus am 5V

Leider dreht sich der Motor nicht. Aber eine LED blinkt.
weiß einer woran das liegt?

Das könnte man evtl. herausbekommen, wenn Du uns einen Link zu Deinem Motor gibst.
Code und Quote ist übrigens unterschiedlich.

Gruß Tommy

...

die Kommentare bei delay() passen nicht wirklich zum Sketch - sind englische Kommentare eigentlich cool?

MfG

handyaner:
Hallo ich wollte ein 5v Motor mit arduino betreiben und dazu nur das blinkLED script nutzen
Minus ist an 13 angeschlossen und Plus am 5V

Leider dreht sich der Motor nicht. Aber eine LED blinkt.
weiß einer woran das liegt?

Ich vermute am Strombverbrauch des Motors.
Die meisten Motoren benötigen mehr Strom zum Betrieb, als der Arduino liefern kann.

Auch wenn du den GND schaltest, da muss der Strom auch durch. :wink:
Zusätzlich brauchst du dringend eine Freilaufdiode am Motor.

postmaster-ino:
die Kommentare bei delay() passen nicht wirklich zum Sketch - sind englische Kommentare eigentlich cool?

Wie vom TE beschrieben, ist das der Sketch mit verlängertem Delay aus den Beispielen der IDE. Da sind einfach die englischen Kommentare dabei. Soll man die Kommentare löschen oder ins deutsche Übersetzen, damit keiner was zum meckern hat?

handyaner:
Minus ist an 13 angeschlossen und Plus am 5V

Leider dreht sich der Motor nicht. Aber eine LED blinkt.

Bitte so was nicht machen. Der Arduino ist für 99,9% der 5V-Motoren zu schwach. Du kannst ihn durch die Überlastung zerstören. Du brauchst einen Treibertransistor. Denke auch an eine ausreichende Stromversorgung.

Und....dreht der Motor schon ?

Hi

Klar, daß man es nicht Jedem recht machen kann.
Aber ein Kommentar sollte die Zeile erklären und nicht nachplappern, was in der Zeile zuvor steht - DAS sehe ich nämlich durchaus selber.
Ein Kommentar wie
delay(1000); // Pause in Millisekunden
oder von mir aus auch in Englisch :wink: erklärt die Zeile und hat damit einen MEHR-Wert - die 1000 brauche ich dort nicht wiederholen bzw. sind bei Anpassungen recht schnell falsch.

Wenn die Kommentare ein Überbleibsel aus einem Beispiel ist, ok, habe aber die Befürchtung, daß die Qualität der Kommentare in Zukunft sich an dieser Latte messen lassen - und dabei noch verlieren.

MfG

Du brauchst unbedingt einen Transistor zum Ansteuern des Motors.
Bei Kenntnis des Motors kann man den Transistor aussuchen.
Grüße Uwe

... oder profan einen LL-N-FET nehmen (Dann schaltet man aber GND/Minus, z.B. bei PC-Lüftern nicht sinnvoll, da so das Tacho-Signal flöten geht)

MfG

@postmaster-ino
Auch ein MOFETransistor fällt für mich in die Kategorie "Transistor", nicht nur der BJT. Bevor ich keine Infos über den Motor bekomme wollte ich nur generelle Vorschläge machen.
Grüße Uwe

uwefed:
Auch ein MOFETransistor fällt für mich in die Kategorie "Transistor",
.....

Das sollte dem TO eigentlich schon bekannt sein.
Hier war es schon ein "ähnliches Thema", aber scheinbar werden unsere Antworten von ihm konsequent ignoriert.

Hallo miteinander,

ich musste noch ein paar Elektronik-Komponenten kaufen, daher meine späte Antwort.
ich habe mich nun an folgenden Bauplan gehalten

Als Transisor habe ich einen BC 547C P2
Widerstand 1 K Ohm
Diode 1 N4004

ich nutze folgenden Motor https://amzn.to/2lxFuIe
Leistungsaufnahme: 2.3W
Nennspannung: USB DC 5V

Als Energiequelle dient eine USB Powerbank mit DC 5V/2.0A als Output.

Ich nutze die BlinkLED Beispiel als Code

const int LED = 5; //pin number
int state = LOW; //state of LED
int count = 0; //timer start
int blinkon = 1000; //time LED on
long blinkoff = 1000; //time LED off

void setup(){
  pinMode(LED, OUTPUT);
  
}
void loop(){
 
int count = millis();

 if (count >= blinkon) {
   state = HIGH; //turn LED on
 }
 if (count >= blinkoff) {
   state = LOW; //turn LED off
   int count = 0; //restart timer
 }
digitalWrite(LED, state);
}

nachwievor blinkt die LED. Aber der Motor dreht sich leider nicht.

Der Transistor wird das nicht lange überleben, der kann nur 100mA ab.
Du du brauchst aber ca. 500mA.
Und obendrein überlastest du den Regler auf dem Uno, der wird dir auch schnell die Karten legen.

Du solltest dir angewöhnen, richtige Schaltungen zu liefern, die auch mit der Beschreibung übereinstimmt.
Und uns nicht ständig aufs Glatteis führen.

5 Volt kannst du nicht an der Spannungsbuchse anschließen.

Hi

Wenn Du 'über den Arduino' gehst, wird Der Sich auch über die 500mA Motorstrom beschweren.
Wenn Du sowohl Motor wie Arduino separat von der PowerBank versorgst (parallel anschließt), sollte Das passen - bis auf 100mA Transistor zu 500mA Last.

Selber nehme ich lieber FETs, gibt's auch als LogicLevel (LL-FET).
N-FETs kann man statt NPN nehmen - kommen auf die 'Minus-Seite'.
Selber nutze ich IRLZ34/IRLZ44 - gab's im Dutzend auf eBay :wink:

FETs werden mit SPANNUNG angesteuert - 'normale' Transistoren mit Strom, Den Diese verstärken.
Selber nutze ich die FETs aber auch ganz gerne, weil mir 'normale' Transistoren immer noch nicht in Fleisch und Blut über gegangen sind.

MfG

  1. beim Transistor muß der Emittor auf Masse nicht der Kollektor (Transistor um 180 ° drehen)
  2. ein 5V 2,3W Motor hat nominell 0,5 A Nennstrom bei Nennlast, aber beim Anfahren kann er schon mal 5A ziehen.