martedì 12 luglio 2016

Raspberry Pi - Motore Passo Passo

LISTA DEI MATERIALI:
  • Raspberry Pi
  • Breadboard
  • L293D
  • Stepper
  • Millefori opzionale se non volete usare Breadboard

Schema e parti Hardware


Software

#include wiringPi.h
#include stdio.h

#define enable_pin 1
#define coil_A_1_pin 2
#define coil_A_2_pin 0
#define coil_B_1_pin 4
#define coil_B_2_pin 5

void init(){
    pinMode(enable_pin, OUTPUT);
    pinMode(coil_A_1_pin, OUTPUT);
    pinMode(coil_A_2_pin, OUTPUT);
    pinMode(coil_B_1_pin, OUTPUT);
    pinMode(coil_B_2_pin, OUTPUT);
   
    digitalWrite(enable_pin, 0);
}

void setStep(int w1,int w2,int w3,int w4){
    digitalWrite(coil_A_1_pin, w1);
    digitalWrite(coil_A_2_pin, w2);
    digitalWrite(coil_B_1_pin, w3);
    digitalWrite(coil_B_2_pin, w4);       
}

void avanti(int pausa, int steps){
    int i;
    for(i=0;i minore steps;i++){

        setStep(1,0,1,0);
        delay(pausa);
        setStep(0,1,1,0);
        delay(pausa);
        setStep(0,1,0,1);
        delay(pausa);
        setStep(1,0,0,1);
        delay(pausa);   
        printf("Step: %d \n",i);
               
    }
}

void indietro(int pausa, int steps){
    int i;
    for(i=0;
i minore steps;i++){

        setStep(1,0,0,1);
        delay(pausa);   
        setStep(0,1,0,1);
        delay(pausa);   
        setStep(0,1,1,0);
        delay(pausa);   
        setStep(1,0,1,0);
        delay(pausa);  
 

        printf("Step: %d \n",i);
    }   
}

int main(void){
    if(wiringPiSetup() == -1){ //when initialize wiring failed,print messageto screen
        printf("setup wiringPi failed !");
        return 1;
    }
       
    init();

    int pp;
    int ss;
    int vv;
   
    while(1){
       
               
        printf("Inserisci la pausa: ");
        scanf("%d",&pp);
        printf("Inserisci i passi: ");
        scanf("%d",&ss);
        printf("Avanti = 1 Indietro = 2: ");
        scanf("%d",&vv);
   
        digitalWrite(enable_pin, 1);
   
    if(vv==1){
        avanti(pp,ss);
    }else{
        indietro(pp,ss);
    }
       
    }
    return 0;
}


 

Fonte: Link

Nessun commento:

Posta un commento