Introducción al uso de Arduino

Slides:



Advertisements
Presentaciones similares
INTRODUCCIÓN A ARDUINO
Advertisements

Introducción al lenguaje PROCESSING para ARDUINO
Creación de un Blog… Pues bienvenido al tutorial donde aprenderás como crear un blog en Blogger paso a paso. Te explicaremos cada paso a seguir para la.
Hardware. Que es el hardware y sus componentes. 1. El hardware son todas las partes físicas y tangibles de una computadora. 2. Partes del hardware: 2.1.
¿Qué es un Diagrama de Flujo? UN DIAGRAMA DE FLUJO, TAMBIÉN LLAMADO FLUJOGRAMA DE PROCESOS O DIAGRAMA DE PROCESOS, REPRESENTA LA SECUENCIA O LOS PASOS.
ARDUINO INTRODUCCIÓN Y PROGRAMACIÓN. Podemos tener Señales analógicas y digitales. INTRODUCCIÓN.
CURSO DE COMPUTACIÓN BÁSICO El objetivo de crear este curso es que el alumno adquiera los elementos básicos para conocer los usos de la computadora y trabajar.
WINDOWS Elvira Abajo Lera Octubre, 2008.
Sistemas informáticos. Trabajo en red
ARDUINO El proyecto Arduino: Recordando… - Pines de entrada
HARDWARE.
INTRODUCCIÓN A ARDUINO
COMPUTACIÓN Y SOFTWARE DE APLICACIÓN
Control, adquisición y monitoreo con Arduino y Visual Basic .net
Tema: Tipos De fuentes de alimentación
Conexiones Discos Rigidos
CLASE X.
Tratamiento de Datos Capitulo Dos.
Tatiana largo Acevedo. 10-2
EL CPU.
CURSO INFORMÁTICA: Niverl 1
PSEUDOCÓDIGO Prof. Rafael Mourglia.
EL ESCRITORIO El Escritorio es la primera pantalla que nos aparece una vez se haya cargado el Sistema Operativo. La teclas rápidas o atajo para acceder.
Prueba Inicial Informática
COMPUTADORA Una computadora es una colección de circuitos integrados  y otros componentes relacionados que puede ejecutar con exactitud, rapidez y de.
AGREGAR NUEVO HARDWARE
Comunicación Serial: Conceptos Generales
Cómo instalar Windows 7 Cardenas perez 10-1.
CREAR DIAGRAMA DE FLUJO
ARDUINO Qué es y por qué usarlo * El proyecto Arduino:
BUS I2C Ing. Mecatronica. Para simplificar la interconexión de dispositivos al microprocesador, Philips desarrolló un sencillo bus bidireccional basado.
Conexiones Discos Rígidos
Configurando mi espacio de trabajo
LÓGICA DE PROGRAMACIÓN
Modulo I de formación Escuela TIC 2.0
Hipervínculos scratch
Excel.
PROGRAMACION: Que es un computador: Es un aparato electrónico que tiene el fin de recibir y procesar datos para realización de diversas operaciones..
Clase 4 8:00 AM Repaso La Programación ¿Qué es Arduino? Tipos de Arduinos 10:00 AM Aprendiendo a programar en Arduino Ejemplos Semillero Robótica I.
HERRAMIENTAS DE PROGRAMACIÓN
El Soporte Técnico en la escuela
EXPLORADOR DE WINDOWS 7. Explorador de Windows El Explorador es una herramienta indispensable en un Sistema Operativo ya que con ella podemos organizar.
00:46 1 El software educativo es definido como un conjunto de programas, documentos, procedimientos, y rutinas asociados con la operación de un sistema.
HERRAMIENTAS DE MICOSOFT WORD LOS HIPERVINCULOS TECNOLOGÍAS DE LA INFORMACIÓN I YOSIRIS MARTÍNEZ ZAMORANO 1 G M 14/05/18.
HERRAMIENTAS DE MICOSOFT WORD LOS HIPERVINCULOS TECNOLOGÍAS DE LA INFORMACIÓN I YOSIRIS MARTÍNEZ ZAMORANO 1 G M 14/05/18.
HERRAMIENTAS DE MICOSOFT WORD LOS HIPERVINCULOS Profesora: Adriana Ubiarco Alumna: Citlaly Naomi Barrera Valdez Grado Grupo: 1-A Materia: Tecnologías Turno:
Lizbeth Montserrat cerero cedano 1E T/V característica, funciones, tipos y ejemplos de los hipervínculos.
HERRAMIENTAS DE MICOSOFT WORD LOS HIPERVINCULOS Profesora: Adriana Ubiarco Alumna: Citlaly Naomi Barrera Valdez Grado Grupo: 1-A Materia: Tecnologías.
HERRAMIENTAS DE MICOSOFT WORD LOS HIPERVINCULOS Profesora: Adriana Ubiarco Alumna: Citlaly Naomi Barrera Valdez Grado Grupo: 1-A Materia: Tecnologías.
Joselin Elizabeth Raygoza Chávez 1-A T/M Tecnologias de la Información.
HERRAMIENTAS DE MICOSOFT WORD LOS HIPERVINCULOS TABLA DE CONTENIDO 1. Los hipervínculos Como insertar un hipervínculo Sintaxis para insertar.
Introducción práctica la uso de la tarjeta Arduino.
INFORMÁTICA II BLOQUE I: ALGORITMOS Y DIAGRAMAS DE FLUJO
TECNOLOGÍAS DE LA INFORMACIÓN UNIVERSIDAD DE GUADALAJARA PREPARATORIA NO.10 DENIA NAYELLI VAZQUEZ GONZALEZ 1AMAT.
Tecnologías de la Información 1 Paola Noemí Padilla Almejo 1ºA T/M.
Tema: Componentes lógicos de un ordenador. Mediante el sistema de numeración binario, es decir, usando los dígitos 0 y 1. Lo único que transmite,
CICLOS EN JAVA FOR, WHILE, DO WHILE Un ciclo en Java o bucle en Java (como prefieras llamarlo) permite repetir una o varias instrucciones cuantas veces.
Placa Madre la Placa Madre o “Placa Base” es un elemento polivalente cuya misión es la de ofrecer soporte físico al PC además de otra serie de funcione.
Lenguajes del lado del cliente
INTRODUCCIÓN A DISEÑO Objetivos del curso. Definición de PowerPoint. Que podemos hacer en PowerPoint. Definición de Presentación. Principios de un buen.
UNIDAD 11: CONTROL DE SERVOMOTORES
Sistemas informáticos. Trabajo en red
UNIVERSIDAD JUÁREZ AUTÓNOMA DE TABASCO Nombres: Isaac Sánchez García Teofilo Martinez Garcia Ricardo Del Carmen Paz López Vanesa Anahí Pérez Lizárraga.
INTRODUCCIÓN A LA INFORMÁTICA
Historia del HTML y de Internet Tim Berners-Lee creó la primera versión del lenguaje HTML en 1989, junto con su equipo también desarrollaron el protocolo.
Funciones principales de Excel Online
Instalación y creación de una maquina virtual. 2/2/ La mayoría de las computadoras modernas son lo suficientemente potentes como para ejecutar varios.
ARDUINO ARDUINO El proyecto Arduino: Recordando… - Pines de entrada - Pines de salida - Microcontrolador - Conexión USB - IDE de arduino.
¿Qué es Arduino?  Plataforma de electrónica abierta.
INTERNET: Por medio de este icono podrá conectarse a Internet y podrá acceder a la red de redes. 4-PAPELERA DE RECICLAJE: En este icono.
Transcripción de la presentación:

