Arduino conocimientos basicos

30
ARQUITECTURA ARDUINO Jerson Antonio Enamorado 20091001600 Universidad Nacional Autónoma de Honduras Ing. Elmer Padilla IS603 ARQUITECTURA DE COMPUTADORAS

description

tipos de Arduino

Transcript of Arduino conocimientos basicos

Page 1: Arduino conocimientos basicos

Jerson Antonio Enamorado

Universidad Nacional Autónoma de Honduras

Ing. Elmer PadillaIS603 ARQUITECTURA DE COMPUTADORAS

Page 2: Arduino conocimientos basicos

ContenidoIntroducción......................................................................................................................................2

Objetivo..............................................................................................................................................3

Arduino..............................................................................................................................................4

Formatos y desarrollos disponibles de Arduino.................................................................................5

Arquitectura del microcontrolador:.................................................................................................10

Entradas y Salidas.............................................................................................................................18

Señales Analógicas y Digitales..........................................................................................................19

Funcionamiento del microcontrolador.............................................................................................19

Circuitos para conectar las entradas y las salidas.............................................................................19

Software: el lenguaje y entorno de programación...........................................................................21

Estructura general............................................................................................................................22

Page 3: Arduino conocimientos basicos

Introducción

Arduino es una placa electrónica programable que se puede configurar por una variedad de lenguajes de programación, arquitectura de la placa Arduino conoceremos los compone y presentamos los diferentes tipo de Arduino que existe en el mercado.

Para la utilización de este tipo de placa se debe tener en cuenta conocimiento básico de electrónica y el manejo de algún lenguaje compartible con Arduino.

Page 4: Arduino conocimientos basicos

Objetivo

Conocer que es Arduino.

Conocer la arquitectura de Arduino.

Saber cómo es la estructura de un programa para la configuración de Arduino.

Page 5: Arduino conocimientos basicos

Arduino

ARDUINO es una placa basada con un microcontrolador o chip: ATmega168 (Duemilanov=Atmega 328) que permite conectar sensores y actuadores mediante sus entradas y salidas, analógicas y digitales.Los proyectos pueden ser autónomos o conectados con software (Flash, Processing, MaxMSP, etc) a través del puerto serie Arduino es una:

Plataforma de recurso abierto (“open source”) basada en un software y hardware de amistoso utilizada ampliamente por artistas, diseñadores, etc.Software - ARDUINO - se inspira en Wiring y un entorno de desarrollo integrado (IDE integrated development environment) propio -basado en Processing.

Page 6: Arduino conocimientos basicos

La placa es una placa de circuito impreso donde va instalado el microprocesador, la memoria, las conexiones de entrada y salida y la conexión para el puerto USB.Puerto USB: a través de él se cargan las instrucciones a ejecutar, el programa que es realizado en el entorno de programación de Arduino. Comunicación Arduino-Ordenador. Microprocesador: realiza las instrucciones almacenadas en el programa de forma cíclica. Es un circuito integrado que contiene muchas de las mismas cualidades que una computadora. Escribe en los pines DS2-13 y lee en los DE2-13 AE0-5. Botón de reset: permite resetear el programa Pines de entrada y salida: Permiten y permite cargar uno nuevo. Conectar elemento que dan información y crean actuaciones. Entradas salidas, alimentación, conexionado.

Formatos y desarrollos disponibles de Arduino.

Tipos de Arduino boards

Page 7: Arduino conocimientos basicos

Arduino LilyPad:El LilyPad Arduino es una placa con microcontrolador diseñado para prendas y e-textiles. Puede utilizar con complementos similares como fuentes de alimentación, sensores actuadores unidos por hilo conductor. La placa esta basada en el ARmega168V (la versión de baja consumo del ATmega168)(hoja de datos), o el ATmega328V (datasheet). ElLilyPad Arduino ha sido diseñado y desarrollado por Leah Buechley y SparkFun Electronics.

