Motor pas a pas: integració amb Arduino

Motor pas a pas

Els motors elèctrics són cada vegada més demandats, d'entre ells potser destaquen els que funcionen amb corrent continu, dels més populars dins dels projectes dels makers amb Arduino, ja que aporten mobilitat. Entre ells, destacar els motors pas a pas que es fan servir per a múltiples aplicacions, especialment per la robòtica, com actuadors, etc.

Cotxes elèctrics, petits robots autònoms, aplicacions industrials per a l'automatització, aparells de repetició de moviments, etc. El motiu que els servomotors i motors pas a pas siguin tan bons per a aquestes aplicacions és que poden realitzar moviments lents o ràpids, però sobretot controlats. A més, els accionaments són continus per a aplicacions en les que es requereixen moltes parades i arrencades amb molta precisió.

Tipus de motors elèctrics

Dins dels motors elèctrics es poden destacar els següents tipus:

  • Motor DC o CC: els motors de corrent continu funcionen amb aquest tipus de corrent, com el seu propi nom indica. Poden anar des d'uns mW de potència fins a alguns MW en els més potents i grans, que s'usen per a aplicacions industrials, vehicles, ascensors, cintes transportadores, ventiladors, etc. Es pot regular la seva velocitat de gir (RPM) i parell de força aplicada segons els alimentis.
  • Motor AC o CA (asíncron i de rotor bobinat): Funcionen amb corrent altern, amb un rotor molt específic que funciona gràcies a les fases que aporta aquest tipus de corrent per generar el gir mitjançant repulsió magnètica de l'electroimant de manera similar a com ho fan els de CC. Són molt barats i arriben fins a diversos kW. Es poden regular en velocitat de gir, però els elements de regulació són més cars que els de CC. Aquests se solen utilitzar per a electrodomèstics.
  • Motor pas a pas: També coneguts com steppers, són similars en molts sentits als de CC, però amb velocitats de gir i potències baixes. Aquí el que destaca és el posicionament de l'eix, és a dir, la precisió per posar-los en una posició concreta. Es pot controlar molt el seu angle de gir i velocitat, de manera que se solien usar en disqueteres, en discos durs (HDD), robots, automatització de processos, etc.
  • Servomotor: Es pot dir que és una evolució de l'motor pas a pas, treballant amb petites potències i velocitats que van fins als 7000 RPM en alguns casos. Aquest motor incorpora una caixa reductora d'engranatges i un circuit de control. Tenen la mateixa precisió per col·locar-se en una posició com els pas a pas i són molt estables en tant a el parell de força aplicats, el que els fa ideals per a alguns robots i aplicacions industrials.

Motors pas a pas i servomotors

rotor i estator

Ja saps què són aquests dos tipus de motor electrònic, però m'agradaria dir alguna cosa més sobre els steppers. El gir que realitzen no ho fan de forma contínua, sinó en petits passos, d'aquí el seu nom. El rotor (part que gira), té forma de roda dentada, mentre que l'estator (part que no gira) es compon d'electroimants polaritzats de manera intercalada. D'aquesta manera, quan un es «activa» dels seus costats no ho estan, el que atrau la dent de l'rotor cap a ell, permetent l'avanç precís pel qual es caracteritzen.

drv8825
Article relacionat:
DRV8825: el controlador per a motors pas a pas

Depenent dels dents de l'rotor, Es podrà avançar més o menys en el gir. Si tens més dents, més passos es necessiten per completar una volta, però els passos seran més curts, de manera que serà un motor més precís. Si tens poques dents, els passos seran salts més bruscos, sense tanta precisió. Per tant, els passos que haurà de donar un motor pas a pas per completar una volta, dependrà dels passos angulars.

aquests passos angulars estan estandarditzats, Encara que pots trobar alguns motors que tenen pas no estàndard. Els angles solen ser: 1.8º, 5.625º, 7.5º, 11.25º, 18º, 45º, i 90º. Per calcular quants passos necessita un motor pas a pas per completar un gir complet o volta (360º), només has de dividir. Per exemple, si tens un motor pas a pas de 45º, hauries 8 passos (360/45 = 8).

gir amb polarització (fase)

Dins d'aquests motors tens els unipolars (més populars), amb 5 o 6 cables, o els bipolars, amb 4 cables. Segons això, es realitzaran unes o altres seqüències de polaritzacio fent passar corrent per les seves bobines:

  • Polarització per als bipolars:
Pas terminal A Terminal B terminal C terminal D
1 +V -V +V -V
2 +V -V -V +V
3 -V +V -V +V
4 -V +V +V -V
  • Per als unipolars:
Pas bobina A bobina B bobina C bobina D
1 +V +V 0 0
2 0 +V +V 0
3 0 0 +V +V
4 +V 0 0 +V

