Documentos de Académico
Documentos de Profesional
Documentos de Cultura
II. O BJETIVOS
Cambiar el sentido de giro con un joystick (parar en Figura 2: Puente H, construido con 4 interruptores deslizantes
posición neutral).
Al inciso anterior, con ayuda del mismo joystick contro- Los interruptores SW 1 y SW 2 pueden conmutar la tensión
lar la velocidad del motor por PWM. positiva de la batería.
Al inciso anterior, mediante la pantalla LCD, desplegar Los interruptores SW 3 y SW 4 conmutan la tensión negativa
el sentido de giro del motor y si este va en condición de la batería.
rápida, lenta o se encuentra detenido. En la figura 3 podemos ver como estos interruptores necesitan
Mediante el teclado matricial, usar un código de 2 dígitos ser accionados para, en el caso 3a hacer girar el motor en
para encender el motor, otro código distinto de 2 dígitos sentido de las manecillas del reloj y en el caso 3b hacer girar
para apagarlo y otro código de 2 dígitos para cambiar el motor en sentido antihorario.
el sentido de giro. Es necesario desplegar en la pantalla
LCD los dígitos ingresados, sentido de giro o si este El secreto de la inversión de giro del motor DC está
detenido. en que los interruptores funcionen en forma sincronizada.
Para ello usaremos transistores, que pueden funcionar como
III. M ATERIALES Y M ONTAJE E XPERIMENTAL interruptores, pueden hacer ese trabajo en forma más eficiente
y veloz, y los circuitos integrados, tales como los drivers
Materiales utilizados en la práctica:
L293D y L298N, minimizan el espacio que ocuparían los
Computadora Portátil transistores y sus resistencias de polarización, a veces hasta
Placa de Arduino UNO R3 y cable de alimentación USB incluyen los diodos de protección de los transistores.
Protoboard
1 Lic. en Física oe.fonsecauribe@ugto.mx En el caso de esta práctica, usaremos el driver L293D
2 Ing. Química Sustentable rg.munozgonzalez@ugto.mx cuyos pines se muestran en la figura 4
2
El pin 1 irá a la salida PWM de Arduino para controlar la (b) Vista externa con solo los componentes interactuables.
velocidad. Los pines 2 y 7 lograran la inversión del giro del Figura 6: Montaje del circuito en una caja de zapatos.
motor, segun la siguiente tabla:
ENABLE 1A 2A Función
H L H Giro a la derecha Como nota, y como se resalta en la figura 1, el motor lleva
H H L Giro a la izquierda una fuente separada al resto de componentes alimentados con
H L L Detención la placa Arduino UNO, esto debido a que consume mucha
H H H Detención
L X X Detención corriente, pero sus tierras están conectadas de forma común
mediante los pines del circuito integrado a tierra, ya que están
Tabla I: L = LOW, H = HIGH, X = No interesa conectados.
3
//**********PRACTICA 10**********
lcd.setCursor(0,0);
lcd.print(" Practica 10: ");
lcd.setCursor(0,1);
lcd.print("Control motor DC");
(a) Valores del Joystick de los ejes X y Y en la entrada analógica de delay(500);
arduino. lcd.setBacklight(1);
delay(500);
lcd.setBacklight(0);
delay(500);
lcd.setBacklight(1);
delay(500);
lcd.setBacklight(0);
delay(500);
lcd.setBacklight(1);
lcd.clear();
lcd.setCursor(0,0);
lcd.print(" Joystick ");
delay(500);
lcd.clear();
} }
if(Vel > 170){
void loop() { lcd.print(" Rapido");
Joy = analogRead(A0); }
// Joystick en medio
while (Joy > 494 && Joy < 530){ lcd.write(byte(1));
// Motor detenido y a minima velocidad
digitalWrite(in1, LOW); lcd.setCursor(0,1);
digitalWrite(in2, LOW); lcd.print("Velocidad: ");
analogWrite(enA, 0); lcd.print(Vel);
lcd.setCursor(0,0); delay(50);
lcd.print("Detenido"); Joy = analogRead(A0);
delay(50);
Joy = analogRead(A0); }
} lcd.clear();
lcd.clear(); }
lcd.setCursor(0,0);
lcd.write(byte(0));
lcd.setCursor(0,1);
lcd.print("Velocidad: ");
lcd.print(Vel); (b) Joystick a velocidad rápida y a la izquierda
delay(50);
Joy = analogRead(A0);
}
lcd.clear();
// Joystick a la derecha
digitalWrite(in1, HIGH);
digitalWrite(in2, LOW);
(c) Joystick entre 494 y 530, detenido
while (Joy > 530){
Figura 8: Fotografías del circuito, cumpliendo el objetivo del
Vel = abs(541 - Joy); uso del joystick
Vel = map(Vel, 1, 494, 0, 255);
analogWrite(enA, Vel);
lcd.print("Motor Apagado");
analogWrite(enA, 0);
digitalWrite(in1, LOW);
digitalWrite(in2, LOW);
delay(1000);
Indice = 0;
lcd.clear();
On = false;
memset(Num,0,sizeof(Num));
}
if (!strcmp(Num,Izq) && On == true){ (a) Inicio del uso del teclado
lcd.setCursor(0,1);
lcd.print("Dir Izquierda");
digitalWrite(in1, LOW);
digitalWrite(in2, HIGH);
delay(1000);
Indice = 0;
lcd.clear();
memset(Num,0,sizeof(Num));
}
if (!strcmp(Num,Der) && On == true){
lcd.setCursor(0,1); (b) Al presionar A, podemos introducir los códigos.
lcd.print("Dir Derecha");
digitalWrite(in1, HIGH);
digitalWrite(in2, LOW);
delay(1000);
Indice = 0;
lcd.clear();
memset(Num,0,sizeof(Num));
}
if (strcmp(Num,Enc)&&strcmp(Num,Apg)){
Indice = 0; (c) Al presionar "B", podemos introducir la velocidad deseada para la
lcd.clear(); dirección antes introducida.
memset(Num,0,sizeof(Num));
}
if (strcmp(Num,Izq)&&strcmp(Num,Der)
&&On==false){
Indice = 0;
lcd.clear();
memset(Num,0,sizeof(Num));
}
[7] Convert char array to single int? (2011, May 23). Stack Over-
(a) Código "87"para cambiar el motor a la dirección derecha con la flow. https://stackoverflow.com/questions/6093414/convert-char-array-to-
velocidad ya establecida antes. single-int
V. C ONCLUSIONES
V-A. Fonseca Uribe Oswaldo Emmanuel
Esta práctica integradora nos sirve no solo para combinar
varios elementos ya introducidos anteriormente, sino que
podemos aplicarlos en algo tan interesante como la polaridad
de un motor a traves de usar un circuito integrado, como el
L239D, o el reto de un montaje como lo fue en la caja, ya que
el uso de los microcontroladores implica la implementación
en interfaces sencillas y amables a cualquier usuario, ya que
su finalidad es la de simplificar la vida con ellos.
R EFERENCIAS
[1] Arduino. (2022). Arduino Reference.
https://www.arduino.cc/reference/en/?}_gl=1*11hrmjr*_ga*MTU0MDY3
NzA5MC4xNjYwNzAwNDA2*_ga_NEXN8H46L5*MTY2MDcwMDQw
NS4xLjEuMTY2MDcwMDQyMC40NS4wLjA.
[2] A Guide to Arduino & the I2C Protocol (Two Wire). (s.f.).
Arduino Documentation. Recuperado 21 de septiembre de 2022,
de https://docs.arduino.cc/learn/communication/wire
[3] The complete table of ASCII characters. (n.d.). The Complete Table of
ASCII Characters, Codes, Symbols and Signs. Retrieved October 19,
2022, from https://theasciicode.com.ar