Archivo de la categoría: Proyectos4

Proyectos 4º

Motor

EL H BRIDGE L293D

El L293D, es un pequeño integrado que incluye dos puentes H-Bridge que podemos usar para gobernar simultáneamente dos motores CC.

L293D

Si buscáis el manual del L293D,  veréis que aunque el funciona a 5V internamente, puede conmutar tensiones de hasta 36V para tus motores.

  • Asegurarte de que no sobrepasas la tensión máxima nominal de tus motores, es problema tuyo, así que ojo que el chip lo aguanta, pero lo de tu motor es otra historia. 

El patillaje del chip es así:

Patillaje L293D

Veamos que son los diferentes pines del L293D:

  • El pin 16, Vss, son los 5V con los que alimentamos el chip y el pin 8, Vs, es la tensión con la que alimentamos el motor.
  • Los pines del 1 al 7 controlan el primer motor y los pines 9 a 15 controlan el segundo motor.
  • El pin 1, Enable1, Activa el uso del motor 1. Con un valor HIGH, el motor puede girar dependiendo del valor de I1 e I2. Si es LOW se para independientemente de los valores del resto de pines
  • Los pines 2 y 7 son los pines de control para el motor 1, e irán conectados a nuestros Arduino para controlar el sentido de giro.
  • Los pines 3 y 6 son la salida a la que se conecta el motor 1, cuya polaridad se invierte en función los valores de 2 y 7.
  • En el diagrama de arriba veis que hay pines equivalentes para el motor 2 y cuales son.
  • Los pines 4, 5,12 y 13 van a GND.

Podemos hacer una tabla para mostrar la lógica que sigue el giro del motor en función de los tres pines:

ENABLE CONTROL PIN 2 CONTROL PIN 7 MOTOR STATUS
LOW Motor parado
HIGH HIGH LOW Gira adelante
HIGH LOW HIGH Gira al revés
HIGH HIGH HIGH Motor parado
HIGH LOW LOW Motor parado

Por tanto tenemos que activar el pin enable para que el motor gire y después usamos los pines Input1 e Input2 con valore opuestos para hacer girar el motor en una dirección o en la contraria. ¿Fácil no?  Veamos cómo hacer el montaje con nuestros Arduinos.

Hagamos un resumen de conexiones

PIN L293D PIN ARDUINO DESCRIPCIÓN
1 10 Enable
2 9 Input 1
3 Motor1 +
4,5, 12,13 GND GND
6 Motor1 –
7 8 Input 2
8 Vin Alimentación del motor
16 5V Alimentación del L293D

Vamos con el esquema de protoboard.

ESQUEMA DE PROTOBOARD

 

Una vez que tenemos claras las conexiones, el diagrama de protoboard del chip L293D a nuestro Duino será algo así:

L293D

Veamos el programa que vamos a usar para controlar este motor. Vamos a usar los 3 pines de la tabla anterior. Arduino Pin 10 es el enable del Motor 1 y usamos los pines 8 y 9 para controlar el sentido de giro. Por tanto

#define E1 10  // Enable Pin for motor 1
#define I1 8     // Control pin 1 for motor 1
#define I2 9     // Control pin 2 for motor 1

void setup()
   {
        for (int i = 8 ; i<11 ; i++)                     // Inicializamos los pines
        pinMode( i, OUTPUT);
   }
void loop()
   {    digitalWrite(E1, HIGH);     // Activamos Motor1
        digitalWrite(I1, HIGH);     // Arrancamos
        digitalWrite(I2, LOW);
        delay(3000);

        digitalWrite(E1, LOW);      // Paramos Motor 1
        delay(1000);
        digitalWrite(E1, HIGH);     // Activamos Motor1

        digitalWrite(I1, LOW);      // Arrancamos con cambio de direccion
        digitalWrite(I2, HIGH);
        delay(3000);

        digitalWrite(E1, LOW);      // Paramos Motor 1
        delay(1000);
  }

El programa no puede ser más sencillo. Activamos el Enable1 para arrancar Motor1, y luego usamos I1 e I2 con valores invertidos. El motor arranca y lo paramos a los 3 segundos. A la de 1 segundo levantamos de nuevo el Enable1y al intercambiar los valores de I1 e I2 el giro del motor se inicia y en la dirección contraria.

Vivienda Sensor Temperatura

 