El funcionament en ambdós casos és igual, anar polaritzant les bobines per anar atraient el rotor a on vols que es posicioni l'eix. si vols mantenir-lo en una posició, hauràs de mantenir la polarització per a aquesta posició i llest. I si vols que avanci, polarizas a el següent imam i donarà un altre pas, i així successivament ...

Si utilitza un servomotor, Ja saps que bàsicament és un motor pas a pas, per tant, tot el que s'ha dit funciona també per a ells. L'única cosa que inclou aquests engranatges reductors per obtenir molts més passos per gir i així tenir una precisió molt més gran. Per exemple, pots trobar un motor de 8 passos per gir que si tingués una reductora de 1:64, ja que vol dir que cada pas d'aquests vuit se subdivideix en 64 passos més petits, el que donaria un màxim de 512 passos per volta. És a dir, cada pas seria d'uns 0.7º.

l298n
Article relacionat:
L298N: mòdul per controlar motors per Arduino

Afegir també que hauries de fer servir algun amb controlador amb el qual controlar la polarització, velocitat, etc., amb, per exemple, H-Bridge. Alguns models són els L293, ULN2003, ULQ2003, etc.

On comprar

Pots comprar-lo en diversos llocs en línia o en botigues d'electrònica especialitzades. A més, si ets principiant, pots utilitzar kits en els quals s'inclou tot el necessari i fins i tot la placa Arduino UNO i manual per començar a experimentar i crear els teus projectes. En aquests kits s'inclou tot el necessari, des del propi motor, els controladors, plaques, protoboard, etc.

Exemple de motor pas a pas amb Arduino

Arduino amb motor pas a pas i controlador

Per acabar, mostrar un exemple pràctic amb Arduino, Usant un controlador ULN2003 i un motor pas a pas 28BYJ-48. És molt senzill, però serà suficient perquè comencis a familiaritzar-te amb el funcionament perquè comencis a fer algunes proves i veure com es comporta ...

Com s'aprecia en l'esquema de connexionat, Les bobines A (IN1), B (IN2), C (IN3) i D (In4) de l'motor s'han assignat a les connexions 8, 9, 10, i 11 respectivament de la placa Arduino. D'altra banda, la placa de l'driver o controlador l'has de alimentar a les seves pins de 5-12V (a l'GND i 5V d'Arduino) amb el voltatge adequat perquè aquesta al seu torn alimenti a el motor connectat al connector de plàstic blanc que té aquest driver o controlador.

Aquest motor 28BYJ-48 és un motor pas a pas de tipus unipolar amb quatre bobines. Per tant, perquè et facis una idea de com treballa, pots enviar des de la placa Arduino valors HIGH (1) o LOW (0) a les bobines de la següent manera per als passos:

Pas bobina A bobina B bobina C bobina D
1 ALTRE ALTRE BAIX BAIX
2 BAIX ALTRE ALTRE BAIX
3 BAIX BAIX ALTRE ALTRE
4 ALTRE BAIX BAIX ALTRE

Quant al sketch o codi necessari per programar el seu moviment, Ja que seria el següent usant IDE Arduino (Modifica-i experimenta per provar com s'altera el moviment):

// Definir pines conectados a las bobinas del driver
#define IN1  8
#define IN2  9
#define IN3  10
#define IN4  11

// Secuencia de pasos a par máximo del motor. Realmente es una matriz que representa la tabla del unipolar que he mostrado antes
int paso [4][4] =
{
  {1, 1, 0, 0},
  {0, 1, 1, 0},
  {0, 0, 1, 1},
  {1, 0, 0, 1}
};

void setup()
{
  // Todos los pines se configuran como salida, ya que el motor no enviará señal a Arduino
  pinMode(IN1, OUTPUT);
  pinMode(IN2, OUTPUT);
  pinMode(IN3, OUTPUT);
  pinMode(IN4, OUTPUT);
}

// Bucle para hacerlo girar
void loop()
{ 
    for (int i = 0; i < 4; i++)
    {
      digitalWrite(IN1, paso[i][0]);
      digitalWrite(IN2, paso[i][1]);
      digitalWrite(IN3, paso[i][2]);
      digitalWrite(IN4, paso[i][3]);
      delay(10);
    }
}


Sigues el primer a comentar

Deixa el teu comentari

La seva adreça de correu electrònic no es publicarà. Els camps obligatoris estan marcats amb *

*

*

  1. Responsable de les dades: Miguel Ángel Gatón
  2. Finalitat de les dades: Controlar l'SPAM, gestió de comentaris.
  3. Legitimació: El teu consentiment
  4. Comunicació de les dades: No es comunicaran les dades a tercers excepte per obligació legal.
  5. Emmagatzematge de les dades: Base de dades allotjada en Occentus Networks (UE)
  6. Drets: En qualsevol moment pots limitar, recuperar i esborrar la teva informació.