Introducción al uso de Arduino Magister Víctor Andrade Soto

Programar desde cero Si queremos avanzar y aprender Arduino no nos queda otra que empezar por el principio con la electrónica y la programación. Por eso he decidido crear este curso de Arduino desde cero. Aquí veremos: El proceso del prototipado. Introducción al software y hardware con Arduino. Fundamentos de programación con Arduino

El proceso del prototipado con Arduino Arduino es una placa orientada al prototipado. No sólo porque todo lo que está en la propia placa y el software están pensados para prototipar de una forma muy fácil y rápida. Además, tenemos sensores, actuadores y shields alrededor de Arduino que nos facilitan esta tarea. ¿Qué es lo primero que se hace cuando queremos hacer un proyecto con Arduino? Puede que pienses: «uhmmmmm pues conecto los componentes y a programar«. ¡¡¡ NO !!! Se trata de un error muy típico.

Cuando tenemos que empezar a crear un proyecto con Arduino lo primero que tenemos que hacer es plantear ese proyecto. Debemos plasmarlo con lápiz o bolígrafo en un papel. Así de sencillo.

La idea general del proyecto con Arduino Si lo que estás planteando, por ejemplo, es hacer un proyecto con Arduino para medir la temperatura, en esta fase el proyecto no tiene que ser una simple estación meteorolótica. Tiene que ser el satélite Meteosat : plasma todo en un simple papel. Un dibujo sencillo, sin complicaciones, donde vengan todos los componentes que te gustaría tener en tu proyecto. Al final de esta fase tendrás un listado de ideas y especificaciones del satélite Meteosat ;) Este sería el inicio de la siguiente fase, el prototipo mínimo.