Arduino Mega: El Arduino Mega es una placa microcontrolador basada ATmeg1280 (datasheet). Tiene 54 entradas/salidas digitales (de las cuales 14 proporcionan salida PWM), 16 entradas digitales, 4 UARTS (puertos serie por hardware), un cristal oscilador de 16MHz, conexión USB, entrada de corriente, conector ICSP y botón de reset. Contiene todo lo necesario para hacer funcionar el microcontrolador; simplemente conectálo al ordenador con el cable USB o aliméntalo con un trasformador o batería para empezar. El Mega es compatible con la mayoría de shields diseñados para el Arduino Duemilanove o Diecimila

Arduino Fio:El Arduino Fio is una placa para microcontrolador basada en el ATmega328P (hoja de información) Funciona a 3.3V y 8MHz. Tiene 14 pines de E/S digitales (de los cuales 6 pueden usarse como salidas PWM), 8 entradas analógicas, unresonator en placa, un botón de reinicio (reset), y agujeros para montar conectores de pines. Tiene conexiones para una batería de polímero de Litio e incluye un circuito de carga a través de USB. En el reverso de la placa tiene disponible un zócalo para módulos XBee.

Arduino Pro:La Arduino pro es una placa con un microcontrolador ATmega168 (datasheet) o en el ATmega328 (datasheet). La Pro viene en versiones de 3.3v / 8 MHz y 5v /

Page 8: Arduino conocimientos basicos

16 MHz. Tiene 14 E/S digitales (6 de las cuales se puedes utilizar como salidas PWM), 6 entradas analógicas, un resonador interno, botón de reseteo y agujeros para el montaje de tiras de pines. Vienen equipada con 6 pines para la conexión a un cable FTDI o a una placa adaptadora de la casa Sparkfun para dotarla de comunicación USB y alimentación

Arduino Nano:El Arduino Nano es una pequeña y completa placa basada en el ATmega328 (Arduino Nano 3.0) o ATmega168 (Arduino Nano 2.x) que se usa conectándola a una protoboard. Tiene más o menos la misma funcionalidad que el Arduino Duemilanove, pero con una presentación diferente. No posee conector para alimentación externa, y funciona con un cable USB Mini-B en vez de el cable estandar. El nano fue diseñado y está siendo producido por Gravitech.

Arduino BT:El módulo Bluetooth utilizado es el Bluegiga WT11, la versión iWrap (detalles y hoja de información [pdf]). El módulo Bluetooth se puede configurar con comandos enviados a través del puerto serie del ATmega168 (consulta la guía del usuario iWrap para más detalles). Un programa para configurar el nombre y código del módulo bluetooth se ejecuta una vez en cada BT Arduino. El nombre se establece en ARDUINOBT y el código de acceso en 12345. 

Arduino Mini:Arduino Mini es una placa con un pequeño microcontrolador basada en el ATmega168 (datasheet), pensada para ser usada en placas de prototipado y donde el espacio es un bien escaso. Cuenta con 14 entradas/salidas digitales (de las cuales 6 pueden ser usadas como salidas PWM ), 8 entradas analógicas y un cristal de 16 MHZ. Puede ser programada con eladaptador Mini USB u otros adpatadores USB o RS232 a TTL serial.

Page 9: Arduino conocimientos basicos

Arduino Pro Mini:La Arduino Mini pro es una placa con un microcontrolador ATmega168 (datasheet). Tiene 14 E/S digitales (6 de las cuales se puedes utilizar como salidas PWM), 6 entradas analógicas, un resonador interno, botón de reseteo y agujeros para el montaje de tiras de pines. Se le puede montar una tira de 6 pines para la conexión a un cable FTDI o a una placa adaptadora de la casa Sparkfun para dotarla de comunicación USB y alimentación.

USB/Serial Light Adapter:Es una placa básica que utiliza una interfaz RS232 para comunicarse con el ordenador o para la carga de sketches. Esta placa es fácil de montar, incluso como ejercicio de aprendizaje. Se ha diseñado para utilizar los componentes más simples posibles, de manera que sea fácil de construir, incluso si buscas las componentes en la tienda de la esquina.

Official Arduino Shields

Arduino Ethernet Shield:

La Arduino Ethernet Shield permite a una placa Arduino conectarse a internet. Está basada en el chip ethernet Wiznet W5100 (datasheet).

Page 10: Arduino conocimientos basicos

El Wiznet W5100 provee de una pila de red IP capaz de TCP y UDP. Soporta hasta cuatro conexiones de sockets simultáneas. Usa la librería Ethernet para escribir programas que se conecten a internet usando la shield.

