Stepper don't work with Mysensors library
-
Mary Cristmas to all
I try to make a sketch with a A4988 driver. When i activate mysensor library the stepper dont work not good any more.
The stepper is not turning well.
When i remark the my sensor library the everything is working okee.
Can some one help me and give me a good advise.
The sketch is a beginning and not ready yet.
/* Gordijn aansturing
*- Benodigd 1 arduino pro/mini
- 1 stepper motor
- 1 stepper driver A4988
- 2 switch (begin en eind)
*/
// =========================== Zet de serielle monitor aan ========================
#define MY_DEBUG
// ********************************************************************************// =========================== Radio instelling RFM 69 ============================
//#define MY_RADIO_NRF24
#define MY_RADIO_RFM69
#define MY_RFM69_FREUENCY RF69_433MHZ
#define MY_RFM_PA_LEVEL RF69PA_LOW
#define MY_ISRFM69HW
//********************************************************************************//=========================== Node en Child infomatie ============================
#define MY_NODE_ID 13
#define CHILD_ID 20
//********************************************************************************
// defines pins numbers
int stepPin = 8;
int dirPin = 9;
// ========================= Libraries ===========================================
#include <SPI.h>
//#include <MySensors.h>
#include <Wire.h>
// *******************************************************************************void setup() {
// Sets the two pins as Outputs
pinMode(stepPin,OUTPUT);
pinMode(dirPin,OUTPUT);
}
void loop() {
digitalWrite(dirPin,HIGH); // Enables the motor to move in a particular direction
// Makes 200 pulses for making one full cycle rotation
for(int x = 0; x < 200; x++) {
digitalWrite(stepPin,HIGH);
delayMicroseconds(500);
digitalWrite(stepPin,LOW);
delayMicroseconds(500);
}
delay(1000); // One second delaydigitalWrite(dirPin,LOW); //Changes the rotations direction
// Makes 400 pulses for making two full cycle rotation
for(int x = 0; x < 400; x++) {
digitalWrite(stepPin,HIGH);
delayMicroseconds(500);
digitalWrite(stepPin,LOW);
delayMicroseconds(500);
}
delay(1000);
}Greatz Ton
-
Mary Cristmas to all
I try to make a sketch with a A4988 driver. When i activate mysensor library the stepper dont work not good any more.
The stepper is not turning well.
When i remark the my sensor library the everything is working okee.
Can some one help me and give me a good advise.
The sketch is a beginning and not ready yet.
/* Gordijn aansturing
*- Benodigd 1 arduino pro/mini
- 1 stepper motor
- 1 stepper driver A4988
- 2 switch (begin en eind)
*/
// =========================== Zet de serielle monitor aan ========================
#define MY_DEBUG
// ********************************************************************************// =========================== Radio instelling RFM 69 ============================
//#define MY_RADIO_NRF24
#define MY_RADIO_RFM69
#define MY_RFM69_FREUENCY RF69_433MHZ
#define MY_RFM_PA_LEVEL RF69PA_LOW
#define MY_ISRFM69HW
//********************************************************************************//=========================== Node en Child infomatie ============================
#define MY_NODE_ID 13
#define CHILD_ID 20
//********************************************************************************
// defines pins numbers
int stepPin = 8;
int dirPin = 9;
// ========================= Libraries ===========================================
#include <SPI.h>
//#include <MySensors.h>
#include <Wire.h>
// *******************************************************************************void setup() {
// Sets the two pins as Outputs
pinMode(stepPin,OUTPUT);
pinMode(dirPin,OUTPUT);
}
void loop() {
digitalWrite(dirPin,HIGH); // Enables the motor to move in a particular direction
// Makes 200 pulses for making one full cycle rotation
for(int x = 0; x < 200; x++) {
digitalWrite(stepPin,HIGH);
delayMicroseconds(500);
digitalWrite(stepPin,LOW);
delayMicroseconds(500);
}
delay(1000); // One second delaydigitalWrite(dirPin,LOW); //Changes the rotations direction
// Makes 400 pulses for making two full cycle rotation
for(int x = 0; x < 400; x++) {
digitalWrite(stepPin,HIGH);
delayMicroseconds(500);
digitalWrite(stepPin,LOW);
delayMicroseconds(500);
}
delay(1000);
}Greatz Ton
@TON-RIJNAARD the way this code drives the motor requires 100% cpu all the time, so it will have trouble co-existing with almost any library.
To my knowledge, you'll either need to write custom code that doesn't use delay, something similar to what is discussed in http://forum.arduino.cc/index.php?topic=137269.0 or you need to use a stepper motor library that already does that. I am not sure if http://www.airspayce.com/mikem/arduino/AccelStepper/ supports the A4988 but it might be worth a shot.
-
@mfalkvidd Tanks for the help i give it atry. I am new to arduino so maby i need more help. I let you now when it is nessesary.
Greatz Ton
Hello! It looks like you're interested in this conversation, but you don't have an account yet.
Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.
With your input, this post could be even better 💗
Register Login