El prototipo mínimo Debes plantearte una pregunta crucial ¿seré capaz de enviar un satélite al espacio? ¿No sabes la respuesta? Ya te lo digo yo, ¡NO!. No estoy dudando de tus capacidades, para nada. Si que dudo de tus recursos. A no ser que seas Elon Musk, veo difícil poner un satélite en órbita. Y como este ejemplo muchos otros. A veces me preguntan si no sería mejor hacer una PCB o circuito impreso para algún proyecto. Por supuesto que si pero ¿qué experiencia tienes diseñando PCBs?¿qué experiencia tienes con electrónica?¿dónde vas a fabricar ese circuito impreso?

Por eso es importante centrarse en el objetivo principal de tu proyecto. Esta fase consiste en eliminar todo aquello que no es importante y que solo aportan funcionalidades extra. Si lo que quieres es medir la temperatura para algo concreto ¿por qué mides la presión? ¿por qué lo conectas a Internet? Céntrate en eso concreto y consigue crear un prototipo mínimo que sea capaz de hacer la funcionalidad principal de tu proyecto. Debes ser capaz de conocer tus limitaciones y de los medios que dispones. Es simple, si consigues hacer un prototipo mínimo en poco tiempo, no sentirás la frustración de no llevar tu idea a la realidad. Esta fase es crucial para aprender Arduino. Debes ser capaz de con muy poco, obtener resultados. Siempre tendrás tiempo de ir mejorando el proyecto con Arduino y añadir nuevas funcionalidades.

El diseño incremental Ahora sí, ya tienes las ideas claras de lo que tienes que hacer para llevar a cabo tu prototipo mínimo. Lo has plasmado todo y ahora empieza la fase de creación. Ya puedes empezar a crear los circuitos y a programar Arduino a partir de ese prototipo mínimo. Mi consejo es que apliques el diseño incremental. Básicamente consiste en dividir ese gran problema que vas a resolver, en pequeños problemas. Puedes verlo como un pintor. Haz un bosquejo de lo que quieres conseguir y poco a poco ves dando forma a esa idea primitiva.

Introducción al software y hardware Son dos disciplinas que debes dominar en un curso de Arduino son la programación y la electrónica. No queda otra, debes pasar por esto. Si has llegado hasta aquí, es porque quieres aprender Arduino. Pero al contrario que otras tecnologías como pueda ser un ratón o un teclado, denominadas tecnologías Plug&Play, Arduino no es un hardware que se conecte y listo. En un curso de Arduino debes aprender todas las nociones para que puedas configurar y programar el microcontrolador de Arduino. Para empezar debes conocer el software y el hardware que está involucrado.

#1 Entorno de desarrollo de Arduino Si quieres aprender Arduino tienes que programar. No existen fórmulas milagrosas ni atajos. Programar es la única manera de llevar a cabo tus propios proyectos con Arduino. Esta programación, ya sea para Arduino, para otro tipo de placa o para otro lenguaje de programación, se suele hacer a través de un IDE o entorno de desarrollo. Pero, ¿qué es un IDE o entorno de desarrollo?

Por ejemplo, cuando escribimos una palabra reservada nos la cambia de color. Podemos contraer estructuras de control o funciones. Insertar y gestionar librerías a través del menú o formatear el código. Pero lo más importante del IDE de Arduino es que podemos cargar el código a la placa. Podríamos escribir todo nuestro código en el Bloc de Notas o algún otro editor de texto y sería totalmente válido. El código no es más que texto. Sin embargo, el IDE de Arduino nos permite hacer una cosa fundamental: compilar el código y subirlo a la placa. Esa es la clave. No te preocupes si ahora no entiendes qué es eso de compilar, muy pronto lo veremos.

Otra característica importante del IDE de Arduino es que es de código abierto. Pero ¿qué quiere decir esto? Bueno, Arduino es una plataforma abierta. Dentro de esta plataforma se incluye el IDE de Arduino. Esto significa que ya no solo tenemos el software de forma gratuita, también lo podemos modificar a nuestro antojo. Eso sí, para hacer cualquier mejora o cambio debes conocer el lenguaje de programación con el que se programa el propio entorno de desarrollo de Arduino.

