Saltar la navegación

Hace un giro, se para 5 segundos y vuelve a empezar. Paso simple.

Hace un giro, se para 5 segundos y vuelve a empezar. Paso simple.

/*

Programa que realiza un giro completo del motor 28BYJ-48 en conjunto con el controlador basado en ULN2003, detiene 5 segundos y luego comienza nuevamente.

La secuencia es la de paso completo simple (wave drive) energizando de a una bobina por vez.

Alimentar Arduino con fuente de alimentacion externa de 6 a 12 Vdc.

Autor: bitwiseAr

*/

int IN1 = 2; // pin digital 2 de Arduino a IN1 de modulo controlador

int IN2 = 3; // pin digital 3 de Arduino a IN2 de modulo controlador

int IN3 = 4; // pin digital 4 de Arduino a IN3 de modulo controlador

int IN4 = 5; // pin digital 5 de Arduino a IN4 de modulo controlador

int demora = 20; // demora entre pasos, no debe ser menor a 10 ms.

void setup() {

pinMode(IN1, OUTPUT); // todos los pines como salida

pinMode(IN2, OUTPUT);

pinMode(IN3, OUTPUT);

pinMode(IN4, OUTPUT);

}

void loop() {

for (int i = 0; i < 512; i++) // 512*4 = 2048 pasos

{

digitalWrite(IN1, HIGH); // paso 1

digitalWrite(IN2, LOW);

digitalWrite(IN3, LOW);

digitalWrite(IN4, LOW);

delay(demora);

digitalWrite(IN1, LOW); // paso 2

digitalWrite(IN2, HIGH);

digitalWrite(IN3, LOW);

digitalWrite(IN4, LOW);

delay(demora);

digitalWrite(IN1, LOW); // paso 3

digitalWrite(IN2, LOW);

digitalWrite(IN3, HIGH);

digitalWrite(IN4, LOW);

delay(demora);

digitalWrite(IN1, LOW); // paso 4

digitalWrite(IN2, LOW);

digitalWrite(IN3, LOW);

digitalWrite(IN4, HIGH);

delay(demora);

}

digitalWrite(IN1, LOW); // detiene por 5 seg.

digitalWrite(IN2, LOW);

digitalWrite(IN3, LOW);

digitalWrite(IN4, LOW);

delay(5000);

}