Arduino Wireless SD Shield:El Wireless SD protector permite una placa Arduino para comunicarse de forma inalámbrica mediante un módulo inalámbrico. Se basa en los módulos XBee de Digi, pero puede utilizar cualquiera de los módulos con la misma huella. El módulo se puede comunicar hasta 100 pies en interiores o al aire libre de 300 pies (con línea de visión). Puede ser utilizado como un reemplazo de serial / USB o puede ponerlo en un modo de comandos y configurarlo para una variedad de opciones de transmisión y redes de malla. Los escudos estalla cada uno de los pins el XBee a una almohadilla de soldadura a través de orificios.

Arduino Wireless Proto Shield: El Wireless escudo Proto permite una placa Arduino para comunicarse de forma inalámbrica mediante un módulo inalámbrico. Se basa en los módulos XBee deDigi, pero puede utilizar cualquiera de los módulos con la misma huella. El módulose puede comunicar hasta 100 pies en interiores o al aire libre de 300 pies (con línea de visión). Puede ser utilizado como un reemplazo de serial / USB o puedeponerlo en un modo de comandos y configurarlo para una variedad de opciones de transmisión y redes de malla. Los escudos estalla cada uno de los pins el XBee a una almohadilla de soldadura a través de orificios.Arduino Motor Shield: 

El Arduino protector del motor se basa en la L298 (hoja de datos), que es un doble puente completo controlador diseñado para manejar cargas inductivas tales como relés, solenoides y motores de corriente continua paso a paso. Le permitemanejar dos motores de corriente continua con su placa Arduino, el control de la velocidad y dirección de cada uno de forma

Page 11: Arduino conocimientos basicos

independiente. También se puede medir la absorción de corriente del motor de cada motor, entre otras características. El escudo es TinkerKit compatible, lo que significa que puede crear rápidamente proyectos conectando módulos TinkerKit a la junta.Arduino Proto Shield: El Arduino Shield prototipos hace que sea fácil para usted para diseñar circuitospersonalizados. Se puede soldar piezas en el área de prototipo para crear su proyecto, ni lo use con un pequeño breadboard (no incluido) para probar rápidamente las ideas de circuitos sin necesidad de soldadura. Tiene conexiones adicionales para todos los Arduino pines I / O, y tiene espacio para montar a través de agujero y la superficie de montaje de circuitos integrados. Es una forma conveniente de hacer el circuito de la costumbre y la Arduino en un único módulo.

Arquitectura del microcontrolador:

Aref- Pin de referencia analógica (naranja) GND- Señal de tierra digital (verde claro) Pines digitales 2-13. Entrada y salida (verde) Pines digitales 0-1 / entrada y salida del puerto serie: TX/RX (verde oscuro) Botón de reset- Pulsador(azul oscuro) Pines de entrada analógica 0-5 (azul claro) Pines de alimentación y tierra (fuerza: naranja, tierra: naranja claro) Entrada de la fuente de alimentación externa (9-12V DC) X1 (rosa) Puerto

USB (amarillo) Tiene 14 pins D I/O (6 pueden ser usados como PWM O o A/O), y 6 A/I .

Cada uno, puede ser usado como I o O, usando las funciones pinMode(), digitalWrite() y digitalRead().

Conector USB Jack de poder

Page 12: Arduino conocimientos basicos

Cabezal ICSP o In Circuit Serial Programmer Botón reseteo

Cabezal ICSP o In Circuit Serial ProgrammerEs un método para programar microcontroladores AVR y PIC sin tener que desmontarlos del circuito impreso Sirve para poder programar el bootloader de Arduino.Bootloader es el programa básico que escucha al puerto serie y así poder descargar programas desde el IDE.

Chips con programador externo son:

PIC Basic Stamp ARM MSP430

Page 13: Arduino conocimientos basicos

Externo (en vez de 5V), se puede suplir V usando este pin o, si se utiliza el jack de poder, accede vía este pin.

usa poderse Cuando .voltajeinput VIN. •

Page 14: Arduino conocimientos basicos

a microcontrolador y otros componentes de la placa. Este puede venir desde VIN o suplido por USB u otro componente de 5V.