Versiones del IDE de Arduino Se trata de un software que está en constante actualización. Arduino no tiene un periodo fijo a la hora de hacer actualizaciones. Cuando sale una nueva versión se añaden nuevas opciones o se corrigen errores. Lo más importante es que de momento (al momento vamos por la versión 1.8.9) el IDE sigue manteniendo su mismo aspecto. Esto es más importante de lo que parece. Las opciones suelen estar siempre en el mismo sitio y por lo tanto, cuando se actualiza apenas notarás la diferencia. Pero por ahora tampoco cambia el código. Esto quiere decir que si tu tienes un programa que hiciste con la versión 1.4 de Arduino, también te servirá para cargarlo a la placa con la versión 1.8.

Para la aplicación de escritorio: (el simulador ya a estar en el canvas y el software también) https://www.arduino.cc/en/Main/Software

No es obligatorio hacer ninguna donación aunque si que es recomendable No es obligatorio hacer ninguna donación aunque si que es recomendable. Como ya te he comentado, podemos colaborar de múltiples formas. Cualquier ayuda es buena. Todo lo demás que continúa a partir de aquí es una secuencia de pantallas que lo único que hacen es instalar todo lo necesario para poder programar con el IDE de Arduino. A continuación un resumen rápido de la secuencia de instalación. Solo advertir que voy a hacerlo para Windows. Esto es debido a una cosa simplemente. A día de hoy es el sistema operativo más utilizado del mundo aunque nos pese. Si tengo que elegir uno prefiero este para poder ayudar al mayor número de personas.

1. Ejecutar el instalador del IDE de Arduino como administrador

2 Aceptar el acuerdo de licencia

3 Elegir los componentes de software

4 Elegir ubicación

5 Instalar complementos

6 Terminar instalación

Funciones principales del IDE de Arduino Seleccionar la placa correcta y el puerto serie Seleccionar la placa es relativamente sencillo. En este curso vamos a trabajar con el modelo Arduino UNO (luego lo veremos más en profundidad). Con el IDE podemos trabajar con todos los modelos de Arduino e incluso con modelos que no son de la misma marca. Cada vez que sale una nueva placa, el IDE se actualiza para poder programarla. Con los años verás como va creciendo esta lista :) Puedes seleccionar la placa a través del menú en Herramientas>Placa>Arduino/Genuino UNO. No hace falta que conectes la placa al ordenador para seleccionar un modelo.

El puerto serie es por donde se comunican Arduino y el ordenador El puerto serie es por donde se comunican Arduino y el ordenador. Es necesario que tengas conectado tu Arduino al ordenador. Es muy sencillo, no tiene pérdida.

Para seleccionar el puerto lo hacemos a través del menú Herramientas>Puerto. Puede que aparezca más de uno y además el nombre varía según el sistema operativo.

Preferencias del sistema

Localización del proyecto: podemos seleccionar una carpeta donde iremos guardando los proyectos. Por defecto será la que ha creado el instalador en documentos/Arduino. Esta ruta varía según el sistema operativo. Editor de idioma: con esta opción podemos cambiar el idioma del IDE. Editor de Tamaño de Fuente: indica el tamaño de fuente del editor del IDE. Mostrar número de línea: para que muestre los números de líneas en el editor.

Habilitar plegado el código: siempre que el código tenga una sentencia con {} nos permitirá contraer y expandir ese código. Muy útil cuando trabajamos con archivos muy grandes. Guardar cuando se verifique o cargue: es importante que cuando verifiquemos el código o lo carguemos al microcontrolador haga un guardado automático. Déjalo marcado.

Sistema de ficheros de Arduino Una de las mejoras que han ido introduciendo dentro del IDE de Arduino es la gestión de archivos. Lo primero que debes conocer es la extensión con que se guardan los ficheros de Arduino, .ino. Si has creado un programa o sketch (sketch significa esquema o bosquejo) verás que tiene una extensión .ino. Cuando guardas un archivo en tu ordenador, el propio IDE de Arduino ya lo organiza por ti. Crea una carpeta con el mismo nombre que el archivo y dentro guarda el fichero. Por ejemplo, si creas un nuevo programa y vas al menú Archivo>Salvar, te permitirá guardarlo con un nombre.

Partes fundamentales del IDE de Arduino

El editor Aquí es donde más vamos a trabajar ya que es donde escribimos nuestro código. Pero no solo eso, también tenemos acceso a las funciones más utilizadas. En la parte central encontramos el propio editor. Incluye el número de línea útil, por ejemplo, para detectar errores.

Justo arriba del editor tenemos los accesos directos a las funciones más utilizadas.

Verificar/Compilar: este botón verifica el código en busca de errores y lo compila. Cuando hablo de compilar me refiero a traducir el lenguaje de programación que entendemos los humanos en código máquina que entienden las máquinas. Subir: el botón subir nos permite cargar o subir el código al microcontrolador a través del puerto serie USB. Nuevo: sirve para crear un programa nuevo. Esto genera una nueva ventana donde escribir el código de ese nuevo programa.

