Estoy intentando conectar con una placa de controlador de motor paso a paso ( ST330-v3 - página 7)
Diagrama de tiempo de la hoja de datos:
Laplacanecesitaunasecuenciadeseñales,queintentécrearconestecódigo.peronoestásegurodesielcódigosigueeltiemporequeridoosedescribeenlahojadedatos.
Esporesoqueesperoquecualquieradeustedespuedarevisarelcódigoyversielmomentoseajustaono...
Aquíestáelcódigo:
archivo.h:
/*Class:stepper_motor*Info:containsthesetup,andprimaryinterfacetocontrol*thesteppermotor**stepper_motor():constructor-setuptheconnectiontothecontrolboard*voidstep_pwm():Movesthetilt-usesthebooltodeterminethedirection.*boolalive_bool:Iseitherhigh(1)orlow(0),usedforthealivevoid.*/#ifndefstepper_motor_h#definestepper_motor_h#include"Arduino.h"
#include "pins_arduino.h"
#define step_pin D0
#define dir_pin D1
#define en_pin D2
class stepper_motor
{
public:
stepper_motor();
void alive();
void init_communication();
void step_pwm();
private:
bool alive_bool;
bool position_bool;
};
#endif
archivo .cpp
#include "stepper_motor.h"
stepper_motor::stepper_motor()
{
pinMode(BUILTIN_LED,OUTPUT);
pinMode(step_pin,OUTPUT);
pinMode(dir_pin,OUTPUT);
pinMode(en_pin,OUTPUT);
alive_bool = true;
position_bool = true;
}
void stepper_motor::alive()
{
if(alive_bool == true)
{
digitalWrite(BUILTIN_LED,HIGH);
alive_bool = false;
delay(2000);
}
else if(alive_bool == false)
{
digitalWrite(BUILTIN_LED,LOW);
alive_bool = true;
delay(2000);
}
}
void stepper_motor::init_communication()
{
digitalWrite(step_pin, HIGH);
digitalWrite(dir_pin,HIGH);
digitalWrite(en_pin,LOW);
delay(0.01); //t1
digitalWrite(step_pin,HIGH);
digitalWrite(dir_pin,HIGH);
digitalWrite(en_pin,HIGH);
delay(0.005); // t2
digitalWrite(step_pin,HIGH);
digitalWrite(dir_pin,LOW);
digitalWrite(en_pin,HIGH);
delay(0.005); //t4
digitalWrite(step_pin,LOW);
digitalWrite(dir_pin,LOW);
digitalWrite(en_pin,HIGH);
delay(0.0025); //t3
digitalWrite(step_pin,HIGH);
digitalWrite(dir_pin,LOW);
digitalWrite(en_pin,HIGH);
delay(0.0025);
digitalWrite(step_pin,LOW);
digitalWrite(dir_pin,LOW);
digitalWrite(en_pin,HIGH);
delay(0.0025);
digitalWrite(step_pin,HIGH);
digitalWrite(dir_pin,LOW);
digitalWrite(en_pin,HIGH);
delay(1000);
digitalWrite(step_pin,HIGH);
digitalWrite(dir_pin,HIGH);
digitalWrite(en_pin,HIGH);
delay(0.005);
digitalWrite(step_pin,LOW);
digitalWrite(dir_pin,HIGH);
digitalWrite(en_pin,HIGH);
delay(0.0025);
digitalWrite(step_pin,HIGH);
digitalWrite(dir_pin,HIGH);
digitalWrite(en_pin,HIGH);
delay(0.0025);
digitalWrite(step_pin,LOW);
digitalWrite(dir_pin,HIGH);
digitalWrite(en_pin,HIGH);
delay(0.0025);
digitalWrite(step_pin,HIGH);
digitalWrite(dir_pin,HIGH);
digitalWrite(en_pin,HIGH);
}
El init_communication () está aquí en cuestión.
Gracias de antemano