dar energía para egulada r poderde Fuente V. 5

Page 15: Arduino conocimientos basicos

Una fuente de 3.3 Volts generada por el chip FTDI chip. Corriente máxima de 50 mA.

3. V 3

Page 16: Arduino conocimientos basicos

Pin tierra.

GND.

Page 17: Arduino conocimientos basicos

0 (RX) y 1 (TX). Recibe y transmite data serial.

Page 18: Arduino conocimientos basicos

. (

analogWrite() función

utilizando bits 8-e dutputs oPWM PWM: 3, 5, 6, 9, 10 y 11.

Page 19: Arduino conocimientos basicos

Entradas y Salidas

El microcontrolador recibe información de las entradas (read), la procesa y escribe un 1 o un 0 (5v ó 0v) en las salidas (Write), actuando sobre el dispositivo que tenemos conectado. Al microcontrolador por lo tanto conectamos unos sensores a la entrada y unos actuadores a la salida, para que en función del programa y de la lectura de los sensores se produzcan una serie de actuaciones. Entrada-sensores salidas-actuadores

Pulsadores leds, motores LDR, Piezoeléctrico... zumbadores....

* LED: pin 13.Led integrado cuando pin esta en valor HIGH,led está on y cuando pin está en LOW, está

Microc ontrolad or

Page 20: Arduino conocimientos basicos

Señales Analógicas y Digitales

Una señal es analógica cuando puede tomar infinitos valores entre su valor mínimo y máximo. Elementos análogicos: Potenciómetro, ldr, ntc, Zumbador, motor electrico, ¿Led?. Una señal es digital cuando solo puede tomar 2 valores, el máximo asociado a 1 o a cierto “on” y el mínimo asociado a cero, falso o “off”. Elementos digitales: pulsador, detector de presencia, ¿led?, timbre. Ejercicio: Realizar una tabla clasificando a los elementos en entradas y salidas y a su vez en analógicas o digitales.

Funcionamiento del microcontrolador Función DigitalWrite

Función Write: Pines de salida (escribir) High: el microntrolador escribe un 1 en el pin de salida, es decir 5v. El led se enciende. Low: el microntrolador escribe un 0 en el pin de salida, es decir 0v. El led no se enciende. Función DigitalRead El microcontrolador lee la tensión en el pin de entrada si V>3,5v asigna un 1, si V<3,5v asigna un 0.

Circuitos para conectar las entradas y las salidas

Page 21: Arduino conocimientos basicos

Los circuitos para conectar los principales elementos de entrada y salida son:

Page 22: Arduino conocimientos basicos

Software: el lenguaje y entorno de programación Para comunicarnos con el microcontrolador y cargarle los programas usamos IDE (Integrated Development Environment), sistema de desarrollo de Arduino, sirve para escribir programas, compilarlos y descargar los programas a la placa de arduino. Un programa es una secuencia de instrucciones que son ejecutadas por una computadora o un microcontrolador, es una secuencia específica para realizar una tarea. Los programas son escritos en diferentes tipos de lenguajes, tales como “C”, Fortran o BASIC. El programa (lenguaje de alto nivel, “humano”) se compila (se transforma en 1 y 0) y se carga en el microprocesador que lo ejecuta de forma cíclica. Para programar el micro se utiliza el IDE de Arduino, en el se escribe un programa que se carga en el microprocesador mediante el puerto usb. Para ello ejecutar arduino.exe desde la carpeta c:/arduino. Se debe configurar el puerto a usar (previamente hay que instalar el driver de la placa para que reconozca el puerto, buscarlo en c:/arduino/drivers/FTDI USB Drivers).Para mirar el puerto a usar Mi Pc>Propiedades del Sistema>Herramientas> Administrador de dispositivos> Puertos. Ej: COM3. Además se debe configurar el tipo de placa. Ej: ATMega168 Cargar el ejemplo Blink File>Sketchbook>examples>digital>Blink El lenguaje de programación de Arduino es muy sencillo. Un programa puede tener una estructura como:

Page 23: Arduino conocimientos basicos

Es importante el orden y la limpieza en la realización de los programas y el uso de los comentarios //, y la tabulación en los bucles para facilitar su comprensión.

Estructura general Declaración de variables: en esta parte declaramos todas las variables que vamos a usar en el programa. Nos permite asociar nombres a números lo que nos será de mucha utilidad a la hora de modificar los programas.

Void setup{} es la función de configuración de los pines de Arduino y sólo se ejecuta una vez, mientras que loop() se ejecuta una y otra vez hasta que apaguemos el sistema, o se gasten las baterías Bucle infinito Void loop{} es la parte del programa que se ejecuta de forma cíclica.

Comandos básicos HIGH - 5V - TRUE (Verdadero) - 1 lógico LOW - 0V - FALSE (Falso) - 0 lógico

Variables int entero corto

Page 24: Arduino conocimientos basicos

Los vectores son conjuntos de variables, se declaran como las variables normales, pero con unos corchetes y se dan los valores entre llaves, ejemplo: int vector[] = {1, 5, 23}. En inglés se llaman arrays

Estructuras de control - bucle for(condición inicial; condición final; incremento) es un comando para repetir la misma operación un cierto número de veces. - if (condición) {} es un comando que sirve para discriminar si se dio una determinada condición. Las comparaciones son: == igualdad, != desigualdad, > mayor que, < menor que, >= mayor o igual que, y <= menor o igual que. Todo lo que figure entre las llaves será ejecutado sólo si se da la condición entre paréntesis. - if else

Verifica si se cumple una condición y ejecuta lo que esta entre llaves, sino se cumple ejecuta lo que esta debajo del else.

- while Ejecuta el conjunto de intrucciones entre llaves mientras se cumpla la condición. Temporizadores

- delay(ms tiempo), sirve para parar los procesos de la placa durante un cierto tiempo en milisegundos. - delayMicroseconds(us tiempo), sirve para parar los procesos de la placa durante un cierto tiempo en microsegundos. - millis() Devuelve el tiempo en milisegundos, desde que la tarjeta Arduino activó el programa que se está ejecutando.

long time; // entero de tipo largo. void setup(){ Serial.begin(9600); } void loop(){ Serial.print("Time: "); time = millis(); //muestra el tiempo desde que el programa comenzó Serial.println(time); // espera un segundo para no enviar una cantidad masiva de datos delay(1000); } Pines digitales pinMode(pin, modo), sirve para declarar un pin como entrada (INPUT) o como salida (OUTPUT) digitalWrite(pin, valor), sirve para escribir un valor al pin, el valor podrá ser 1 lógico (HIGH) o 0 lógico (LOW) digitalRead (pin), lee un valor de 0 o 1 de la entrada digital. Pines analógicos analogRead (pin)

Page 25: Arduino conocimientos basicos

analogWrite(pin, valor) escribe una señal al pin 9, 10, u 11 cuyo ancho de pulso se controla con valor. El ancho se codifica en 256 niveles, es decir, podremos introducir números del 0 al 255. - PWM (Pulse Width Modulation), la modulación por anchura de pulso es una técnica que empleamos para producir señales digitales que, filtradas, se comportarán como señales analógicas. El PWM en Arduino funciona a una frecuencia constante por encima de los 60Khz. Mediante el comando.

Comunicación con el Puerto Serie Serial.begin (speed) Inicializa o abre el puerto serie asignándole una velocidad de transmisión de datos (bits por segundo). Dicha función debe ser llamada desde dentro de la estructura o sección setup(). Equivaldría a la función beginSerial(). int speed: velocidad de datos, en bits por segundo (baudios) Serial.print (data, data type) Vuelca o envía un número o una cadena de carateres, al puerto serie. Dicho comando puede tomar diferentes formas, dependiendo de los parámetros que utilicemos para definir el formato de volcado de los números. data: el número o la cadena de caracteres a volcar o enviar. data type: determina el formato de salida de los valores numéricos (decimal, octal, binario, etc...) #Serial.print(b, DEC) vuelca o envía el valor de b como un número decimal en caracteres ASCII. Equivaldría a printInteger(). #Serial.print(str) vuelca o envía la cadena de caracteres como una cadena ASCII. Equivaldría a printString(). Serial.println (data, data type) es igual que serial.print pero con un retorno de carro.