Abrir: abre un programa que hayas guardado previamente en el disco duro. Salvar: guarda el archivo en el disco duro. Es como la opción que hemos visto anteriormente. Monitor serie: es una de las partes más importantes del IDE de Arduino. Sirve para mostrar información de la comunicación entre el ordenador y Arduino en las dos direcciones.

El área de mensajes En este área de mensajes se muestra la última acción que has realizado. También muestra mensajes cuando se está realizando alguna tarea como subiendo un programa a la placa.

La consola La consola nos va a dar información muy valiosa. Nos puede dar información sobre una acción concreta, por ejemplo los datos tras subir un programa a la placa. Pero lo más importante, nos informa si hay algún error.

Fundamentos de la placa de Arduino Si haces una pequeña búsqueda en Internet, encontrarás que hay multitud de placas de Arduino. Hay originales, copias y un amplio abanico de modelos dependiendo de cual es su funcionalidad. Así que lo primero que debes preguntarte es ¿qué quiero conseguir?

No es lo mismo comprar una placa con conexión WiFi que sin ella No es lo mismo comprar una placa con conexión WiFi que sin ella. Por ejemplo, Arduino MKR1000 puede conectarse a Internet a través de la WiFi y transmitir datos. Un Arduino UNO o un Arduino Mega no pueden por si solos. Necesitan algún tipo de shield ya sea ethernet o WiFi. Salvo estas características especiales de cada placa, el 99% del código te va a servir para cualquier placa. Por ejemplo, el acceso a los pines se hace en todas las placas igual. Esa es la magia de Arduino.

¿Por qué utilizar Arduino UNO? Dentro de todos los modelos que podemos encontrar en la tienda oficial, el recomendado para aprender Arduino es el modelo Arduino UNO. Se trata del buque insignia de la marca, el más famoso y el más vendido. Muchos otros modelos se han construido a partir de este.

Pero lo realmente increíble de Arduino, es que una vez que te inicias con una placa, es muy sencillo utilizar otros modelos de placa e incluso de otras marcas. Cuando hablo de placas, lo realmente importante y sobre lo que todo gira es el microcontrolador que tienen integradas esas placas.

¿Qué es un microcontrolador? Si miramos de cerca la placa nos da la sensación de que se trata de un circuito sacado de un electrodoméstico. La realidad es que Arduino está creado con un único objetivo: facilitarnos la programación de un microcontrolador. Pero qué es un microcontrolador. Lo primero es identificarlo dentro de la placa. Si miras un Arduino de cerca, verás una cucaracha o pastilla negra donde pone ATMEL. Eso es el microcontrolador.

Los microcontroladores también se llaman MCU por sus siglas en inglés Microcontroller Unit. Diariamente utilizamos decenas de ellos en dispositivos electrónicos, electrodomésticos, coches, ordenadores, móviles, etc… Pero ¿qué es una MCU o microcontrolador?. Es un circuito integrado programable, capaz de ejecutar las órdenes que están almacenadas en su memoria. Ojo a esto, circuito integrado progamable. Esto quiere decir que lo podemos programar :) Pero también existen los microprocesadores. Son los típicos procesadores que encontramos en los ordenadores por ejemplo. Existe una diferencia principal entre una MCU o microcontrolador y un microprocesador, su utilidad.

Una MCU tiene como objetivo una tarea concreta Una MCU tiene como objetivo una tarea concreta. Por ejemplo, cerrar las puertas de un ascensor, captar la temperatura de un sensor, etc.. Sin embargo, un microprocesador es de propósito general. Puede hacer varias cosas a la vez. Recopilar información de los datos, enviar por email, mostrar en una pantalla, etc… Un claro exponente de un dispositivo que lleva un microprocesador es una Raspberry Pi. Utilizar uno u otro dependerá del objetivo de nuestro proyecto.

Concepto de placa de prototipado Una vez que ya sabemos qué es un microcontrolador ¿qué hace Arduino para facilitarnos el conexionado y la programación en un microcontrolador? Para ello vamos a sacarlo de la placa.

Su nombre completo es ATMEGA328P-PU y es un microcontrolador de 8-bit Su nombre completo es ATMEGA328P-PU y es un microcontrolador de 8-bit. Esto quiere decir que solo puede hacer operaciones con números de 8-bit (números entre 0 y 255). Ahora imagínate que tuvieras que programar este circuito integrado o chip, ¿cómo lo conectas al ordenador? ¿cuáles son los pines digitales y analógicos? ¿donde está el pin de 5V y el de GND? Toda esta información la podemos obtener de su hoja de características técnicas.

