Arduino Uno es una placa electrónica basada en el microcontrolador
ATmega328. Cuenta con 14 entradas/salidas digitales, de las cuales 6 se pueden utilizar como salidas PWM (Modulación por ancho de pulsos) y otras 6 son entradas analógicas. Además, incluye un resonador cerámico de 16 MHz, un conector USB, un conector de alimentación, una cabecera ICSP y un botón de reseteado. La placa incluye todo lo necesario para que el microcontrolador haga su trabajo, basta conectarla a un ordenador con un cable USB o a la corriente eléctrica a través de un transformador.
Características técnicas de Arduino Uno r3
Microcontrolador: ATmega328 Voltage: 5V Voltage entrada (recomendado): 7-12V Voltage entrada (limites): 6-20V Digital I/O Pins: 14 (de los cuales 6 son salida PWM) Entradas Analogicas: 6 DC Current per I/O Pin: 40 mA DC Current parar 3.3V Pin: 50 mA Flash Memory: 32 KB (ATmega328) de los cuales 0.5 KB son utilizados para el arranque SRAM: 2 KB (ATmega328) EEPROM: 1 KB (ATmega328) Introducción general a una placa Arduino Mirando a la placa desde la parte de arriba, este es el esquema de lo que puedes ver (los componentes de la placa con los que puedes interactuar en su uso normal están resaltados):
Empezando según las agujas del reloj:
Terminal de referencia analógica (naranja) Tierra digital (verde claro) Terminales digitales 2-13 (verde) Terminales digitales 0-1/ E/S serie - TX/RX (verde oscuro) - Estos pines no se pueden utilizar como e/s digitales (digitalRead() y digitalWrite()) si estás utilizando comunicación serie (por ejemplo Serial.begin). Botón de reinicio - S1 (azul oscuro) Programador serie en circuito "In-circuit Serial Programmer" o "ICSP" (azul celeste). Terminales de entrada analógica 0-5 (azul claro) Terminales de alimentación y tierra (alimentación: naranja, tierras: naranja claro) Entrada de alimentación externa (9-12VDC) - X1 (rosa) Selector de alimentación externa o por USB (coloca un jumper en los dos pines mas cercanos de la alimentación que quieras) - SV1 (púrpura). En las versiones nuevas de Arduino la selección de alimentacion es automática por lo que puede que no tengas este selector. USB (utilizado para subir programas a la placa y para comunicaciones serie entre la placa y el ordenador; puede utilizarse como alimentación de la placa) (amarillo). Entradas y salidas digitales/analógicas Un sistema electrónico es cualquier disposición de componentes electrónicos con un conjunto definido de entradas y salidas. Una placa Arduino, por tanto, puede pensarse de forma simplificada como un sistema que acepta información en forma de señal de entrada, desarrolla ciertas operaciones sobre ésta y luego produce señales de salida. Justamente, una de las opciones que hacen más potente a Arduino son sus entradas/salidas digitales. ¿Entonces por qué hablamos de analógicas? En los sistemas electrónicos, una magnitud física variable se representa generalmente mediante una señal eléctrica que varía de manera tal que describe esa magnitud. Por lo general, se hace referencia a las señales continuas como señales analógicas, mientras que asociamos las señales discretas a señales digitales: el ejemplo más claro es el de las señales binarias, donde la señal sólo pueden tomar dos niveles, 0 o 1. Arduino incorpora terminales digitales (señales discretas) pero de tal forma que tenemos un gran abanico de valores con los que trabajar (por ejemplo, 255 valores de luz en un fotosensor, siendo 0 ausencia de luz y 255 el máximo valor lumínico). Terminales Digitales Las terminales digitales de una placa Arduino pueden ser utilizadas para entradas o salidas de propósito general a través de los comandos de programación pinMode(), digitalRead(), y digitalWrite(). Cada terminal tiene una resistencia pull-up que puede activarse o desactivarse utilizando DigitalWrite() (con un valor de HIGH o LOW, respectivamente) cuando el pin esta configurado como entrada. La corriente máxima por salida es 40 mA. Serial: 0 (RX) y 1 (TX). Utilizado para recibir (RX) y transmitir (TX) datos serie TTL. En el Arduino Diacemila, estas terminales están conectadas a las correspondientes patas del circuito integrado conversor FTDI USB a TTL serie. En el Arduino BT, están conectados al las terminales correspondientes del modulo Bluetooth WT11. En el Arduino Mini y el Arduino LilyPad, están destinados para el uso de un módulo serie TTL externo (por ejemplo el adaptador Mini-USB). Interruptores externos: 2 y 3. Estas terminales pueden ser configuradas para disparar una interrupción con un valor bajo, un pulso de subida o bajada, o un cambio de valor. Mira la función attachInterrupt() para mas detalles. PWM: 3, 5, 6, 9, 10, y 11. Proporcionan salidas PWM de 8 bit con la función analogWrite(). En placas con ATmega8, las salidas PWM solo están disponibles en los pines 9, 10, y 11. Reset BT: 7. (solo en Arduino BT) Conectado a la línea de reset del módulo bluetooth. SPI: 10 (SS), 11 (MOSI), 12 (MISO), 13 (SCK). Estas terminales soportan comunicación SPI. Aunque esta funcionalidad esta proporcionada por el hardware, no está incluida actualmente el el lenguaje Arduino. LED: 13. En el Diacemila y el LilyPad hay un led en placa conectado al pin digital 13. cuando el pin tiene valor HIGH, el LED está encendido, cuando el pin está en LOW, está apagado Pines Analógicos Los pines de entrada analógicos soportan conversiones analógico-digital (ADC) de 10 bit utilizando la función analogRead(). Las entradas analógicas pueden ser también usadas como pines digitales: entrada analógica 0 como pin digital 14 hasta la entrada analógica 5 como pin digital 19. Las entradas analógicas 6 y 7 (presentes en el Mini y el BT) no pueden ser utilizadas como pines digitales. I2C: 4 (SDA) y 5 (SCL). Soportan comunicaciones I2C (TWI) utilizando la librería Wire (documentación en la página web de Wiring). Pines de alimentación VIN (a veces marcada como "9V"). Es el voltaje de entrada a la placa Arduino cuando se está utilizando una fuente de alimentación externa (En comparación con los 5 voltios de la conexión USB o de otra fuente de alimentación regulada). Puedes proporcionar voltaje a través de este pin. Date cuenta que diferentes placas aceptan distintos rangos de voltaje de entrada, por favor, mira la documentación de tu placa. También date cuenta que el LilyPad no tiene pin VIN y acepta solo una entrada regulada. 5V. La alimentación regulada utilizada para alimentar el microcontrolador y otros componentes de la placa. Esta puede venir de VIN a través de un regulador en placa o ser proporcionada por USB u otra fuente regulada de 5V. 3V3. (solo en el Diacemila) Una fuente de 3.3 voltios generada por el chip FTDI de la placa. GND. Pines de tierra. Otros Pines AREF. Referencia de voltaje para las entradas analógicas. Utilizada con la función analogReference(). Reset. (Solo en el Diacemila) Pon esta línea a LOW para resetear el microcontrolador. Utilizada típicamente para añadir un botón de reset a shields que bloquean el de la placa principal. Módulo L298N . El Módulo L298N esta creado en base al integrado L298N, esto le permite al módulo poder controlar hasta 2 motores de corriente directa o incluso controlar motores pasos a paso bipolares, otra de las características de este módulo es que su conexión es relativamente sencilla y es capaz de aceptar fuentes externas de hasta 46 Volts (aun que lo más recomendable son fuentes o baterías de 9 Volts). El módulo posee una protección contra sobrecalentamiento, para así desactivarse en caso de que la temperatura aumente demasiado. Otra de las características de este módulo es que su corriente constante de operación puede ser de 2 Amperios y es capaz de soportar picos de hasta 4 amperios. Por esto y mucho más el módulo L298N es la herramienta perfecta si estas intentando construir un robot, un seguidor de lineas, un minisumo o incluso un Dron. Los proyectos que se presentan actualmente en competencias, exposición o incluso eventos, deben poseer 3 características, deben ser llamativos, debes ser estéticos y deben funcionar correctamente, cada uno de estos puntos se contraponen ya que en ocasiones por hacerlo funcionar correctamente se deja de lado la estética o a de forma contraria se toma como prioridad la estética y el funcionamiento se deja de lado, en la mayoría de casos estos problemas se dan debido al escaso tiempo que hay para preparar todo y por tal hoy te traemos una solución a estos problemas con el Módulo L298N. El Módulo L298N esta construido en base al integrado L298N, este integrado posee en su interior 2 puentes H, por tal es capaz de controlar hasta 2 motores de corriente directa, gracias al módulo que rodea al integrado este también puede controla Motores a Paso y es capaz de controlar hasta 2 Amperios lineales e incluso algunos picos de 4 Amperios.
Características del Módulo L298N
El módulo esta diseñado en base al integrado L298N
El módulo puede controlar motores de corriente directa y motores pasos a paso bifasicos El módulo es compatible con Microcontroladores o Tarjetas Arduino El rango de voltaje que soporte este módulo es de: 5V hasta los 46V El integrado L298N posee 2 puentes H internos Este módulo posee una gran inmunidad al ruido EL módulo posee una protección que lo desactiva en caso de sobrecalentamiento Es capas de soportar hasta 2 Amperios Lineales o incluso picos de 4 Amperios Tamaño: 43 x 43 x 26mm
Sensor QRD1114
El Sensor QRD1114 es utilizado comúnmente en proyectos de robotica, para
ser más específicos se utiliza para la construcción de carritos seguidores de lineas, este sensor posee un emisor y un receptor en el mismo cuerpo, ya que los seguidores de linea deben seguir una linea negra o blanca este sensor es perfecto ya que la linea blanca refleja la luz para que el sensor la sense, en cuanto a la linea negra esta absorbe la luz del sensor y con programación puede ser sensada igualmente. Su rango de sensado ideal es de 6 Milimetros, el voltaje de funcionamiento de este sensor es de 5 Volts.
El Sensor QRD1114 es un sensor que ha venido a revolucionar la robotica
estudiantil, este sensor se ha vuelto el remplazo directo del sensor CNY, esto debido a que esta nueva gama QRD1114 posee una mejor precisión que el sensor ya antes mencionado. El Sensor QRD1114 ha sido adoptado en la actualidad por los estudiantes y los amantes de la robotica para la construcción de los llamados seguidores de linea. Estos seguidores se construyen para seguir una linea de color negro o blanco sin salirse del camino marcado y en el menor tiempo posible, esta característica de tener que seguir una linea de un color en especial es lo que hizo que este sensor se convirtiera en el favorito de los desarrolladores por su particular característica que se muestra en la siguiente imagen.
Debido a que la luz emitida por el sensor es reflejada o absorbida (dependiendo
del color), se pueden realizar diferentes programas para aprovechar esta interesante característica.
Otra característica de este sensor es que su salida de datos es Analógica y su
conexión es muy fácil. La conexión de este sensor es prácticamente igual para Arduino y para Microcontroladores, dicha conexión se puede ver a continuación. Características del Sensor QRD1114
Voltaje de alimentación: 5 Volts
Distancia de censado o medición ideal: 6 Milímetros Salida del sensor: Analógica Cuerpo del tipo encapsulado que alberga al emisor y receptor Este sensor es compatible con Microcontroladores que acepten datos analógicos, también es compatible con cualquier tarjeta Arduino
Procedimiento para la elaboración del circuito
Comenzamos soldando los cables a los motores. Usaremos cables negro
y rojo, por tener un criterio, aunque aquí no es algo crítico porque en realidad aún no sabemos el sentido de giro del motor. Lo podemos cambiar después en el L298N, o incluso en código.
Lo que sí es importante es que, tomemos el criterio que tomemos, usemos
el mismo en ambos motores.
A continuación añadimos el interruptor a portabaterías. Tendréis que
soldar los cables al interruptor que tengáis, que puede ser como el que enseño yo o cualquier otro.
En mi caso, lo pego el interruptor al propio portabaterías, y tapo/protejo los
cables con un trocito de cinta aislante. También podéis poner el interruptor en el chasis y llevar hasta ahí los cables. A mí me gusta pegarlo en el propio portabaterías, así queda un único módulo compacto, más fácil de montar. Aquí sí que es importante que tengáis un criterio de colores en los cables, usando cable rojo para el positivo, y cable negro para el negativo.
Nos pasamos al chasis. En mi caso, la base es de metacrilato, pero, en
función del vendedor, también puede ser de plástico negro, madera, o incluso chapa.
Añadimos la rueda loca empleando los separadores de latón, tornillos, y
tuercas.
A continuación, atornillamos los motores empleando las piezas en “T”.
Metemos las piezas en las ranuras de la base, metemos el motor en medio, y usamos tornillos para pasar de lado a lado y poner una rosca. Es importante que los motores queden en el mismo sentido. La tendencia es ponerlos simétricos (con los cables de ambos motores hacia dentro o hacia afuera) pero es mejor ponerlos en el mismo sentido, porque así al avanzar o retroceder el motor, ambos motores giran en el mismo sentido.
Los motores no funcionan exactamente igual girando en un sentido que en
otro y ponerlos de esta forma hará que después sea más sencillo que el motor avance recto.
Ahora acoplamos las ruedas y los discos ranurados de los encoders
en el eje. Apretamos con cuidado y nos aseguramos de que ninguna parte roce con nada (ni siquiera el fin de la rueda con el cuerpo del motor). e damos la vuelta al robot, poniendo las ruedas al suelo, pasamos los cables de los motores por los agujeros del chasis y conectamos los cables de alimentación a la breadboard.
También posicionamos los elementos como pone vemos en la siguiente
imagen. Tenemos el portabaterias, una mini breadboard con un Arduino Nano, y el controlador de motores L298N.
Cuando estemos a gusto con la disposición y estemos seguros de que no
interfieren entre ellos ni con las ranuras del chasis, procedemos a fijarlos a la base.
La breadboard tiene su propio pegamento, únicamente tenemos que retirar
el papel protector y pegarlo a la base. Para el portabaterias, y el L29N, un par de tiras de cinta de doble cara en cada uno será suficiente.
Pasamos a poner los encoders. Presentamos la placa breadboard con el
sensor de ultrasonidos para asegurarnos de que cabe todo correctamente. Introducimos la “U” del sensor en la ranura del chasis, dejando el disco ranurado en medio. Si el disco roza con el sensor podemos moverlo desplazarlo en el eje para asegurar que gira correctamente.
Finalmente, fijamos los encoders a la base del robot empleando una tira de cinta de doble cara en cada sensor.
Conectamos los encoders y el L298N a la breadboard de Arduino.