Go Down

Topic: Motoren steuern (Read 6 times) previous topic - next topic

arduinorobot

Hallo! Ich bin erst ein Anfänger.
Ich möchte wissen, wie man in arduino motoren steuert(Mit Pushbutton)
Mann drückt auf den Taster drauf, und der Motor dreht sich solange bis man den Taster wieder loslässt. Geht das mit digitalWrite?

Danke :)

arduinorobot

#1
May 15, 2010, 02:20 pm Last Edit: May 15, 2010, 04:45 pm by arduinorobot Reason: 1
Vielleicht so: (ohne Pushbutton)?
Code: [Select]

motorpin = pinMode(2) //oder anderer Pin
void main()
{
    digitalWrite(motorpin, HIGH)
    digitalWrite(motorpin, LOW)
}

arduinorobot

hilft mir keiner? Das ist ja ein guter erster eindruck!

volvodani

Ich habe genau so angefangen ich hatte eine Idee für ein Projekt.
Der nächste Schritt ist sich viele Projekte anschauen den Code anschauen und dann bekommt man immer mehr verständnis für die Materie.
Man versucht sich einfach am Anfang ein bisschen die Sachen angucken ein bisschen zusammenkopieren und während den ganzen kopierne und probieren kommt man auf neuer Ideen und passt seine Code dann an und so ist das dann ein learning by doing.
Es kommt immer bescheiden an. z.B. zu sagen wenn ich auf einen taster drücke soll sich eine LED dimmen heller dunkler und dann heller.
Bitte macht mir mal eine Code dafür.


Selber probieren und wenn man dann auf Probleme stößt kann man diese konkret beschreiben und man bekommt sehr kompetente Lösungen  bzw gute Ansätze für eine Lösung.

Dieser Weg ist immer der bessere
So ist das Leben:
Manchmal bis du das Denkmal, manchmal die Taube!

arduinorobot

Der Code von dem Example "Button" ist so:

Code: [Select]

/*
 Button

Turns on and off a light emitting diode(LED) connected to digital  
pin 13, when pressing a pushbutton attached to pin 7.


The circuit:
* LED attached from pin 13 to ground
* pushbutton attached to pin 2 from +5V
* 10K resistor attached to pin 2 from ground

* Note: on most Arduinos there is already an LED on the board
attached to pin 13.


created 2005
by DojoDave <http://www.0j0.org>
modified 17 Jun 2009
by Tom Igoe

 http://www.arduino.cc/en/Tutorial/Button
*/

// constants won't change. They're used here to
// set pin numbers:
const int buttonPin = 2;     // the number of the pushbutton pin
const int ledPin =  13;      // the number of the LED pin

// variables will change:
int buttonState = 0;         // variable for reading the pushbutton status

void setup() {
 // initialize the LED pin as an output:
 pinMode(ledPin, OUTPUT);      
 // initialize the pushbutton pin as an input:
 pinMode(buttonPin, INPUT);    
}

void loop(){
 // read the state of the pushbutton value:
 buttonState = digitalRead(buttonPin);

 // check if the pushbutton is pressed.
 // if it is, the buttonState is HIGH:
 if (buttonState == HIGH) {    
   // turn LED on:    
   digitalWrite(ledPin, HIGH);  
 }
 else {
   // turn LED off:
   digitalWrite(ledPin, LOW);
 }
}

muss ich dann statt digitalWrite(ledPin, HIGH)
digitalWrite(motorPin, HIGH) nehmen?

Otacon2k

Quote
muss ich dann statt digitalWrite(ledPin, HIGH)
digitalWrite(motorPin, HIGH) nehmen?


So könnte man es sagen, ja. Allerdings ist es vollkommen egal, wie du die Variable nennst, in der die Pinnummer gespeichert ist. Es könnte auch digitalWrite(schnackeldoens, HIGH) dabei rauskommen, alles eine Frage deiner Kreativität ;)

