- 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++){
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;
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