Descarga la aplicación para disfrutar aún más
Vista previa del material en texto
LABORATORIO DE CIRCUITOS DIGITALES “PRÁCTICA #2: CONOCIENDO ARDUINO” UNIVERSIDAD DE ANTIOQUIA FACULTAD DE INGENIERÍA DEPARTAMENTO DE INGENIERÍA ELÉCTRICA MEDELLÍN – ANTIOQUIA 2020-1 INTRODUCCIÓN Arduino es una placa que tiene todos los elementos necesarios para conectar periféricos a las entradas y salidas de un microcontrolador. Es decir, es una placa impresa con los componentes necesarios para que funcione el microcontrolador y su comunicación con un ordenador a través de la comunicación serial. Las funciones de Arduino, como ocurre con la mayoría de las placas de microcontroladores, se pueden resumir en 3 factores: Cuenta con una interfaz de entrada. Esta puede estar directamente unida a los periféricos, o conectarse a ellos a través de puertos. La interfaz de entrada tiene como objetivo trasladar la información al microcontrolador. El microcontrolador es la pieza que se encarga de procesar esos datos. Además, varía dependiendo de las necesidades del proyecto en el que se desee usar la placa, y existe una gran variedad de fabricantes y versiones disponibles. También cuenta con interfaz de salida. Este se encarga de llevar la información procesada a los periféricos autorizados de hacer el uso final de esos datos. En algunos casos puede tratarse de otra placa en la que se centraliza y procesa la información de forma totalmente renovada, o sencillamente, puede ser una pantalla o un altavoz encargado de mostrar la versión final de los datos. La plataforma Arduino se programa con un lenguaje propio basado en el lenguaje de programación de alto nivel Processing, lo que significa que es similar a C++. OBJETIVOS Familiarizarse con el hardware y el software de la plataforma de desarrollo Arduino. Entender la estructura básica de un programa en Arduino. Aprender a utilizar las entradas y salidas digitales de la placa Arduino UNO. Simplificar funciones lógicas mediante álgebra booleana. Ejecutar funciones lógicas en el microcontrolador. MARCO TEÓRICO ¿CUÁL ES EL ORIGEN DE ARDUINO? Arduino fue inventado en el año 2005 por el entonces estudiante del instituto IVRAE Massimo Banzi, quien, en un principio, pensaba en hacer Arduino por una necesidad de aprendizaje para los estudiantes de computación y electrónica del mismo instituto, ya que en ese entonces, adquirir una placa de micro controladores eran bastante caro y no ofrecían el soporte adecuado; no obstante, nunca se imaginó que esta herramienta se llegaría a convertir en años más adelante en el líder mundial de tecnologías DIY (Do It Yourself). Inicialmente fue un proyecto creado no solo para economizar la creación de proyectos escolares dentro del instituto, sino que, además, Banzi tenía la intención de ayudar a su escuela a evitar la quiebra de esta con las ganancias que produciría vendiendo sus placas dentro del campus a un precio accesible (1 euro por unidad). ¿QUÉ OTRAS PLACAS ARDUINO EXISTEN ADEMÁS DEL ARDUINO UNO? Arduino UNO Arduino MEGA Arduino Ethernet Arduino Due Arduino Leonardo Arduino Micro Arduino Mini Arduino Lilypad Arduino Yun ¿QUÉ VOLTAJES SOPORTAN LAS ENTRADAS Y SALIDAS DIGITALES DEL ARDUINO? Límites de voltaje de entrada: Se recomiendan voltajes de 7 a 12 V El límite absoluto de voltaje está entre 6 a 20 V Para los pines de Entrada/Salida: -0.5 a 5.5 V El valor máximo real que soporta el Arduino es Vcc + 0.5V, esto es para un Arduino que soporte 5 Volts. En el caso de que agreguemos una resistencia en seria a un pin de E/S, podemos incrementar la protección de voltaje de entrada a dicho pin. Por ejemplo, cuando conectamos una resistencia de 10K Ohm brindamos protección al Arduino para que este pueda admitir voltajes entre -10.5 y +15.5V. Límites de corriente de salida: Si se alimenta a través de USB: Puede suministrar hasta 500 mA Si se alimenta con una fuente externa o batería: Puede suministrar entre 500mA a 1A Por cada pin de Entrada / Salida el valor máximo individual es de 40 mA Sumando todas las Entradas / Salidas combinadas, sin incluir el pin de 5 V: Puede suministrar 200mA ¿PARA QUÉ SE UTILIZAN LAS FUNCIONES SETUP Y LOOP EN ARDUINO? void setup() El setup es la primera función en ejecutarse dentro de un programa en Arduino. Es, básicamente, donde se «setean» las funciones que llevará a cabo el microcontrolador. Aquí es donde establecemos algunos criterios que requieren una ejecución única. Por ejemplo, si nuestro programa va a usar comunicación serial, en el setup establecemos el comando Serial.begin para indicarle al programa que vamos a iniciar la comunicación serial. Si vamos a utilizar un pin determinado como salida de voltaje, usamos el pinMode para indicarle a Arduino que determinado pin funcionará como salida, usando el parámetro OUTPUT. Es importante tener en cuenta que aquí colocamos aquello que solo se debe ejecutar una vez. void loop() Loop en inglés significa lazo o bucle. La función loop en Arduino es la que se ejecuta un número infinito de veces. Al encenderse el Arduino se ejecuta el código del setup y luego se entra al loop, el cual se repite de forma indefinida hasta que se apague o se reinicie el microcontrolador. ¿QUÉ FUNCIONES SE UTILIZAN PARA LA CONFIGURACIÓN Y MANEJO DE LAS ENTRADAS Y SALIDAS DIGITALES? En Arduino para tratar las entradas y salidas digitales usamos las siguientes funciones: pinMode() Configura en el pin especificado si se va a comportar como una entrada o una salida. digitalWrite() Escribe un valor HIGH o LOW en el pin digital especificado. Si el pin está configurado como OUTPUT pone el voltaje correspondiente en el pin seleccionado. Si el pin está configurado como INPUT habilita o deshabilita la resistencia interna de pull up del correspondiente pin. digitalRead() Lee el valor del pin correspondiente como HIGH o LOW. ¿PARA QUÉ SON UTILIZADAS LAS INSTRUCCIONES DELAY Y FOR? Delay Pausa el programa durante el tiempo (en milisegundos) especificado como parámetro. (Hay 1000 milisegundos en un segundo). For La instrucción o declaración FOR se utiliza para repetir un bloque de declaraciones entre llaves. Por lo general se usa un contador de incrementos para incrementar y terminar el ciclo. La instrucción FOR es útil para cualquier operación repetitiva y, a menudo, se usa en combinación con matrices para operar en colecciones de datos / pines. OBTENGA LAS FUNCIONES LÓGICAS PARA EL CIRCUITO QUE SE MUESTRA A CONTINUACIÓN Y REALICE LA TABLA DE VERDAD. SIMULACIÓN Y TABLA DE VERDAD UTILIZANDO LOGISIM La variable y corresponde a C_Out La variable x corresponde a S TABLA DE VERDAD REALIZADA A MANO 𝑺 = 𝑨⨁𝑩⊕ 𝑪 𝑺 = (𝑨 𝑩 + 𝑨𝑩 )⨁𝑪 𝑺 = (𝑨 𝑩 + 𝑨𝑩 ) 𝑪 + (𝑨 𝑩 + 𝑨𝑩 )𝑪′ 𝑪_𝑶𝒖𝒕 = (𝑨⨁𝑩)𝑪 + 𝑨𝑩 𝑪_𝑶𝒖𝒕 = (𝑨 𝑩 + 𝑨𝑩 )𝑪 + 𝑨𝑩 𝑪_𝑶𝒖𝒕 = 𝑨 𝑩𝑪 + 𝑨𝑩 𝑪 + 𝑨𝑩 Al añadirle valores a A, B y C, obtenemos lo siguiente: TABLA DE VERDAD - MONTAJE A B C C_OUT S 0 0 0 0 0 0 0 1 0 1 0 1 0 0 1 0 1 1 1 0 1 0 0 0 1 1 0 1 1 0 1 1 0 1 0 1 1 1 1 1 ELEMENTOS NECESARIOS PARA LA SIMULACIÓN Software de Arduino instalado. TinkerCad. DESARROLLO DE LA PRÁCTICA MONTAJE DE LA PRÁCTICA – ARDUINO CON 2 LEDS Y UN SWITCH PROGRAMACIÓN DE FUNCIONES LOGICAS PARA EL CIRCUITO Se utilizaron operadores booleanos: ! (Logical NOT) && (Logical AND) II (Logical OR TABLA DE VERDAD DEL MONTAJE Y COMPROBACIÓN MEDIANTE TINKERCAD DE LOS RESULTADOS OBTENIDOS EN EL MARCO TEÓRICO TABLA DE VERDAD - MONTAJE A B C C_OUT S 0 0 0 0 0 0 0 1 0 1 0 1 0 0 1 0 1 1 1 0 1 0 0 0 1 1 0 1 1 0 1 1 0 1 0 1 1 1 1 1 A continuación, se mostrará la comprobación de la tabla de verdad a través del circuito en TinkerCad: 1. A = 0, B = 0, C = 0, C_OUT = 0, S = 0 2. A = 0, B = 0, C = 1, C_OUT = 0, S = 1 3. A = 0, B= 1, C = 0, C_OUT = 0, S = 1 4. A = 0, B = 1, C = 1, C_OUT = 1, S = 0 5. A = 1, B = 0, C = 0, C_OUT = 0, S = 1 6. A = 1, B = 0, C = 1, C_OUT = 1, S = 0 7. A = 1, B = 1, C = 0, C_OUT = 1, S = 0 8. A = 1, B = 1, C = 1, C_OUT = 1, S = 1 PROGRAMAR LEDS PARA QUE SE ENCIENDAN Y SE APAGUEN EN DOS SECUENCIAS Se utilizaron 6 leds y se realizaron 2 secuencias, el montaje es el siguiente: La primera secuencia, se programó de la siguiente manera: La segunda secuencia, se programó de la siguiente manera: Para notar la diferencia entre secuencias, se programó un apagado de los leds así: CONCLUSIONES Arduino nos brinda una plataforma de código abierto en la cual se tiene software y hardware, son sencillos de utilizar y acoplarse a la parte de programación y a la parte práctica con la placa resulta muy intuitivo. Mediante Logisim y a través del montaje del circuito con los dos leds y el Switch fue posible comprobar de manera experimental y teórica la tabla de verdad del montaje propuesto. Es posible implementar una estructura lógica a través de Arduino, esto puede optimizar el diseño de un circuito ya que no es necesario utilizar las compuertas lógicas por separado, tan solo tenemos que programarlas y obtendremos los mismos resultados optimizando el espacio en la protoboard. CIBERGRAFÍA 1. https://arduinodhtics.weebly.com/historia.html#:~:text=Arduino%20fue%20inventado%2 0en%20el,una%20placa%20de%20micro%20controladores 2. https://www.bejob.com/que-es-la-programacion-con-arduino-y-para-que- sirve/#:~:text=El%20arduino%20es%20una%20placa,trav%C3%A9s%20de%20la%20comun icaci%C3%B3n%20serial. 3. https://www.arduino.cc/reference/en/ 4. https://www.arduino.cc/reference/en/language/structure/boolean-operators/logicalnot/ 5. https://www.arduino.cc/reference/en/language/structure/boolean-operators/logicaland/ 6. https://www.arduino.cc/reference/en/language/structure/boolean-operators/logicalor/ 7. https://www.arduino.cc/reference/en/language/structure/control-structure/for/ 8. http://panamahitek.com/el-setup-y-el-loop-en-arduino/
Compartir