Sin embargo, hubo una persona que pensó que había que democratizar el uso de microcontroladores y creo Arduino. El es David Cuartielles uno de los cofundadores de Arduino y el padre de la criatura. Todo lo que rodea a la placa de Arduino está pensado para facilitarnos la programación y conexión con el microcontrolador. La huella o forma en la que están dispuestos los pines, la conexión serie USB para programar y alimentar, el alimentador de baterías o pilas, cada componente está puesto en su sitio para que todo sea más fácil para nosotros.

Puerto USB Se llama puerto USB pero realmente estamos trabajando a través del puerto serie. Dentro de la propia placa hay un conversor de USB a serie, también conocido como TTL o FTDI. Imagino que ya te habrás dado cuenta lo que nos facilita la tarea de cargar los programas a través del puerto USB desde cualquier ordenador.

FTDI Los cables FTDI son la familia de cables convertidores USB a TTL serie UART y están incorporados con FT232R IC . El chip maneja todo el protocolo de conversión de datos USB a datos seriales UART. Los cables proporcionan una forma rápida y sencilla de conectar dispositivos con una interfaz serial de nivel TTL a USB y no requieren ninguna instalación y configuración de software adicional antes de usarlos. Por lo tanto, son simples dispositivos plug and play.

Pines de Arduino UNO ¿Recuerdas el microcontrolador ATMEGA328P? Este circuito integrado tiene unas patillas o patas. A esto le denominamos pines. En el lado de la placa de Arduino, estos pines tienen un acceso muy fácil para poder conectar diferentes componentes. Pero no son más que plástico, contactos y cables que se conectan con las patillas correspondientes del microcontrolador. Su función es facilitarnos su uso. Pero ¿qué podemos conectar a estos pines? Bueno, pues podemos conectar otros circuitos compatibles con cada uno de los pines. Vamos a ver los 3 zócalos que nos vamos a encontrar en Arduino UNO.

Pines digitales ¿Qué quiere decir digital? Digital es algo abstracto así que mejor verlo con una analogía. Imagínate que eres pintor. Cuando vas a pintar un cuadro solo te permiten utilizar dos colores: blanco y negro. Si quieres pintar con un gris claro por ejemplo, no puedes, no existe ese color. Solo puedes elegir entre blanco o negro. Si esto lo llevamos al mundo de la electrónica a través de un voltaje, solo podríamos tener dos voltajes. Esto es lo que ocurre en los pines digitales de Arduino donde solo podemos tener dos estados HIGH o LOW que equivalen a 5V y 0V. En realidad esto no es cierto totalmente.

Podríamos tener un voltaje de 3V por ejemplo Podríamos tener un voltaje de 3V por ejemplo. Para estos casos hay una regla interna que determina si un voltaje es HIGH o LOW. Estos son los niveles lógicos del microcontrolador ATMega328. Todo lo que esté entre 3V y 5V se considera nivel alto (HIGH) y todo lo que esté entre 0V y 1,5V es nivel bajo (LOW). El resto, entre 1,5V y 3V es una indeterminación. Esto quiere decir que cualquier voltaje dentro de este rango, el microcontrolador no sabrá si es estado HIGH o LOW.

Además, los pines digitales pueden funcionar en 3 modos diferentes: Modo entrada (INPUT): puede leer voltajes. Por ejemplo, ¿está pulsado un botón? si (HIGH) o no (LOW). Modo salida (OUTPUT): puede suministrar un voltaje. Por ejemplo, encender/apagar un led on (HIGH) o off (LOW). Excepción (PWM): algunos pines del microcontrolador pueden funcionar en modo salida suministrando un valor entre el rango 0V y 5V. Esto ya no sería un pin digital. Estos pines van marcados con el símbolo ~ y hay 6 dentro de la placa de Arduino (3, 5, 6, 9, 10, 11).

Por último señalar que los pines 0 y 1 son Rx (recibir) y Tx (transmitir). Se utilizan para la comunicación serie entre el ordenador y Arduino y están conectados a los LEDs de la placa donde pone RX y TX. Se recomienda no utilizar estos pines. El pin 13 está conectado a un LED integrado dentro de la placa. Hay algún pin más dentro de este zócalo pero como ya te he dicho al principio de este curso de Arduino, aquí vamos a ver lo esencial para ponernos en acción.

Pines analógicos Es el zócalo donde pone ANALOG IN y van numerados del A0 al A5, 6 pines. Si nos llevamos esto al mundo de la electrónica con Arduino, con estos pines podemos medir diferentes voltajes entre 0V y 5V. Es decir, podemos tener un voltaje de 3,5V en uno de estos pines y Arduino sería capaz de leerlo.

