3-fase 50 nm stappenmotor aansturen
13 berichten
• Pagina 1 van 2 • 1, 2
3-fase 50 nm stappenmotor aansturen
Ik heb een 3 fase 50 nm stappenmotor met daaraan gekoppeld een micro step controller. Ik moet vanaf de arduino naar de vier 5volt ingangen "dir-" "dir+" "pul-" en "pul+" van de MSD. Iemand enig idee hoe ik dit aan elkaar kan breien? Ik wil de draairichting en de draaisnelheid van de stappenmotor met een potmeter kunnen regelen. Onderstaand youtube filmpje geeft de modelbouwversie weer van wat ik in het echt wil op mijn Schottelboot van 13 meter...
https://www.youtube.com/watch?v=gFfYB79DYSg
https://www.youtube.com/watch?v=gFfYB79DYSg
Advertisement
- nicoverduin
- Berichten: 5043
- Geregistreerd: 13 Mei 2013, 20:57
- Woonplaats: Heemskerk
Re: 3-fase 50 nm stappenmotor aansturen
heb je een datasheet van die controller? of type nummer?
Re: 3-fase 50 nm stappenmotor aansturen
De stappenmotor (50 NM) en de MSD komen www.stappenmotor.nl vandaan. Op de MSD staat: 3-MSD-230-8. Op hun site zijn uitgerekend van deze modellen geen datasheets voorhanden. grrr
Re: 3-fase 50 nm stappenmotor aansturen
zoek de library stepper en die kun je prima gebruiken, en uiteraard wat zijn de spanningen en stromen.
dir is dus de richting, je zet of dir- of dir+ aan, gewoon omwisselen (dat betekent dat je de uitgangen uit de library nog moet uitbreiden.
dan de snelheid bedien je met het aantal pulsen / minuut, dat doet het programma stepper voor je.
er is ook nog accelstepper maar die is moelijker.
dir is dus de richting, je zet of dir- of dir+ aan, gewoon omwisselen (dat betekent dat je de uitgangen uit de library nog moet uitbreiden.
dan de snelheid bedien je met het aantal pulsen / minuut, dat doet het programma stepper voor je.
er is ook nog accelstepper maar die is moelijker.
paul deelen
shooter@home.nl
shooter@home.nl
Re: 3-fase 50 nm stappenmotor aansturen
We hebben nu onderstaande sketch in elkaar gezet, maar dan verdraait de motor slechts 2x3 stapjes anti-clockwise. Het besturen van een 3 fasen steppermotor is kennelijk niet zo eenvoudig als het MIJ leek. Via www.stappenmotor.nl krijg ik ook weinig response.
int Speed = 250;
int Pulsepin = 12; //Sluit PUL+ aan op pin 12
int DIRpin = 13; //Sluit DIR+ aan op pin 13
int TenStepsLeftpin = 2; //Maak een knopje en sluit deze aan op 2
int TenStepsRightpin = 3; //Maak een knopje en sluit deze aan op 3
int Count = 0;
int TenStepsRight = 0;
int TenStepsLeft = 0;
int TenStepsRightChange = 0;
int TenStepsLeftChange = 0;
void setup(){
Serial.begin(9600);
pinMode(TenStepsLeftpin, INPUT);
pinMode(TenStepsRightpin, INPUT);
pinMode(Pulsepin, OUTPUT);
pinMode(DIRpin, OUTPUT);
}
void loop(){
TenStepsRight = digitalRead(TenStepsRightpin);
TenStepsLeft = digitalRead(TenStepsLeftpin);
if(TenStepsLeft != TenStepsLeftChange){
if(TenStepsLeft == 1){
digitalWrite(DIRpin, HIGH);
for (int Count =0; Count < 10; Count++){
digitalWrite(Pulsepin, HIGH);
delay(Speed);
Serial.print(Count);
digitalWrite(Pulsepin, LOW);
delay(Speed);
}
Serial.println("Done left");
}
TenStepsLeftChange = TenStepsLeft;
}
else if (TenStepsRight != TenStepsRightChange){
if(TenStepsRight == 1){
digitalWrite(DIRpin, LOW);
for (int Count =0; Count < 10; Count++){
digitalWrite(Pulsepin, HIGH);
delay(Speed);
Serial.print(Count);
digitalWrite(Pulsepin, LOW);
delay(Speed);
}
Serial.println("Done right");
}
TenStepsRightChange = TenStepsRight;
}
}
int Speed = 250;
int Pulsepin = 12; //Sluit PUL+ aan op pin 12
int DIRpin = 13; //Sluit DIR+ aan op pin 13
int TenStepsLeftpin = 2; //Maak een knopje en sluit deze aan op 2
int TenStepsRightpin = 3; //Maak een knopje en sluit deze aan op 3
int Count = 0;
int TenStepsRight = 0;
int TenStepsLeft = 0;
int TenStepsRightChange = 0;
int TenStepsLeftChange = 0;
void setup(){
Serial.begin(9600);
pinMode(TenStepsLeftpin, INPUT);
pinMode(TenStepsRightpin, INPUT);
pinMode(Pulsepin, OUTPUT);
pinMode(DIRpin, OUTPUT);
}
void loop(){
TenStepsRight = digitalRead(TenStepsRightpin);
TenStepsLeft = digitalRead(TenStepsLeftpin);
if(TenStepsLeft != TenStepsLeftChange){
if(TenStepsLeft == 1){
digitalWrite(DIRpin, HIGH);
for (int Count =0; Count < 10; Count++){
digitalWrite(Pulsepin, HIGH);
delay(Speed);
Serial.print(Count);
digitalWrite(Pulsepin, LOW);
delay(Speed);
}
Serial.println("Done left");
}
TenStepsLeftChange = TenStepsLeft;
}
else if (TenStepsRight != TenStepsRightChange){
if(TenStepsRight == 1){
digitalWrite(DIRpin, LOW);
for (int Count =0; Count < 10; Count++){
digitalWrite(Pulsepin, HIGH);
delay(Speed);
Serial.print(Count);
digitalWrite(Pulsepin, LOW);
delay(Speed);
}
Serial.println("Done right");
}
TenStepsRightChange = TenStepsRight;
}
}
Re: 3-fase 50 nm stappenmotor aansturen
Jij had het toch ook over een Dir- pin of is dat gewoon de normale Nul?
schema is handig doe als zit bijlage
het gejatte programma zou 10 stappen moeten zetten maar dat is helemaal niet de bedoeling.
kijk maar naar stepper zit bij voorbeelden zelfs precies wat je nodig hebt hoor met een potmeter.
schema is handig doe als zit bijlage
het gejatte programma zou 10 stappen moeten zetten maar dat is helemaal niet de bedoeling.
kijk maar naar stepper zit bij voorbeelden zelfs precies wat je nodig hebt hoor met een potmeter.
paul deelen
shooter@home.nl
shooter@home.nl
Re: 3-fase 50 nm stappenmotor aansturen
Met deze code krijg ik wel leven in de stepper motor. Hij draait met tussenpozen telkens een ruime slag, maar gaat nog niet beurtelings links- en rechtsom.
/*
Stepper Motor Control with Arduino Motor Control Shield V3.0.
This program drives a bipolar stepper motor. The motor is controlled
by Arduino pins 10, 11, 12, 13.
The motor should do five revolutions into one and five into another direction.
Using this sketch for longer is not recommended because it will keep the motor under current
and can cause it to become quite hot.
*/
#include <Stepper.h>
int enA = 10; // Enable pin 1 on Motor Control Shield
int enB = 11; // Enable pin 2 on Motor Control Shield
int dirA = 12; // Direction pin dirA on Motor Control Shield
int dirB = 13; // Direction pin dirB on Motor Control Shield
const int stepsPerRevolution = 20; // Change this to fit the number of steps per revolution
// for your motor
// Initialize the stepper library on pins 12 and 13:
Stepper myStepper(stepsPerRevolution, dirA, dirB);
void setup() {
// set the speed at 3000 rpm:
myStepper.setSpeed(3000);
// Enable power to the motor
pinMode(enA, OUTPUT);
digitalWrite (enA, HIGH);
pinMode(enB, OUTPUT);
digitalWrite (enB, HIGH);
}
void loop() {
// Step five revolutions into one direction:
myStepper.step(stepsPerRevolution*50);
delay(2000);
// Step five revolutions in the other direction:
myStepper.step(-stepsPerRevolution*50);
delay(2000);
/*
Stepper Motor Control with Arduino Motor Control Shield V3.0.
This program drives a bipolar stepper motor. The motor is controlled
by Arduino pins 10, 11, 12, 13.
The motor should do five revolutions into one and five into another direction.
Using this sketch for longer is not recommended because it will keep the motor under current
and can cause it to become quite hot.
*/
#include <Stepper.h>
int enA = 10; // Enable pin 1 on Motor Control Shield
int enB = 11; // Enable pin 2 on Motor Control Shield
int dirA = 12; // Direction pin dirA on Motor Control Shield
int dirB = 13; // Direction pin dirB on Motor Control Shield
const int stepsPerRevolution = 20; // Change this to fit the number of steps per revolution
// for your motor
// Initialize the stepper library on pins 12 and 13:
Stepper myStepper(stepsPerRevolution, dirA, dirB);
void setup() {
// set the speed at 3000 rpm:
myStepper.setSpeed(3000);
// Enable power to the motor
pinMode(enA, OUTPUT);
digitalWrite (enA, HIGH);
pinMode(enB, OUTPUT);
digitalWrite (enB, HIGH);
}
void loop() {
// Step five revolutions into one direction:
myStepper.step(stepsPerRevolution*50);
delay(2000);
// Step five revolutions in the other direction:
myStepper.step(-stepsPerRevolution*50);
delay(2000);
Re: 3-fase 50 nm stappenmotor aansturen
lees de docs, en geef een schema van jouw stepperdriver.
Je kunt echt niet verwachten dat een stukje kopie van een programma direct draait als je niet de juiste shield gebruikt.
Je kunt echt niet verwachten dat een stukje kopie van een programma direct draait als je niet de juiste shield gebruikt.
paul deelen
shooter@home.nl
shooter@home.nl
Re: 3-fase 50 nm stappenmotor aansturen
Hoi,
3 fasen steppers zinn mij zover onbekend.
Als ik naar de driver kijk, is deze geschikt voor een 2 fasen stepper of ookwel bilpolais stepper.
Kan de benoeming vd aansluitingen bij de groene connectors niet exact lezen, maar kan met zekerheid wel opmaken dat het A- A+ B- B+ U_motor en GND zijn. Dus bipolair.
Nu ben ik nieuw met de C-taal voor de Arduino, maar ik weet wel met de stepperdrivers die ik ken, dat de direction-bit tijdens het bewegen een vaste waarde moet hebben en niet met de step-bit mee kan togglen. Bij mij ging dat een keer fout.
Beste is om de direction bit te setten en vervolgens met de stappen te beginnen.
Marcel
3 fasen steppers zinn mij zover onbekend.
Als ik naar de driver kijk, is deze geschikt voor een 2 fasen stepper of ookwel bilpolais stepper.
Kan de benoeming vd aansluitingen bij de groene connectors niet exact lezen, maar kan met zekerheid wel opmaken dat het A- A+ B- B+ U_motor en GND zijn. Dus bipolair.
Nu ben ik nieuw met de C-taal voor de Arduino, maar ik weet wel met de stepperdrivers die ik ken, dat de direction-bit tijdens het bewegen een vaste waarde moet hebben en niet met de step-bit mee kan togglen. Bij mij ging dat een keer fout.
Beste is om de direction bit te setten en vervolgens met de stappen te beginnen.
Marcel
To DIY or not to DIY...
Re: 3-fase 50 nm stappenmotor aansturen
Plaats hier anders even een foto met de aansluitingen van je drivers.
Zo te horen heb je opto-coupler-ingangen omdat je spreek van dir+ dir- etc.
Ik denk dat je helemaal geen 4 ingangen hebt nl. Je hebt maar 2 uitgangen van Arduino nodig.
Maar dat hoop ik duidelijk te krijgen adhv je foto.
Normaal gesproken hebben kant en klare bipolaire drivers alleen maar een Step en Dir ingang.
Ik wacht op je foto.
Zo te horen heb je opto-coupler-ingangen omdat je spreek van dir+ dir- etc.
Ik denk dat je helemaal geen 4 ingangen hebt nl. Je hebt maar 2 uitgangen van Arduino nodig.
Maar dat hoop ik duidelijk te krijgen adhv je foto.
Normaal gesproken hebben kant en klare bipolaire drivers alleen maar een Step en Dir ingang.
Ik wacht op je foto.
To DIY or not to DIY...
13 berichten
• Pagina 1 van 2 • 1, 2
Terug naar Afgeronde projecten
Wie is er online?
Gebruikers in dit forum: Geen geregistreerde gebruikers en 3 gasten