Vivienda Sensor Luz

Divisor de tensión

1.jpg

Listado de componentes:
· 1 LDR sensor de luz
· 1 Resistencia 5 kΩ
· 1 Resistencia 220 Ω
· 1 Diodo LED
PROGRAMA VISUALINO

1

Barrera de tren

 https://youtu.be/ceMkvShbViw
En el tutorial de hoy vamos a ver un tutorial muy sencillo donde interactuarán LEDs y un Servo.

Nuestros componentes a usar serán:
– 1 LED Rojo
– 1 LED Verde
– 1 LED Amarillo
– 1 Servo
– 3 Resistencias de 220 ohmmios
– 1 Arduino UNO
– 1 Board
– Cables

A continuación mostramos el esquema eléctrico con las respectivas conexiones:

Procederemos seguidamente al montaje de la barrera. Para ello hemos dibujado sobre un cartón el desarrollo de un poste semáforo y lo hemos recortado con algunos huecos.

En la parte frontal del semáforo hemos adaptado un agujero con las medidas de nuestro servo. Con los propios tornillos que venían en nuestro kit para adaptar las piezas en nuestro serio los usamos para fijar el servo contra el cartón.

En la parte de abajo habremos recortado unas franjas para poder ensamblar una base y que el poste gane estabilidad.

En la parte superior hemos usado una aguja de coser para realizar los agujeros por donde meteremos las patas de los LEDs.

El poste por dentro es hueco para poder esconder los cables y que el resultado final del mismo sea lo más estético posible.

Una vez ensamblado todo quedaría como la imagen de la derecha, donde hemos fijado las patas del poste, hemos insertado y colocado los LEDs y hemos colocado la barrera.

Ésta última la hemos fabricado con el mismo cartón que nos quedaba, utilizando también un tornillo para fijarla sobre el servo de la siguiente manera:

Un tornillo para fijar un extremo de la barrera sobre el eje de rotación del servo. Previamente el servo lo hemos equipado con una de las barras que vienen en nuestro kit para poder atornillar. El segundo tornillo sobre la barrera lo hemos fijado a una cierta distancia del eje de rotación por detrás de la barrera. De esta manera evitaremos que la barrera se escurra o pivote sobre el eje de rotación del servo (primer tornillo).

En el vídeo adjunto al final podremos ver el poste completo con más detalle.

Ahora os adjuntaremos y explicaremos el código:

#include <Servo.h> //Importamos la biblioteca Servo.h
#include <Arduino.h> 
Servo barrera; //Declaramos un servo y se llama barrer, con esto vamos a trabajar
int ledv = 13; //Declaramos un Led, en este caso el verde sobre el pin 13
int leda = 12;
int ledr = 11;
//Establecemos el modo de función de cada led
void setup(){  pinMode(ledv, OUTPUT);  pinMode(leda, OUTPUT);  pinMode(ledr, OUTPUT);    //Asociamos el servomotor al pin 9 del Arduino  barrera.attach(9);   }   void loop(){
//Comenzamos nuestro programa encendiendo el Led rojo ya que nuestra barrera comien//za con la posición 0.
//Esto es ajustable dado que nosotros decidimos las posiciones iniciales
digitalWrite(ledr, HIGH); //Le mandamos un angulo de 10 grados a nuestro servo por errores de funcionamiento. //Recomiendo que el inicio del mismo sea en 0 grados
barrera.write(10);
//Hacemos un delay de 5 segundo antes de mandarle la siguiente instruccion
delay (5000);
//Hacemos el programa para el cambio de rojo a verde pasando por el amarillo.
digitalWrite(ledr, LOW); digitalWrite(leda, HIGH); delay(1000); digitalWrite(leda, LOW); delay(1000); digitalWrite(leda, HIGH); delay(1000); digitalWrite(leda, LOW); delay(1000); digitalWrite(leda, HIGH); delay(1000); digitalWrite(leda, LOW); delay(1000); digitalWrite(ledv, HIGH); //Una vez ha cambiado el led a verde, cambiamos la posición de la barrera. barrera.write(100); delay(5000); digitalWrite(ledv, LOW);   }

Por último os dejamos el prometido vídeo con el funcionamiento de la barrera:

Como siempre, para cualquier duda o pregunta podéis usar el espacio de más abajo o nuestro correo electrónico.

Un saludo.