Aansturing stappenmotor met Arduino

Gestart door Ajean, 11 februari 2014, 19:37:21 PM

Ajean

Hallo,

Als beginnend Arduino gebruiker ben ik bezig mijn modelspoorbaan te automatiseren.
Een van de dingen waarvoor ik Arduino wil gebruiken is het aansturen van een stappenmotor.
Om dit te kunnen heb ik bij Adafruit een Motor Shield aangeschaft en de onderstaande sketch gedownload. Dit alles werkt naar behoren.
Ik wil deze sketch echter uitbreiden zodat ik de mogelijkheid heb om met knoppen de start en draairichting ,zoals beschreven in de volgende loop, te regelen:

•   Stappenmotor wacht
•   Druk op knop 1 (puls)
•   Stappenmotor start en draait x stappen voorwaarts
•   Stappenmotor stopt
•   Stappenmotor wacht
•   Druk op knop 2 (puls)
•   Stappenmotor start en draait x stappen achterwaarts
•   Stappenmotor  stopt

Ik heb al rondgekeken op internet en het een en ander, als beginneling,  geprobeerd echter zonder het gewenste resultaat.

Ik hoop dat iemand mij kan helpen. Alvast bedankt

Groeten,
Adri


SKETCH
This is a test sketch for the Adafruit assembled Motor Shield for Arduino v2
*/


#include <Wire.h>
#include <Adafruit_MotorShield.h>
#include "utility/Adafruit_PWMServoDriver.h"

// Create the motor shield object with the default I2C address
Adafruit_MotorShield AFMS = Adafruit_MotorShield();
// Or, create it with a different I2C address (say for stacking)
// Adafruit_MotorShield AFMS = Adafruit_MotorShield(0x61);

// Connect a stepper motor with 200 steps per revolution (1.8 degree)
// to motor port #2 (M3 and M4)
Adafruit_StepperMotor *myMotor = AFMS.getStepper(200, 2);


void setup() {
  Serial.begin(9600);           // set up Serial library at 9600 bps
  Serial.println("Stepper test!");

  AFMS.begin();  // create with the default frequency 1.6KHz
  //AFMS.begin(1000);  // OR with a different frequency, say 1KHz
 
  myMotor->setSpeed(10);  // 10 rpm   
}

void loop() {
  Serial.println("Single coil steps");
  myMotor->step(100, FORWARD, SINGLE);
  myMotor->step(100, BACKWARD, SINGLE);

}

Frank_N

Sorry Ajean, een oplossing voor uw kwestie weet ik niet maar:

Vraagje aan Admin Gerolf:
Mogelijk is misschien voor de Arduino een appart topic te starten om een en ander overzichtelijk te houden?
Ondergetekende (zoals er volgens mij meerdere beginnelingen zijn....)  is ook bezig met Arduino.

Bij accoord kan dit bericht verwijderd worden, aub.
Groet van Frank

Gerolf

Ik heb de vraag alvast in een meer geschikte rubriek gezet  ;)
Groeten uit "Marche-en-Bières"   ** Modelspoor is plezant **   TPIII-H0-DC-Zelfbouw

dani

Hallo Adri,

Dit is een vrij simpele toepassing van een stappenmotor op Arduino.
Je gaat je natuurlijk wel eve n moeten inlezen over het gebruik van drukknoppen  en stappenmotoren via de meegeleverde libraries en voorbeelden.

Ik zou het progje voor jou kunnen maken, maar ga je daar veel van leren ? weet ik niet.  Laat maar weten hoe je het wil aanpakken.  Ik kan je zeker en vast op weg helpen, dat is geen probleem.
Voor jedrukknop(pen) ga je alvast pull down weerstand(en) moeten gebruiken, tenzij je interne pull ups aan zet en dan naar massa schakelt.
Verde is het een kwestrie van je "main" loop te schrijven.

Als je een stapje verder wil gaan, kan je ook analoge ingangen gebruiken en potentiometers, zodat je met een draaiknopje kan instellen hoe ver en/of hoe snel je motor moet draaien.

Je kan me anders eens je probeer-scriptje doormailen en dan bekijk ik het eens.   mail het maar naar   homer(punt)simpson(at)telenet(punt)be
De kruik is te water gegaan...
De kruik is niet meer.

Ajean

@ Dani

Na een zoektocht op internet en een reactie vanuit een Arduino forum heb ik een sketch gevonden die me een heel eind op weg geholpen heeft. Na wat aanpassingen kan ik nu de stappenmotor aansturen zoals ik voor ogen had.
Dank voor je reactie.

Groet,

Adri

dani

no problem, Adri.
Als je verder evolueert en je hebt vragen, vuur ze maar af.
Ik wil je altijd helpen, maar probeer dat op een manier dat mensen het "zelf" leren,  kwestie van dat je dat ook als "student " makkelijker onthoudt dan.

Succes, en ik ben  benieuwd naar de resultaten van je werk !
Dani
De kruik is te water gegaan...
De kruik is niet meer.