Sei vorsichtig mit einem Motor. Normale DC-Motoren, die man zuhause vielleicht irgendwo rumliegen hat, solltest du keinesfalls direkt an den Arduino anschließen. Steuer mit dem Arduino einen Transistor (am besten einen MOSFET) an, der soll dann den Motor anschalten. Der maximal zulässige Strom aus einem Pin am Arduino ist sehr begrenzt und reicht nicht, einen solchen Motor zu "versorgen". Außerdem enstehen beim Abschalten des Motors hässliche Spannungsspitzen, die bei direktem Anschluss an einem Digital-Pin in den Arduino zurückwandern und dir den Prozessor zerschießen können (wenn du keine Gegenmaßnahmen triffst).

Ansonsten noch der Tipp: Immer auch mal im Playground vorbeischauen wenn es um so grundlegende Fragen geht (es sei denn du bist des englischen nicht mächtig, dann sei dir verziehen). Da gibt es z.B. den Link hier (ist sogar noch ein wenig umfangreicher): http://www.arduino.cc/playground/Main/DCMotorControl

arduinorobot

#6
May 17, 2010, 04:23 pm Last Edit: May 17, 2010, 04:24 pm by arduinorobot Reason: 1
das die var egal ist, weis ich, und einen MOSFET (gib mir mal die Bestellnr. bei Conrad etc.)
außerdem gibt es doch auch bestimmt Arduino-Motoren oder?

Danke

Webmeister

Quote
gib mir mal die Bestellnr. bei Conrad etc


Ein solcher Befehlston ist im Forum nicht gerne gesehen. [smiley=angry.gif]

Sorry, aber so hat wirklich niemand Lust dich zu unterstützen.

Zu deinem Problem:
Falls du Probleme mit dem Sketch hast, kannst du zum Test auch eine Leuchtdiode verwenden, welche beim Drücken des Buttons angeht.

Schau dir mal diesen Thread an:
http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1230677423

Und noch genauer hier:
http://itp.nyu.edu/physcomp/Tutorials/HighCurrentLoads

arduinorobot

Achso: LEGO-Motoren sollen von dem Pushbutton abhängig sein.

Otacon2k

Quote
Achso: LEGO-Motoren sollen von dem Pushbutton abhängig sein.


Was meinst du damit?

arduinorobot

ja also, lego motoren werden beim drücken des pushbuttons eingeschaltet!

Webmeister

Quote
ja also, lego motoren werden beim drücken des pushbuttons eingeschaltet!


Welche Legomotoren verwendest du dazu? Art-Nr?
Wenn du die Lego-Motoren mit dem Arduino ansteuern willst, musst du das Drücken der Pushbottons (wo sind die platziert) über die Arduino-Ansteuerung realisieren.

Damit wir dir helfen können, musst du uns schon ein paar Informationen über verwendete Komponenten usw liefern.
Nur fragen ob das geht, ist ein bisschen zu wenig  >:(

arduinorobot

Art.Nr der Legomotoren:
8883
Link:
http://search2.lego.com/exec/?q=LEGO%20Motor&pt=&lang=1031&cc=DE&u=
Quote

Wenn du die Lego-Motoren mit dem Arduino ansteuern willst, musst du das Drücken der Pushbottons (wo sind die platziert) über die Arduino-Ansteuerung realisieren.

Was meinst du damit?

arduinorobot


Webmeister

Durch Drücken des Pushbuttons wird der Stromkreis geschlossen und der Motor bekommt Spannung und bewegt sich.

Da du nun den Motor mit dem Arduino ansteuern willst, muss du, wie bereits gesagt, das Schliessen des Pushbuttons durch die Arduino-Ansteuerung ersetzen.

Aus der Katalogansicht ist leider nicht ersichtlich wo der erwähnte Pushbutton ist und wie die Schaltung rund um den Motor aussieht.

Du musst also zuerst herausfinden, welche Anschlüsse für die Ansteuerung des Motors nötig sind.

Wie man Motoren mit Arduino ansteuern kannst, zeigen die Links weiter oben.

Go Up