Sin embargo, existe un problema Sin embargo, existe un problema. El microcontrolador no entiende de números decimales, sólo entiende datos digitales 1’s y 0’s. Para resolver esto, la MCU incorpora un ADC (son las siglas de Analog Digital Converter o en español Conversor Analógico Digital). Por otro lado, Arduino no es capaz de medir cualquier voltaje, me explico. ¿Cuántos números hay entre 0 y 5?….. realmente hay infinitos números. Puedes empezar con el 0 e ir aumentando de 0,000001 o en 0,00000000000001.

La consecuencia de todo esto es que Arduino solo entiende datos digitales y además estos deben estar acotados. El ADC se encargará de convertir esos valores en datos digitales y además solo podrán ser un número concreto de valores. A esto último se le llama resolución. El ADC que viene integrado dentro de la MCU que lleva Arduino UNO tiene una resolución de 10-bit. Esto equivale a que solo vamos a poder medir 1024 valores posibles que van del 0 al 1023. Básicamente lo que estamos haciendo es dividir el rango de 0V a 5V en 1024 partes.

Pines de alimentación El zócalo de pines de alimentación nos sirve para alimentar los componentes, sensores y actuadores. Hay que destacar 4 de todos los que hay: 3,3V: suministra ese voltaje por ese pin. 5V: suministra ese voltaje por ese pin. GND: hay dos pines con esta función además del que está en el zócalo de los pines digitales. Es la toma de tierra y por donde debemos cerrar el circuito.

Otras características a destacar El botón reset resetea la placa y hace que empiece a ejecutar el código desde el principio. Por último vamos a ver una serie de características secundarias que es importante destacar. La huella que forman los pines se ha convertido en un estándar para conectar los shields.

El LED de encendido nos informa si la placa está alimentada. El pin Vin nos da otra alternativa a la hora de alimentar Arduino con un voltaje de entre 6V y 12V. De momento te recomiendo que lo alimentes a través del puerto USB.

Conector jack de alimentación Conector jack de alimentación. Es igual que el pin Vin pero a través de un conector jack. El voltaje de alimentación que soporta es de 6V a 12V.

Ejercicios Prácticos

Encender Leds al mismo tiempo

El signo de admiración indica que hay un problema El signo de admiración indica que hay un problema. Tenemos una resistencia de 1 Kohm.

La resistencia colocarla en 220 Ohm

Las 3 resistencias deben conectarse al GND Las 3 resistencias deben conectarse al GND. Podríamos colocarlas en los GND inferiores pero no es eficiente.

Encender los 3 Leds al mismo tiempo.

Usar una batería Girar el arduino 180 grados para tener comodidad.

En este diseño le hacemos resistencia al lado positivo y tierra al negativo. Dejamos la resistencia en 1 KOhm

Modificamos el diseño de manera que positivo a positivo y negativo a negativo sin tierra.

Bloques Código Borrar Elementos de arrastre

Elegir 4

Seleccionar control y arrastrar esperar 1 segundo Repetir pero en baja

Introducción a la programación en Arduino Todo programa (sketch) escrito para Arduino tiene dos funciones básicas: setup y loop. Usaremos la función setup para inicializar variables y establecer un punto de partida de nuestro sketch. La función loop contendrá la actividad central de nuestro código, que se ejecutará en un bucle infinito mientras la placa Arduino tenga alimentación eléctrica.

¿ Y por qué un bucle infinito forzoso. Muy sencillo ¿ Y por qué un bucle infinito forzoso? Muy sencillo. Nuestro Arduino tiene que estar continuamiente ejecutándose para comprobar el estado de los sensores y actuadores conectados. Así, dependiendo del estado de estos se actuará de una forma u otra cada vez. Una vez indicado el esqueleto básico de un sketch (programa), vamos a enumerar los tipos principales con los que podremos crear variables: boolean, char, byte, int, long, float, double, string (array de char), String (objeto) y array. De los tipos primitivos anteriores derivan los tipos unsigned, como unsigned int o unsigned long.

Para delimitar una instrucción de nuestro programa usaremos el símbolo de cierre «;». Para poner comentarios en nuestro código usaremos «//» para comentarios de una línea o «/* codigo */» para varias líneas. Finalmente, las cabeceras #define y #include nos servirán para declarar constantes y añadir librerías, respectivamente.

