Arduino pro MINI

Stavo ponderando l'acquisto di una 10ina di questi gingillini da sparkfun da applicare come hardware fisso a diversi progetti ... ho visto che per programmarli si usa l'FTDI esterno ... ma per alimentarli ? devo preparare una sezione di alimentazione con +5 stabilizzato ?

salve non ho mai programmato prima arduino e mi piacerebbe sapere come posso pilotare due motori passo passo facendoli muovere contemporaneamente con parametri diversi ( velocita e numero dei passi). Il mio intento è quello di costruire una avvolgitrice di filo di rame quindi le operazioni che deve compiere i due motori che sono necessari per costriuirla sono le seguenti:

  • motor 1 (fa ruotare il rocchetto quindi ruota per tutto il tempo di avvolgimento in un determinato senso)
  • motor 2 (contemporaneamente al primo motore quest’utimo si muove coprendo tutta la lunghezza del rocchetto da avvolgere in andata e poi un’altra volta al ritorno; l’operazione va ripetuta per tutti gli avvolgimenti da fare sul rocchetto.

sapreste aiutarmi sulle istruzioni da scrivere per fare questo? :slight_smile: grazie in anticipo

http://www.arduino.cc/en/Tutorial/Stepper
guarda questo

io mi ero costruito un oggetto che pilota 2 motori in DC tramite la seguente funzione.

void controllo(int a,int b, int c, int d){
  analogWrite(l293bPin[0],a);
  analogWrite(l293bPin[1],b);
  analogWrite(l293bPin[2],c);
  analogWrite(l293bPin[3],d);
}

naturalmente questo oggetto conteneva un l293b che puoi usare anche per pilotare uno stepper. Te ne serve 1 per ogni motore.
devi capire gli avvolgimenti come stanno messi e in funzione di quelli scrivere i numeri in questa funzione controllo :smiley:

il codice completo era questo

const int l293bPin[] =  {2,3,4,5};
int ledpin =13;
int time= 500;
void setup()   {
  Serial.begin(9600);
 for (int i=0;i<4;i++){  
  pinMode(l293bPin[i], OUTPUT); 
 }  
}
void loop()                     
{

avanti();
                     
}
void controllo(int a,int b, int c, int d){
  analogWrite(l293bPin[0],a);
  analogWrite(l293bPin[1],b);
  analogWrite(l293bPin[2],c);
  analogWrite(l293bPin[3],d);
}

void destrA(){
  controllo(vel(),0,0,0);// destra antiorario
 }
void sinistrO(){
  controllo(0,0,vel(),0);// sinistro orario
 }
void sinistrA(){
  controllo(0,0,0,vel());// sinistro antiorario
}
void destrO(){
  controllo(0,vel(),0,0);// destro orario
 }

void fermo(){
  controllo(0,0,0,0);// fermo
}
void avanti(){
  controllo(vel(),0,0,vel());
}
void indietro(){
  controllo(0,vel(),vel(),0);
}

int vel(){//controllo velocità in funzione della distanza misurata dal sensore
   int dist=127; 
   return dist;
}

naturalmente i comandi per te cambieranno e dovrai pilotare lo stepper alimentando l integrato L293B non con i 5 canonici volt della board ma con una tensione più alta. L’integrato sopporta 2A per un tempo limitato di 5ms.

qui c’è un video di quello che ho fatto. mi dispiace per la bassa qualità… :S spero di essermi spiegato…