Molí motoritzat 2

En aquest projecte, modificarem el nostre molí per poder fer-lo girar en un sentit o en un altre. Caldrà fer servir un circuit integrat anomenat “Puente H” per invertir la polaritat del motor.

Aquest molí doncs haurà de ser capaç de:

  1. Girar en sentit horari o antihorari, escollint la funció amb un polsador.
  2. Encendre o apagar el molí amb un 2n polsador.
  3. Controlar la velocitat del motor amb un potenciòmetre.

PONT H

Els Ponts H són un tipus de components coneguts amb el nom de circuits integrats. Els circuits integrats són components que tenen en el seu interior circuits molt complexos però que ocupen molt poc espai dins del
seu encapsulat. Aquests circuits integrats ajuden a simplificar els circuits més complexos al poder-los col·locar com a components individuals que es poden reemplaçar.

Per exemple, el pont H que és el que farem servir en aquest projecte disposa d’un determinat nombre de transistors en el seu interior. En cas de que volgués reproduir el circuit intern d’aquest pont H necessitariem una altra placa de proves per muntar en ella tots els components que conté aquest circuit integrat.

En un circuit integrat es pot accedir als seus circuits interns a través dels terminals que tenen a banda i banda.

Existeixen diferents tipus de circuits integrats amb diferent nombre de terminals, no tots aquests terminals s’usaran en cada circuit.
MUNTATGE

  1. Els polsadors i el potenciòmetre es munten independentment, cadascun amb la seva resistència de 10k (els polsadors) i la connexió amb el pin d’Arduino.
  2. Col·loquem el pont H amb la part arrodonida cap amunt per a que els terminals coincideixin amb l’esquema.
    1. Connecta el terminal 1 al pin número 9 d’Arduino. Aquest és el terminal d’activació del circuit integrat. Quan rep una tensió de +5V fa que el motor funcioni, en canvi quan no rep tensió fa que el motor es pari. S’usarà aquest terminal per variar la velocitat del motor.
    2. Connecta el terminal número 2 al pin digital 3 de Arduino.
    3. Connecta el terminal 7 al pin digital 2. Aquests terminals s’usaran per a comunicar-se amb el pont en H, indicant a quina direcció haurà de girar el motor. Si el pin 3 està LOW i el pin 2 està
      HIGH, el motor girarà en una direcció. Si el pin 2 està LOW i el pin 3 està HIGH el motor
      girarà en la direcció contrària. Si aquests dues terminals estan en estat LOW o en estat
      HIGH alhora el motor pararà de girar.
    4. Aquest circuit integrat rep la seva tensió d’alimentació de +5V mitjançant el terminal 16.
      Els terminals 4 i 5 es connecten els dos a GND.
    5. Connecta el motor als terminals. Aquestes dues terminals encendran o apagaran el motor depenent dels senyals que rebi el circuit integrat en els terminals 2 i 7.
    6. Connecta el terminal 8 del pont en H a la columna on es connecta el cable d’alimentació positiva de la pila. Aquest és el terminal a través del qual el circuit integrat alimenta el motor quan funciona. Assegura’t de que les alimentacions de +9V i de +5V no estan juntes (error de connexió). Només les masses de totes dues alimentacions hauran d’estar connectades entre si.

 

PROGRAMACIÓ

//Creem variables i constants pels pins i per guardar les lectures dels sensors i poder comparar els seus estats actuals amb els anteriors.

const int control1 = 2;

const int control2 = 3;

const int direcciogir = 4;

const int onoff = 5;

const int activacio = 9;

const int potenciometre = A0;

int pulsadorinici=0;

int pulsadoriniciprevi=0;

int pulsadordireccio=0;

int pulsadordireccioprevia=0;

 

//També necessitarem unes variables per controlar el motor.

int activarmotor=0;

int velocitatmotor=0;

int direcciomotor=0;

 

//Fem els pinModes de sempre al setup()

pinMode (direcciogir, INPUT);

pinMode (onoff, INPUT);

pinMode (control1, OUTPUT);

pinMode (control2, OUTPUT);

pinMode (activacio, OUTPUT);

 

//Apagar el motor

digitalWrite(activacio,LOW);

 

//Llegir els estat dels pulsadors i del potenciòmetre, el qual relacionarem amb la velocitat del motor (loop).

pulsadorinici=digitalRead(onoff);

delay(10);

pulsadordireccio=digitalRead(direcciogir);

velocitatmotor=analogRead(potenciometre)/4;

 

//Comprovar si els pulsadors han estat premuts.

if(pulsadorinici != pulsadoriniciprevi){

if(pulsadorinici==HIGH){

activarmotor = !activarmotor;

}

}

 

//Verificar si la direcció ha canviat

if (pulsadordireccio != pulsadordireccioprevi){

if(pulsadordireccio ==HIGH){

direcciomotor = !direcciomotor;

}

}

 

//Canviar els pins per fer funcionar el motor en la direcció determinada

if (direcciomotor ==1){

digitalWrite(control1, HIGH);

digitalWrite(control2, LOW);

}

else{

digitalWrite(control1, LOW);

digitalWrite(control2, HIGH);

}

 

//Variar la velocitat del motor quan aquest està en funcionament.

if (activarmotor ==1){

analogWrite(activacio,velocitatmotor);

}

else{

analogWrite (activacio,0);

}

 

//Guardar l’estat actual dels pulsadors pel següent cicle del bucle

pulsadordireccioprevi = pulsadordireccio;

pulsadoriniciprevi = pulsadorinici;

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.