Operaciones Aritmético-lógicas Existe una seria de constantes muy importantes para trabajar en Arduino. Las más usadas son: HIGH y LOW: Representan una corriente a nivel alto (un 1 en digital) o a nivel bajo (0 en digital) INPUT y OUTPUT: Para indicar si un elemento es de entrada (sensor) o de salida (actuador) true y false: Representan verdadero y falso

Para las operaciones aritméticas disponemos de los siguientes operadores: Asignación: = Suma: + Resta: – Multiplicación: * División: / Módulo (resto de división): %

Para realizar operaciones de comparación y operaciones lógicas tenemos los siguientes: Igual a: == Distinto de: != Menor que: < Mayor que: > Menor o igual que: >= Mayor o igual que: <= Y lógico (AND): && O lógico (OR): || Negación lógica (NOT): !

Estructuras de control Una vez presentados los tipos de datos básicos y cómo compararlos, pasamos a ver las estructuras de control que permitirán modificar el flujo de nuestro programa: if: Representa una condición lógica que debe cumplirse. Si se cumple, se ejecutarán una serie de instrucciones de nuestro código else: Representa una condición que no se cumple. Se suele usar junto a un if, para establecer la situación de «if-else». Es decir, si condición X ejecuto A, si no se cumple X, ejecuto B

for (condición): Bucle en el que se ejecutarán una serie de instrucciones concretas, y se repetirá hasta dejar de cumplir la condición definida while (condición): Bucle mientras en el que se ejecutarán instrucciones mientras se cumpla la condición break: salir de un bucle continue: pasar a la siguiente iteración de un bucle return: salir de una función devolviendo un valor

Operaciones digitales y analógicas Recordemos brevemente qué son la electrónica digital y analógica. Un dispositivo digital es aquel que se basa en una onda cuadrada, que sólo tiene dos posibles estados: 0 (apagado) y 1 (encendido). Un dispositivo analógico está basado en una onda sinusoidal que puede tomar gran cantidad de valores. Por último, vamos a plantear las funciones básicas para tratamiento de entrada-salida digital y analógica:

pinMode(pin, mode): establece el comportamiento de un pin de Arduino concreto pin: entero positivo que indica el puerto de la placa al que está conectado mode: constante OUTPUT o INPUT para indicar si el dispositivo conectado es de entrada o salida a la placa digitalRead(pin): lee el valor digital del sensor conectado en «pin». Devuelve HIGH o LOW pin: puerto de la placa Arduino al que está conectado el sensor

digitalWrite(pin, value): escribe un valor digital al actuador conectado en «pin» pin: puerto de la placa Arduino al que está conectado el actuador value: valor HIGH o LOW para indicar si mandamos un valor de tensión alto o bajo al dispositivo analogRead(pin): lee el valor analógico del sensor conectado en «pin». Devuelve un valor entre 0 y 1023

pin: puerto de la placa Arduino al que está conectado al sensor analogWrite(pin, value): escribe un valor analógico al actuador conectado en «pin», muy útil en PWM pin: puerto de la placa Arduino al que está conectado el actuador value: valor entre 0 y 255 enviado al dispositivo actuador

Modulación por Ancho de Pulsos (PWM) Para entender bien cómo trabaja la función analogWrite() explicaremos superficialmente el funciomiento de PWM, o Modulación por Ancho de Pulsos. Supongamos una onda eléctrica cuadrada, en la que tendremos los valores HIGH y LOW. Esta técnica nos permitirá modificar el ancho de cada ciclo de la onda para hacerlo más largo o más corto. El resultado de esta técnica aplicada a un led supondría establecer la intensidad lumínica.

Más despacio, ¿quieres?. Imagina que esta onda circula a una velocidad muy muy grande. Si pasa mucho tiempo en estado alto supondrá que estará mucho rato «encendida» y por tanto estaremos más tiempo viendo el led brillar. Sin embargo, si estamos mucho tiempo en estado bajo, la luminosidad del led desprendida será menor. Entendamos este fenómeno como un efecto óptico. Nuestro ojo integra las imágenes como si fuesen fotogramas. Cuantos más fotogramas vea con luminosidad, mayor será la intensidad del color del led.

¿Todo esto para explicar la función analogWrite(). Sí ¿Todo esto para explicar la función analogWrite()? Sí. Esta función es imprescindible para poder trabajar con dispositivos analógicos, que suponen una de las complicaciones iniciales en Arduino. Así, los valores 0 y 255 supondrán un led totalmente apagado o totalmente encendido, respectivamente. Si vamos aumentando el valor iremos viendo que la luminosidad crece de forma constante. Para completar la información anterior tenéis la referencia al lenguaje Arduino en la web del proyecto. En ella se desarrolla cada uno de los elementos del lenguaje citados.

Ejercicios