sábado, 26 de agosto de 2017

Stepper motor 28BYJ48 vai e volta

Neste segundo post sobre o stepper 28BYJ48 a sketch apresentada implementou a ida e a volta do motor como funções.






 sketch:

int motorD1 = 2;    // Blue   - 28BYJ48 pin 1
int motorD2 = 3;    // Pink   - 28BYJ48 pin 2
int motorD3 = 4;    // Yellow - 28BYJ48 pin 3
int motorD4 = 5;    // Orange - 28BYJ48 pin 4
                    // Red    - 28BYJ48 pin 5 (VCC)


int lookupD[8] = {B01000, B01100, B00100, B00110, B00010, B00011, B00001, B01001};


void goForward();
void goReverse();
void setDOUT(int out);

void setup() 
{
  pinMode(motorD1, OUTPUT);
  pinMode(motorD2, OUTPUT);
  pinMode(motorD3, OUTPUT);
  pinMode(motorD4, OUTPUT);
  Serial.begin(9600);
  Serial.println("Hello, world! 28BYJ48 acordou!");
}


void loop() {
  goForward();
  delay(1000);
  goReverse();
  delay(1000);
}


void goForward()
{
    Serial.println("forward...");
    for( int i=0; i < 4096 ; i++){
      setDOUT(i%8);
      delay(1);
   }
}

void goReverse()
{
    Serial.println("reverse...");
    int j= 4096;
    for( int i=0; i < 4096 ; i++, j--){
      setDOUT(j%8);
      delay(1);
   }
}


void setDOUT(int out)
{
  int *p = lookupD;   
  digitalWrite(motorD1, bitRead(p[out], 0));
  digitalWrite(motorD2, bitRead(p[out], 1));
  digitalWrite(motorD3, bitRead(p[out], 2));
  digitalWrite(motorD4, bitRead(p[out], 3));
}


Nenhum comentário:

Postar um comentário