Controlant motors amb Arduino

Com ja sabeu els motors de corrent continua només tenen dos cables, i quan es fa passar corrent per aquests (un de positiu i un de negatiu) el motor gira; així de senzill. El fet és que com més corrent apliquem al motor, més ràpid girarà; i depenent de per on apliquem el voltatge, girarà cap a un sentit o cap a un altre. Doncs bé en aquest projecte s'aprendrà a poder controlar el sentit de gir d'un motor i la velocitat d'un motor d'una manera molt fàcil. L'aparell que utilitzarem en aquest projecte és un transistor. Aquest aparell serveix per a donar una senyal de sortida que és diferent a la senyal d'entrada. Per exemple, en aquest projecte per tal de controlar quan funciona el motor i quan no s'utilitzen 5V, que és amb el que treballa la placa Arduino, però per tal de que el motor funcioni s'en necessiten 9. Per tant utilitzarem el transistor per tal de canviar aquests 5V per  9V. Aquest aparell podriem dir que el que realment fa és una regla de tres entre voltatges diferents. Per exemple si l'Arduino diu que s'han d'utilitzar 5V, per a fer girar el motor se n'utilitzaran 9; i si diu que se n'han d'utilitzar 2,5V, se n'utilitzaran 4,5 per a fer girar el motor. És tot proporcionalitat entre els dos voltatges. Els transistors tenen sempre 3 pins i en podem trobar de moltes classes, però de la classe utilitzada per a aquest projecte es divideixen en dos tipus: NPN i PNP. Els NPN són aquells que el pin del mig és el del positiu i els altres dos del negatiu, i els PNP són els que el pin del mig és el del negatiu i els altres dos els del positiu. L'utilitzat en aquest projecte és NPN. Alhora d'utilitzar motors DC també és recomenable utilitzar diodes. Aquests el que fan és evitar l'efecte d'inducció en el motor. Per a connectar-lo simplement s'ha de connectar al revés (el positiu al negatiu, i el negatiu al positiu).





Una vegada vista l'explicació del projecte, anem a veure primer com fer el circuit elèctric per a poder controlar el sentit de gir d'un motor. Els materials que necessitem són:

  • 1xArduino UNO
  • 1xProtoboard
  • 1xPila de 9V
  • 1xCable per a poder connectar la pila de nou volts a un pin positiu i a un de negatiu
  • 1xPulsador
  • 1xresistència de 10K ohms
  • 1xtransistor NPN
  • 1xdiode
  • 1xmotor DC
  • cables



Una vegada realitzat el circuit elèctric, és hora de fer el programa. Aquest és el següent: 

const int PindelPulsador=2;       //Definim el pin a on va connectat el pulsador
const int PindelMotor=9;          //Definim el pin a on va connectat el motor
int EstadodelPulsador=0;          //Crem una variable per a saber com està el pulsador
void setup() {
  
pinMode(PindelPulsador,INPUT);    //Li diem a la placa que el pin del pulsador és d'entrada
pinMode(PindelMotor,OUTPUT);      //Li diem a la placa que el pin del motor és de sortida
}

void loop() {

  //Li diem a la placa que el valor de la variable EstadodelPulsador
  //és el que la placa llegeix per el pin d'aquest
  EstadodelPulsador=digitalRead(PindelPulsador);

  /*A continuació li diem a la placa que si el pulsador està pulsat, 
   que per el pin del pulsador (2) doni corrent; i si el pulsador no
   està pulsar, no doni corrent per el pin del pulsador*/
   
  if(EstadodelPulsador==HIGH){
  digitalWrite(PindelPulsador,HIGH);
  }
  else{
    digitalWrite(PindelMotor,LOW);
  }
  }

Fins aquí és per a poder controlar el sentit de gir del motor, amb Arduino. Aquest circuit funciona de tal manera que sempre està el motor en continu funcionament i quan el pulsador està clicat, gira cap al sentit contrari. Com sempre podeu descarregar l'arxiu en el botó inferior.





Una vegada vist com controlar el sentit de gir, anem a veure com controlar la velocitat. Per tal de fer-ho, no cal que desmontem tot el circuit, si més no si que cal que fem alguns canvis en aquest. Doncs bé, el nou circuit ha de quedar de la següent manera utiltizant aquests materials:

  • 1xArduino UNO
  • 1xProtoboard
  • 1xpotenciòmetre
  • 1xtransistor NPN
  • 1xdiode
  • 1xmotor DC
  • 1xpila 9V
  • 1xCable per a poder connectar la pila de nou volts a un pin positiu i a un de negatiu
  • cables



Una vegada realitzat el circuit, és qüestió de fer el següent programa:

const int potenciometre=A0;       //Definim el pin a on va connectat el poteniòmetre
const int PindelMotor=9;          //Definim el pin a on va connectat el motor
int valorPotenciometre=0;         //Creem una variable per guardar el valor del potenciòmetre
void setup() {
  
pinMode(PindelMotor,OUTPUT);      //Li diem a la placa que el pin dle motor és de sortida
}

void loop() {

  /*A continuació li diem a la placa que el que llegeixi del que dona el potenciòmetre,
  ho guardi en la variable valorPotenciometre. Tot just després, per el pin a on està 
  connectat el motor treiem el que es llegeix per el potenciòmetre però 4 vegades menys.
  El fet de dividir-ho entre 4, és degut a que el que pot llegir del potenciòmetre pot arribar
  a ser 1023, però el motor gira a velocitat màxima just a 255 (1023/4=255)*/
  valorPotenciometre=analogRead(A0);

analogWrite(9,valorPotenciometre/4);
  }

Una vegada realitzat el programa és qüestió de provar-lo. Per tal de controlar la velocitat de gir del motor es fa amb el poteniòmetre. En el següent botó podeu descarregar l'arxiu Arduino.




Cap comentari:

Publica un comentari a l'entrada

↓↓↓ Si vols deixar un comentari fes-ho aquí ↓↓↓