2. ARQUITECTURA DE COMPUTADORES Y ENSAMBLADORES1
PREFACIO
La finalidad del documento es demostrar respecto a uno de los nuevos avances en tecnología respecto al Hardware y Software. Su finalidad es enseñar al lector acerca de la plataforma Arduino. En una cultura en la cual estas tecnologías aún se muestran aun prematuras, también ha de ser un nuevo impulso para los avances a controlar lo que nos rodea con este pequeño micro controlador.
Pero la dificultad del aprendizaje para el lenguaje, si no se tienen conocimientos básicos de programación, no deben inducir a que se abstenga uno de tratar de conocer esta plataforma. A fin de evitar complicaciones innecesarias se ha procurado tratar de explicar, en la mayor medida posible, los datos más relevantes para los cuales apoyarse para tener un conocimiento verdadero de esta plataforma.
3. ARQUITECTURA DE COMPUTADORES Y ENSAMBLADORES1
ÍNDICE
PREFACIO ............................................................................................................................................ 2
ÍNDICE ................................................................................................................................................. 3
INTRODUCCIÓN .................................................................................................................................. 6
OBJETIVO GENERAL ............................................................................................................................ 7
OBJETIVOS ESPECIFICOS .................................................................................................................. 7
JUSTIFICACION .................................................................................................................................... 8
INSTALACION ...................................................................................................................................... 9
CONFIGURACION .............................................................................................................................. 12
TIPOS DE ARDUINO........................................................................................................................... 16
ARDUINO ONE ............................................................................................................................... 16
ARDUINO LEONARDO .................................................................................................................... 16
ARDUINO YÚN ............................................................................................................................... 16
ARDUINO ROBOT ........................................................................................................................... 17
ARDUINO ESPLORA ....................................................................................................................... 17
ARDUINO ETHERNET ..................................................................................................................... 18
ARDUINO MINI .............................................................................................................................. 18
ARDUINO NANO ............................................................................................................................ 18
ARDUINO PRO MINI ...................................................................................................................... 19
ARDUINO MICRO ........................................................................................................................... 19
LILYPAD ARDUINO USB.................................................................................................................. 19
PARTES DE UN ARDUINO .................................................................................................................. 20
HISTORIA ........................................................................................................................................... 21
CURIOSIDADES .............................................................................................................................. 21
PROYECTOS CON ARDUINO ........................................................................................................... 22
FUNCIONES PRINCIPALES ................................................................................................................. 24
ESTRUCTURA DEL LENGUAJE ............................................................................................................ 26
ESTRUCTURA BÁSICA .................................................................................................................... 26
OPERADORES ARITMETICOS ..................................................................................................... 26
OPERADORES DE COMPARACION ............................................................................................. 27
4. ARQUITECTURA DE COMPUTADORES Y ENSAMBLADORES1
OPERADORES BOOLEANOS ....................................................................................................... 27
IF, IF…ELSE ................................................................................................................................. 27
FOR ............................................................................................................................................ 27
SWITCH CASE ............................................................................................................................. 28
WHILE ........................................................................................................................................ 28
VARIABLES .................................................................................................................................... 28
CONSTANTES ............................................................................................................................. 28
TIPOS DE DATOS ........................................................................................................................ 28
CONVERSIONES ......................................................................................................................... 29
AMBIENTE DE LAS VARIABLES ................................................................................................... 29
FUNCIONES ................................................................................................................................... 29
I/O DIGITALES ............................................................................................................................ 29
I/O ANALOGICOS ....................................................................................................................... 29
I/O AVANZADOS ........................................................................................................................ 29
TIEMPO ...................................................................................................................................... 30
MATEMATICAS .......................................................................................................................... 30
TRIGONOMETRICAS................................................................................................................... 30
NUMEROS ALEATORIOS ............................................................................................................ 30
BITS Y BYTES .............................................................................................................................. 31
INTERRUPCIONES EXTERNAS..................................................................................................... 31
INTERRUPCIONES ...................................................................................................................... 31
COMUNICACIÓN ........................................................................................................................ 31
EJEMPLOS .......................................................................................................................................... 32
ENCENDIDO Y APAGADO DE TRES LEDS ........................................................................................ 32
CODIGO ..................................................................................................................................... 32
LECTURA DE UN PULSADOR .......................................................................................................... 33
CODIGO ..................................................................................................................................... 33
POTENCIOMETRO: LECTURA DE UNA SEÑAL ANALOGICA ............................................................ 34
CODIGO ..................................................................................................................................... 34
CONTADOR DE 0 A 10 ................................................................................................................... 35
CODIGO ..................................................................................................................................... 36
GENERADOR DE NOTAS MUSICALES ............................................................................................. 37
CODIGO ..................................................................................................................................... 38
5. ARQUITECTURA DE COMPUTADORES Y ENSAMBLADORES1
ERRORES COMUNES ......................................................................................................................... 39
¿Por qué tardan el software Arduino y/o el menú Herramientas mucho tiempo en abrir (en Windows)? .................................................................................................................................... 39
¿Por qué no puedo subir mis programas a la placa Arduino? ...................................................... 39
¿Por qué aparece un java.lang.StackOverflowErrorcuando intento compilar mi programa? ...... 40
¿Qué pasa si mi tarjeta no se enciende (el LED verde no se enciende)? ...................................... 40
¿Qué pasa con el error “No se pudo encontrar la clase principal.”? ............................................ 41
¿Por qué se congela Arduino cuando intento cargar un programa? (En Windows)? ................... 41
¿Por qué no me no aparece mi placa en el menú Tools | Serial Port? ......................................... 41
¿Qué debo hacer si me da un error al lanzar “arduino.exe” en Windows?.................................. 41
PREGUNTAS FRECUENTES ................................................................................................................ 43
¿Qué quiere usted decir con hardware de código abierto? ......................................................... 43 ¿Cómo puedo obtener una placa Arduino? .................................................................................. 43
¿Cuáles son las palcas oficiales de Arduino?................................................................................. 43
¿Puedo programar el Arduino en C? ............................................................................................. 43
¿Puedo usar un IDE diferente para programar la placa Arduino? ................................................ 44
CONCLUSIONES ................................................................................................................................. 45
RECOMENDACIONES ........................................................................................................................ 46
BIBLIOGRAFIA ................................................................................................................................... 47
ARDUINO WEBSITE ........................................................................................................................ 47
ENLACES DE AYUDA .......................................................................................................................... 48
6. ARQUITECTURA DE COMPUTADORES Y ENSAMBLADORES1
INTRODUCCIÓN
Arduino es una herramienta para la toma de los equipos que pueden detectar y controlar más del mundo físico del ordenador de sobremesa. Es una plataforma de computación física de código abierto basado en una placa electrónica simple, y un entorno de desarrollo para escribir software para la placa.
Arduino se puede utilizar para desarrollar objetos interactivos, teniendo las entradas de una variedad de interruptores o sensores, y el control de una variedad de luces, motores y otras salidas físicas. Los proyectos de Arduino pueden ser autónomos, o pueden comunicarse con el software que se ejecuta en la computadora (por ejemplo, Flash, Processing, MaxMSP) Las tablas se pueden montar a mano o comprados pre-ensamblada.
El IDE de código abierto se puede descargar de forma gratuita, el lenguaje de programación de Arduino es una implementación de cableado, una plataforma que se basa en el entorno de programación multimedia de procesamiento.
7. ARQUITECTURA DE COMPUTADORES Y ENSAMBLADORES1
OBJETIVO GENERAL
Dar a conocer aspectos importantes sobre configuración, instalación y programación de la plataforma Arduino.
OBJETIVOS ESPECIFICOS
Aprender los conceptos básicos de un micro controlador
Realizar programas sencillos para el aprendizaje de esta plataforma
Conocer los tipos de Arduino y las partes que lo componen
8. ARQUITECTURA DE COMPUTADORES Y ENSAMBLADORES1
JUSTIFICACION
Hay muchos otros micro controladores y plataformas de micro controladores disponibles para la computación física. Arduino simplifica el proceso de trabajar con micro controladores, pero ofrece algunas ventajas para los profesores, estudiantes y aficionados interesados sobre otros sistemas.
Asequible: Las placas Arduino son relativamente baratas en comparación con otras plataformas de micro controladores.
Multiplataforma: Se ejecuta en los sistemas operativos Windows, Macintosh OSX y Linux. La mayoría de los sistemas de micro controladores están limitados a Windows.
Entorno de programación simple, claro.
El software está publicado como código abierto, disponible para la extensión por programadores experimentados. El idioma se puede ampliar a través de las bibliotecas C ++.
Los planes para los módulos están publicados bajo una licencia de Creative Commons, por lo que los diseñadores de circuitos con experiencia pueden hacer su propia versión del módulo, ampliándolo y mejorándolo. Incluso los usuarios con poca experiencia pueden construir la versión tablero del módulo con el fin de entender cómo funciona y ahorrar dinero.
9. ARQUITECTURA DE COMPUTADORES Y ENSAMBLADORES1
INSTALACION
Primero lo que se debe realizar, es descargar el software oficial de la página de Arduino, como se puede observar es multiplataforma:
Se debe colocar el Arduino conectado con el cable usb al equipo, en Windows con Arduino One, aparece la siguiente ventana:
Posteriormente se debe ejecutar el Programa de Instalación, para este caso Windows y la versión 1.0.6 de Arduino:
10. ARQUITECTURA DE COMPUTADORES Y ENSAMBLADORES1
Nos aparecerán los términos de licencia, los cuales debemos aceptar “I Agree” para poder continuar con la instalación:
Durante la instalación se mostrara los componentes a instalar, en anteriores versiones como Windows XP, se instalaban los drives por aparte, en esta nueva versión todo se instala automática:
11. ARQUITECTURA DE COMPUTADORES Y ENSAMBLADORES1
Aparece la ventana respecto al controlador usb para el Arduino, aquí se da clic en “Instalar”
En el Administrador de Dispositivos se podrá observar de que ya está reconocido el Arduino Uno para el puerto COM3:
12. ARQUITECTURA DE COMPUTADORES Y ENSAMBLADORES1
CONFIGURACION
Al terminar la instalación y ejecutar la aplicación se debe de configurar el tipo de Arduino sobre el cual se estará trabajando, se navega desde el menú de “Herramientas”, “Tarjeta” y se seleccionar en este caso “Arduino Uno”:
13. ARQUITECTURA DE COMPUTADORES Y ENSAMBLADORES1
Posteriormente se verifica el puerto por el cual se trabaja con el Arduino One en “Herramientas”, “Puerto Serial”, “COM3”:
La plataforma, cuenta con una gran gama de ejemplos, de los cuales el más común es el “Blink”; se navega desde el menú “Archivo”, “Ejemplos”, “01.Basics”, “Blink”:
14. ARQUITECTURA DE COMPUTADORES Y ENSAMBLADORES1
Ya cargado el código de “Blink” se procede a compilarlo y cargarlo hacia el Arduino, para ello se debe dar clic al botón que indica la flecha hacia el lado derecho:
Cuando se ha terminado de transferir el programa compilado hacia el Arduino, se detalla un mensaje en la parte de debajo de la aplicación, la cual se ve de la siguiente forma:
15. ARQUITECTURA DE COMPUTADORES Y ENSAMBLADORES1
Lo que hace el Blink, es mandar un tren de pulsos constantes, similar a un reloj, los cuales se reflejan sobre el arduino
16. ARQUITECTURA DE COMPUTADORES Y ENSAMBLADORES1
TIPOS DE ARDUINO
ARDUINO ONE
Microcontrolador: ATmega328
Voltaje de funcionamiento: 5 V
Pines I/O digitales: 14 (de los cuales 6 proveen salida PWM)
Pines de entradas análogas: 6
Corriente DC por cada pin I/O: 40 mA
Corriente DC en el pin de 3.3 V: 50 mA
Memoria Flash: 32 KB (ATmega328) de los cuales 0.5 KB son utilizados por el bootloader
SRAM: 2 KB (ATmega328)
EEPROM: 1 KB (ATmega328)
Velocidad de reloj: 16 MHz
ARDUINO LEONARDO
Microcontrolador: ATmega32u4
Voltaje de funcionamiento: 5 V
Pines I/O digitales: 20
Pines de entradas análogas: 12
Corriente DC por cada pin I/O: 40 mA
Corriente DC en el pin de 3.3 V: 50 mA
Memoria Flash: 32 KB (ATmega32u4) de los cuales 4 KB son utilizados por el bootloader
SRAM: 2 KB (ATmega32u4)
EEPROM: 1 KB (ATmega328)
Velocidad de reloj: 16 MHz
ARDUINO YÚN
Microcontrolador: ATmega32u4
Voltaje de funcionamiento: 5 V
Pines I/O digitales: 20
Pines de entradas análogas: 12
Corriente DC por cada pin I/O: 40 mA
Corriente DC en el pin de 3.3 V: 50 mA
Memoria Flash: 32 KB (ATmega328) de los cuales 4 KB son utilizados por el bootloader
SRAM: 2.5 KB (ATmega328)
EEPROM: 1 KB (ATmega328)
Velocidad de reloj: 16 MHz
17. ARQUITECTURA DE COMPUTADORES Y ENSAMBLADORES1
ARDUINO ROBOT
Microcontrolador: ATmega32u4
Voltaje de funcionamiento: 5 V
Pines I/O digitales: 5
Canales PWM: 6
Canales de entradas análogas: 4 (de los pines digitales I/O)
Canales (multiplexados) de entradas análogas: 8
Corriente DC por cada pin I/O: 40 mA
Memoria Flash: 32 KB (ATmega32u4) de los cuales 4 KB son utilizados por el bootloader
SRAM: 2 KB (ATmega32u4)
EEPROM (interno): 1 KB (ATmega32u4)
EEPROM (externo): 512 KB (I2C)
Velocidad de reloj: 16 MHz
Teclado: 5 teclas
Perilla: Potenciómetro conectado a un pin análogo
LCD a color: Comunicación SPI
Lector de tarjetas SD: Para tarjetas formateadas FAT16
Altavoz: 8 Ohms
Compás digital: Proporciona la desviación desde el norte geográfico en grados
Áreas de prototipado: 4
ARDUINO ESPLORA
Microcontrolador: ATmega32u4
Voltaje de funcionamiento: 5 V
Memoria Flash: 32 KB de los cuales 4 KB son utilizados por el bootloader
SRAM: 2.5 KB
EEPROM: 1 KB
Velocidad de reloj: 16 MHz
4 Push bottons
Joystick análoga con un push botton central
Potenciómetro lineal
Micrófono
Fotorresistor
Sensor de temperatura
Acelerómetro de 3 ejes
Buzzer
Led RGB
Conector para LCD
18. ARQUITECTURA DE COMPUTADORES Y ENSAMBLADORES1
ARDUINO ETHERNET
Microcontrolador: ATmega328
Voltaje de funcionamiento: 5 V
Pines I/O digitales: 14 (de los cuales 4 proveen salida PWM)
Pines de entradas análogas: 6
Corriente DC por cada pin I/O: 40 mA
Corriente DC en el pin de 3.3 V: 50 mA
Memoria Flash: 32 KB (ATmega328) de los cuales 0.5 KB son utilizados por el bootloader
SRAM: 2 KB (ATmega328)
EEPROM: 1 KB (ATmega328)
Velocidad de reloj: 16 MHz
Controlador embebido Ethernet W5100 TCP/IP
Tarjeta MicroSD, con adaptadores activos de voltaje
ARDUINO MINI
Microcontrolador: ATmega328
Voltaje de funcionamiento: 5 V
Pines I/O digitales: 14 (de los cuales 6 proveen salida PWM)
Pines de entradas análogas: 8
Corriente DC por cada pin I/O: 40 mA
Memoria Flash: 32 KB de los cuales 2 KB son utilizados por el bootloader
SRAM: 2 KB
EEPROM: 1 KB
Velocidad de reloj: 16 MHz
ARDUINO NANO
Microcontrolador: ATmega168
Voltaje de funcionamiento: 5 V
Pines I/O digitales: 14 (de los cuales 6 proveen salida PWM)
Pines de entradas análogas: 8
Corriente DC por cada pin I/O: 40 mA
Memoria Flash: 16 KB de los cuales 2 KB son utilizados por el bootloader
SRAM: 1 KB
EEPROM: 512 bytes
Velocidad de reloj: 16 MHz
19. ARQUITECTURA DE COMPUTADORES Y ENSAMBLADORES1
ARDUINO PRO MINI
Microcontrolador: ATmega168
Voltaje de funcionamiento: 3.3 V
Pines I/O digitales: 14 (de los cuales 6 proveen salida PWM)
Pines de entradas análogas: 8
Corriente DC por cada pin I/O: 40 mA
Memoria Flash: 16 KB de los cuales 2 KB son utilizados por el bootloader
SRAM: 1 KB
EEPROM: 512 bytes
Velocidad de reloj: 8 MHz
ARDUINO MICRO
Microcontrolador: ATmega32u4
Voltaje de funcionamiento: 5 V
Pines I/O digitales: 20
Canales PWM: 7
Pines de entradas análogas: 12
Corriente DC por cada pin I/O: 40 mA
Corriente DC en el pin de 3.3 V: 50 mA
Memoria Flash: 32 KB (ATmega32u4) de los cuales 4 KB son utilizados por el bootloader
SRAM: 2.5 KB (ATmega32u4)
EEPROM: 1 KB (ATmega32u4)
Velocidad de reloj: 16 MHz
LILYPAD ARDUINO USB
Microcontrolador: ATmega32u4
Voltaje de funcionamiento: 3.3 V
Pines I/O digitales: 9
Canales PWM: 4
Pines de entradas análogas: 4
Corriente DC por cada pin I/O: 40 mA
Memoria Flash: 32 KB de los cuales 4 KB son utilizados por el bootloader
SRAM: 2.5 KB
EEPROM: 1 KB
Velocidad de reloj: 8 MHz
21. ARQUITECTURA DE COMPUTADORES Y ENSAMBLADORES1
HISTORIA
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 la misma con las ganancias que produciría vendiendo sus placas dentro del campus a un precio accesible (1 euro por unidad).
El primer prototipo de Arduino fue fabricado en el instituto IVRAE. Inicialmente estaba basado en una simple placa de circuitos eléctricos, donde estaban conectados; un micro controlador simple junto con resistencias de voltaje, además de que únicamente podían conectarse sensores simples como leds u otras resistencias, y es más, aún no contaba con el soporte de algún lenguaje de programación para manipularla.
CURIOSIDADES
Su nombre viene del nombre del bar Bar di Re Arduino donde Massimo Banzi pasaba algunas horas, el cual a su vez viene del nombre de un antiguo rey europeo allá por el año 1002.
A la fecha se han vendido más de 250 mil placas en todo el mundo sin contar las versiones clones y compatibles.
Google ha apostado por el proyecto y ha colaborado en el Android ADK (Accesory Development Kit), una placa Arduino capaz de comunicarse directamente con smartphones Android para obtener las funcionalidades del teléfono (GPS, acelerómetros,
22. ARQUITECTURA DE COMPUTADORES Y ENSAMBLADORES1
GSM, abases de datos) y viceversa para que el teléfono controle luces, motores y sensores conectados de Arduino.
El primer prototipo fue desarrollado en el instituto IVRAE pero aún no se llamaba Arduino.
Para la producción en serie de la primera versión se tomaron en cuenta algunas consideraciones: Economía (no > a 30 Euros), debía ser Plug and Play, utilizaron el color azul para marcar una diferencia con las placas convencionales, trabajar en todas las plataformas (Mac, Windows y Linux).
En la feria Maker Fair del 2011 se presentó la primera placa Arduino de 32 Bit para trabajar tareas más pesadas. Entre ellas se presentó la impresora en 3D de MakerBot capaz de imprimir en resina cualquier modelo en 3D.
PROYECTOS CON ARDUINO
Se han trabajado variedad de proyectos con Arduino, dentro de los cuales se citan algunos ejemplos:
Un carro inalámbrico, controlado con un control remoto vía bluetooth y con el Arduino como receptor con un sensor bluetooth
23. ARQUITECTURA DE COMPUTADORES Y ENSAMBLADORES1
Un juego con pantalla touch incorporada en el Arduino
El trabajar con otros dispositivos electrónicos, como el Keypad, como dispositivo de entrada hacia el Arduino
24. ARQUITECTURA DE COMPUTADORES Y ENSAMBLADORES1
FUNCIONES PRINCIPALES
BASICO
E/S DIGITALES
COMUNICACIÓN CON PC
ESTRUCTURAS DE CONTROL
ARDUINO BÁSICO: LECTURA SERIAL DIGITAL
ARDUINO DIGITAL: PULSADOR
25. ARQUITECTURA DE COMPUTADORES Y ENSAMBLADORES1
ARDUINO DIGITAL: REPRODUCCIÓN DE TONOS CON DISTINTAS SALIDAS
ARDUINO COMUNICACIÓN: ATENUADOR DE BRILLO
26. ARQUITECTURA DE COMPUTADORES Y ENSAMBLADORES1
ESTRUCTURA DEL LENGUAJE
ESTRUCTURA BÁSICA void setup() { // acá el código de setup, para que corra una vez: } void loop() { // acá el código principal para que corra repetidamente: }
EJEMPLO const int buttonPin = 3; // setup initializes serial and the button pin void setup() { Serial.begin(9600); pinMode(buttonPin, INPUT); } // loop checks the button pin each time, // and will send serial if it is pressed void loop() { if (digitalRead(buttonPin) == HIGH) Serial.write('H'); else Serial.write('L'); delay(1000); }
OPERADORES ARITMETICOS
= (Operador de Asignación)
+ (Adición)
- (Sustracción)
* (Multiplicación)
/ (División)
% (modulo)
27. ARQUITECTURA DE COMPUTADORES Y ENSAMBLADORES1
OPERADORES DE COMPARACION
== (Igual a)
!= (No igual a)
< (Menor que)
> (Mayor que)
<= (Menor o igual a)
>= (Mayor o igual a)
OPERADORES BOOLEANOS
&& (And)
|| (Or)
! (Not)
IF, IF…ELSE if (pinFiveInput < 500)
{
// do Thing A
} else if (pinFiveInput >= 1000)
{
// do Thing B
} else
{
// do Thing C
}
FOR
// Dim an LED using a PWM pin
int PWMpin = 10; // LED in series with 470 ohm resistor on pin 10
void setup()
{
// no setup needed
}
void loop()
{ for (int i=0; i <= 255; i++){
analogWrite(PWMpin, i);
delay(10);
}
28. ARQUITECTURA DE COMPUTADORES Y ENSAMBLADORES1
}
SWITCH CASE switch (var) {
case 1:
//do something when var equals 1
break;
case 2:
//do something when var equals 2
break;
default:
// if nothing else matches, do the default
// default is optional
}
WHILE
var = 0; while(var < 200){ // do something repetitive 200 times var++; }
VARIABLES
CONSTANTES HIGH | LOW INPUT | OUTPUT | INPUT_PULLUP LED_BUILTIN INTEGER CONSTANTS FLOATING POINT CONSTANTS
TIPOS DE DATOS
void
boolean
char
unsigned char
byte
int
unsigned int
word
long
29. ARQUITECTURA DE COMPUTADORES Y ENSAMBLADORES1
unsigned long
short
float
double
string - char array
String - object
array
CONVERSIONES
char()
byte()
int()
word()
long()
float()
AMBIENTE DE LAS VARIABLES
variable scope
static
volatile
const
FUNCIONES
I/O DIGITALES
pinMode()
digitalWrite()
digitalRead()
I/O ANALOGICOS
analogReference()
analogRead()
analogWrite() - PWM
I/O AVANZADOS
tone()
31. ARQUITECTURA DE COMPUTADORES Y ENSAMBLADORES1
BITS Y BYTES
lowByte()
highByte()
bitRead()
bitWrite()
bitSet()
bitClear()
bit()
INTERRUPCIONES EXTERNAS
attachInterrupt()
detachInterrupt()
INTERRUPCIONES
interrupts()
noInterrupts()
COMUNICACIÓN
Serial
Stream
32. ARQUITECTURA DE COMPUTADORES Y ENSAMBLADORES1
EJEMPLOS
ENCENDIDO Y APAGADO DE TRES LEDS
Se trata de encender y apagar 3 LEDs colocados en las salidas 6, 7 y 8 (PIN6, PIN7 y PIN8) con una cadencia de 200 ms. Las variables asignadas a cada led son ledPin1, ledPin2 y ledPin3.
CODIGO
// Encendido y apagado de 3 LEDs
int ledPin1 = 6; // Define las salidas de los LED´s
int ledPin2 = 7;
int ledPin3 = 8;
void setup() { // Configura las SALIDAS
pinMode(ledPin1, OUTPUT); // declarar LEDs como SALIDAS
pinMode(ledPin2, OUTPUT);
pinMode(ledPin3, OUTPUT);
digitalWrite(ledPin1, LOW); // Apaga los LEDs
digitalWrite(ledPin2, LOW);
digitalWrite(ledPin3, LOW);
}
void loop(){ //Bucle de Funcionamiento
33. ARQUITECTURA DE COMPUTADORES Y ENSAMBLADORES1
digitalWrite(ledPin1, HIGH); // Apaga y enciende los leds cada 200 ms
delay(200);
digitalWrite(ledPin1, LOW);
digitalWrite(ledPin2, HIGH);
delay(200);
digitalWrite(ledPin2, LOW);
digitalWrite(ledPin3, HIGH);
delay(200);
digitalWrite(ledPin3, LOW);
}
LECTURA DE UN PULSADOR
Se utiliza una resistencia pull-dowm, junto con un pulsador, para conectarla a un pin de entrada digital, y de esta forma, poder saber cuándo el pulsador es presionado. Si el pulsador está presionado, el valor del pin 10 será de 0 voltios (LOW) en caso contrario será de + 5 voltios (HIGH).
En una placa protoboard debe haber una resistencia de 10K conectada entre el pin de entrada y tierra como se ve el esquema y foto inferiores.
CODIGO
/* Pulsador
* --------
* Detecta si el botón ha sido presionado o no
* y enciende el LED en consecuencia.
*
34. ARQUITECTURA DE COMPUTADORES Y ENSAMBLADORES1
*/
int ledPin = 13; // PIN del LED
int inPin = 10; // PIN del pulsador
int value = 0; // Valor del pulsador
void setup() {
pinMode(ledPin, OUTPUT); // Inicializa el pin 13 como salida digital
pinMode(inPin, INPUT); // Inicializa el pin 10 como entrada digital
}
void loop() {
value = digitalRead(inPin); // Lee el valor de la entrada digital
digitalWrite(ledPin, value);
}
POTENCIOMETRO: LECTURA DE UNA SEÑAL ANALOGICA
Se conectan tres cables a la tarjeta Arduino. El primero va a tierra desde el terminal 1 del potenciómetro. El terminal 3 va a la salida de 5 voltios. El terminal 2 va desde la entrada analógica #2 hasta el terminal interno del potenciómetro.
Girando el dial o ajustando el potenciómetro, cambiamos el valor de la resistencia variable. Esto produce oscilaciones dentro del rango de 5 y 0 voltios, que son capturados por la entrada analógica.
CODIGO
/* Potenciómetro
* ------------------
35. ARQUITECTURA DE COMPUTADORES Y ENSAMBLADORES1
* enciende y apaga un LED conectado al pin digital #13;
* La cantidad de tiempo que el LED parpadeará depende del
* valor obtenido mediante analogRead(). En este caso al pin 2 *
*
*/
int potPin = 2; // seleccionar el pin de entrada analógico para el potenciómetro
int ledPin = 13; // seleccionar el pin de salida digital para el LED
int val = 0; // variable para almacenar el valor capturado desde el sensor
void setup() {
pinMode(ledPin, OUTPUT); // declara el ledPin en modo salida
}
void loop() {
val = analogRead(potPin); // lee el valor del sensor
digitalWrite(ledPin, HIGH); // enciende LED
delay(val); // detiene el programa por un tiempo “val”
digitalWrite(ledPin, LOW); // apaga el LED
delay(val); // detiene el programa por un tiempo “val”
}
CONTADOR DE 0 A 10
Se trata de realizar una variación sobre el ejemplo anterior de tal manera que cuando el valor del contador llegue a 10 se ponga a cero y comience de nuevo.
36. ARQUITECTURA DE COMPUTADORES Y ENSAMBLADORES1
CODIGO
/* Programa Contador de 0 a 10
* -----------
* Detecta si el botón conectado a la entrada 7 ha sido presionado y enciende el LED
* Envía al PC el valor de la variable de cuenta ""Contador" vía puerto serie.
*
*/
int LED = 13;
int Boton = 7;
int valor = 0;
int contador = 0;
int estadoanteriorboton = 0;
id setup()
{
beginSerial(9600); // Configura velocidad de transmisión a 9600
pinMode(LED, OUTPUT); // inicializa como salida digital el pin 13
pinMode(Boton, INPUT); // inicializa como entrada digital el 7
}
void loop()
{
valor = digitalRead(Boton); // lee el valor de la entrad digital pin 7
digitalWrite(LED, valor);
if(valor != estadoanteriorboton)
{
if(valor == 1)
{
contador++;
printInteger(contador);
37. ARQUITECTURA DE COMPUTADORES Y ENSAMBLADORES1
serialWrite(10);
serialWrite(13);
if (contador==10) { // Limita la cuenta al valor 10
contador=0;
}
}
}
estadoanteriorboton = valor;
}
GENERADOR DE NOTAS MUSICALES
Se trata de generar hasta 8 notas musicales por una de las salidas analógicas de Arduino –PIN10-
Se debe crear un array (vector) de datos compuesto por los valores correspondientes a las 8 notas que se pretende sacar:
int notas[] = {1915, 1700, 1519, 1432, 1275, 1136, 1014, 956}
Se deben definir también el tiempo de pausa entre nota y nota y el tiempo de pausa de fin de secuencia de notas:
int tnota=100;
int pausa=100;
Las iteraciones para el recorrido de las 8 notas se realizan con una instrucción de tipo for:
for(n=0;n<8;n++)
El tiempo de activado y desactivado de la salida del zumbador también se resuelve con un bucle for:
for(m=0;m<=tnota;m++)
38. ARQUITECTURA DE COMPUTADORES Y ENSAMBLADORES1
CODIGO
// Generador de Notas Musicales
int piezo=10;
int notas[] = {1915, 1700, 1519, 1432, 1275, 1136, 1014, 956}; //cadena con los tiempos que corresponden a las distintas notas
int n=0;
int m= 0;
int tnota=100; //nº de repeticiones del pulso. Nos da la duración de la nota
int pausa=100;
void setup() {
pinMode(piezo,OUTPUT);
}
void loop(){
for(n=0;n<8;n++)
{ //iteración que recorre la lista con las duraciones de los pulsos de cada nota
for(m=0;m<=tnota;m++)
{
digitalWrite(piezo,HIGH);
delayMicroseconds(notas[n]); //Tiempo en microsegundos que está a 5V la
salida del piezoeléctrico
digitalWrite(piezo,LOW);
delayMicroseconds(notas[n]); //Tiempo en microsegundos que está a 0V la
salida del piezoeléctrico
}
delay(pausa); //tiempo en silencio entre escalas
}
}
39. ARQUITECTURA DE COMPUTADORES Y ENSAMBLADORES1
ERRORES COMUNES
¿Por qué tardan el software Arduino y/o el menú Herramientas mucho tiempo en abrir (en Windows)?
Si el software Arduino tarda mucho tiempo en ponerse en marcha y parece bloquearse al intentar abrir el menú Herramientas, existe un conflicto con otro dispositivo en su sistema. El software de Arduino, al arrancar y al abrir el menú Tools, trata de obtener una lista de todos los puertos COM de tu ordenador. Es posible que un puerto COM creado por uno de los dispositivos de tu equipo ralentice este proceso. Echa un vistazo en el Administrador de dispositivos. Intenta desactivar los dispositivos que usan los otros puertos COM (por ejemplo, dispositivos Bluetooth).
¿Por qué no puedo subir mis programas a la placa Arduino?
En primer lugar asegurarse de que la placa está encendida (el LED verde está encendido) y conectada al ordenador.
A continuación, comprueba que el puerto correcto se ha seleccionado en el menú Tools > Serial Port (si el puerto no aparece, reinicia el IDE con la placa conectada al ordenador).
Asegúrate de que tiene el item correcto seleccionado en el menú Tools>Board. En particular, las nuevas placas Arduino Duemilanove vienen con un ATmega328, mientras que las antiguas tienen un ATmega168. Para comprobarlo, lee el texto impreso sobre el microcontrolador (el chip más grande) en tu placa Arduino. Para obtener más información sobre los ítems del menú Board, consulta la Guía para el entorno Arduino.
Desconecta los pines digitales 0 y 1, mientras que secarga el firmware (pueden conectarse y utilizarse después de que el código se haya subido).
Trata de cargar con nada más conectado a la placa (aparte del cable USB, por supuesto).
Asegúrate que la placa no toca nada metálico o conductor.
Comprueba que no estás ejecutando ningún programa que escanee todos los puertos serie, como aplicaciones de sincronización de PDA, Bluetooth, controladores USB (por ejemplo, BlueSoleil), Virtual Daemon Tools, etc
Asegúrate de que no tienes un software de firewall que bloquee el acceso al puerto serie (por ejemplo ZoneAlarm).
Es posible que debas salir de Processing, PD, vvvv, etc, si los estás utilizando para leer datos a través de la conexión USB o serie a la placa Arduino.
Si tienes una placa que no es compatible con auto-reset, asegúrate de que reinicias la placa un par de segundos antes de cargar. (Arduino Diecimila, Duemilanove, Mega, y Nano soportan auto-reset al igual que LilyPad, Pro y Pro Mini con conector de programación de 6-pines).
Sin embargo, ten en cuenta que algunos Diecimila fueron programados accidentalmente con el bootloader incorrecto y tal vez requieran volver a presionar el botón de reset físico antes de cargar, ver más sobre esta cuestión más adelante.
40. ARQUITECTURA DE COMPUTADORES Y ENSAMBLADORES1
Sin embargo, en algunos equipos, es posible que tengas que pulsar el botón de reset en la placa después de clicar el botón de descarga en el entorno Arduino. Pruebe diferentes intervalos de tiempo entre los dos, hasta 10 segundos o más. Ésto sucede con ordenadores antiguos o que ejecutan muchos procesos en paralelo.
Si recibes este error: [VP 1] device is not responding correctly. Intenta cargar el programa otra vez (es decir, resetea la placa y pulse el botón de descarga por segunda vez).
Asegúrate de que hay un bootloader en la placa Arduino. Para comprobarlo, conectar un LED al pin 13 (Arduino Duemilanove, Diecmila y Mega tienen un LED marcado con L que ya está conectado al pin 13) y resetea la placa. El LED debe parpadear. Si no es así, consulta la página del bootloader para obtener instrucciones sobre la grabación de un bootloader en la placa.
Si tienes una placa Arduino muy antigua, puede que tengas que cambiar la velocidad de transmisión de carga de sketches a 9.600 (19.200 es lo normal, o 57.600 para Arduino Mega). Tendrás que cambiar la velocidad en el archivo preferences directamente. Ver la página sobre el fichero de preferencias para obtener instrucciones sobre cómo encontrarlo. Búscalo en tu equipo y cambia la propiedad serial.download_rate para que coincida con la de tu placa. Lo dicho, si tu placa es muy antigua (Arduino NG o anterior), se recomienda que actualices al último bootloader (que funciona a 19.200 baudios). Esto se puede hacer con el menú Tools > Burn Bootloader por medio de un programador de hardware externo.
¿Por qué aparece un java.lang.StackOverflowErrorcuando intento compilar mi programa?
El entorno de desarrollo hace algunas transformaciones en el sketch de Arduino manipulando el código utilizando expresiones regulares. Esto a veces se confunde con ciertas cadenas de texto. Si aparece un error como:
java.lang.StackOverflowError
at java.util.Vector.addElement(Unknown Source)
at java.util.Stack.push(Unknown Source)
at com.oroinc.text.regex.Perl5Matcher._pushState(Perl5Matcher.java)
Esto es lo que está pasando. Puedes buscar secuencias inusuales que supongan “comillas dobles”, “comilla simple”, las barras invertidas , comentarios, etc, en particular la secuencia ‘ “‘ parece ser la causa problemas, se recomienda el uso de ‘”‘ en su lugar.
¿Qué pasa si mi tarjeta no se enciende (el LED verde no se enciende)?
Si estás utilizando una tarjeta USB Diecimila o NG, asegúrate de que el puente (pieza de plástico pequeña cerca del conector USB) es en los pines correctos. Si tienes la certeza que tu placa recibe alimentación al usar una fuente de alimentación externa (conectado a la clavija de red), el puente debe ser más cercano a los dos pines para el cable de alimentación. Si, por el contrario, alimentas tu placa a través del puerto USB, el puente debe estar en los dos pines más cercanos a los conectores USB. Esta foto muestra la disposición para la alimentación de la placa del puerto USB.
41. ARQUITECTURA DE COMPUTADORES Y ENSAMBLADORES1
¿Qué pasa con el error “No se pudo encontrar la clase principal.”?
Si recibe este error al lanzar Arduino:
@ @ JJava Virtual Machine Launcher: Could not find the main class. Program will exit. @@
Asegúrate de que descomprimiste correctamente el contenido del fichero Arduino.zip - en particular, que el directorio libestá dentro del directorio Arduino y contiene el archivo pde.jar.
¿Por qué se congela Arduino cuando intento cargar un programa? (En Windows)?
Esto podría ser causado por un conflicto con el proceso de Logitech LVPrcSrv.exe, que es un programa residente en tu ordenador. Abre el Administrador de tareas y comprueba si este programa se está ejecutando, y si es así, cierra ese proceso antes de intentar subir más datos a la placa.
¿Por qué no me no aparece mi placa en el menú Tools | Serial Port?
Si estás usando una placa USB Arduino, asegúrate de instalar los drivers FTDI (véase el link de instalación para instrucciones). Si estás utilizando un adaptador de USB a serie con una placa serie, asegúrate de instalar los drivers correspondientes.
Asegúrate de que la tarjeta está conectada: el menú del puerto serie se actualiza cada vez que abres la casilla Tools del menú, así que si acabas de desenchufar la placa, no estará en el menú.
Comprueba que no estás ejecutando ningún programa que escanea todos los puertos serie, como aplicaciones de sincronización de PDA, Bluetooth controladores USB (por ejemplo, BlueSoleil), etc
En Windows, el puerto COM asignado a la placa puede ser uno de código muy alto. En ocasiones se recomienda probar a cambiar el número asignado al chip FTDI por uno más bajo. Tal y cómo comenta Zeveland:
o “Tuve un montón de puertos virtuales COM creados para Bluetooth por lo que la placa estaba configurada para utilizarCOM17. El IDE no fue capaz de encontrarla de modo que suprimí los otros puertos virtuales en el Panel de control (en XP) y trasladó el puerto asignado al chip FTDI de Arduino a otro más bajo, en concreto el COM2. Asegúrate de configurar el IDE de Arduino para utilizar el nuevo puerto y buena suerte. ”
En Mac, si tienes una versión antigua de los controladores de FTDI, puede ser necesario borrarlos y reinstalar la última versión.
¿Qué debo hacer si me da un error al lanzar “arduino.exe” en Windows?
Si obtienes un error al hacer doble click en el ejecutable arduino.exe en Windows, por ejemplo:
@ @ Arduino has encountered a problem and needs to close. @ @
42. ARQUITECTURA DE COMPUTADORES Y ENSAMBLADORES1
Tendrás que poner en marcha Arduino utilizando el archivo run.bat situado en la misma carpeta. Por favor, ten paciencia, el entorno Arduino puede tomar algún tiempo para abrir según la configuración de tu ordenador.
43. ARQUITECTURA DE COMPUTADORES Y ENSAMBLADORES1
PREGUNTAS FRECUENTES
¿Qué quiere usted decir con hardware de código abierto?
Acciones de hardware de código abierto tanto de los principios y de aproximación del software libre y de código abierto. En particular, creemos que la gente debería ser capaz de estudiar nuestro hardware para entender cómo funciona, realizar cambios en él, y compartir esos cambios. Para facilitar esto, liberamos todos los archivos originales de diseño (CAD) de Eagle para el hardware Arduino. Estos archivos están licenciados bajo una licencia Creative Commons Atribución-Compartir igual, lo que permite, tanto para trabajos derivados personales y comerciales, siempre que acreditan Arduino y liberan sus diseños bajo la misma licencia. El software de Arduino es también de código abierto. El código fuente para el entorno Java es liberado bajo la GPL y la C / C ++ bibliotecas microcontroladores están bajo la LGPL.
¿Cómo puedo obtener una placa Arduino?
Usted puede comprar una placa Arduino desde la tienda oficial en línea o de uno de los distribuidores que se relacionan en la compra de la página. Si prefiere construir su propio, consulte la tabla de Serial-Sided Individual Arduino, que puede ser grabado y montado fácilmente.
¿Cuáles son las palcas oficiales de Arduino?
Los tablones de anuncios oficiales de Arduino son los que aparecen en la página de hardware. Estas son tablas cuyos fabricantes trabajar con el equipo de Arduino para asegurar una buena experiencia de usuario, compatibilidad con el software de Arduino, y un producto de calidad. A cambio de su condición de juntas oficiales, los fabricantes pagan una cuota de licencia al equipo de Arduino para apoyar el desarrollo del proyecto.
En general, se restringe el uso del nombre "Arduino" a las tablas oficiales. Si usted encuentra un producto con un nombre diferente, pero describió como "Arduino compatible", probablemente no es un consejo oficial y no financia el trabajo continuado en el proyecto.
¿Puedo programar el Arduino en C?
De hecho, ya está; el lenguaje de Arduino es simplemente un conjunto de funciones C / C ++ que se puede llamar desde el código. Su boceto sufre cambios menores (por ejemplo, generación automática de prototipos de funciones) y luego se pasa directamente a un / C ++ compilador C (avr-g ++). Todas las construcciones estándar de C y C ++ con el apoyo de avr-g ++ deben trabajar en Arduino.
44. ARQUITECTURA DE COMPUTADORES Y ENSAMBLADORES1
¿Puedo usar un IDE diferente para programar la placa Arduino?
Es posible compilar programas de Arduino utilizando otras herramientas de construcción (por ejemplo Makefiles y / o AVR Studio). Tendrá que configurar estos para enlazar con los archivos correspondientes en las bibliotecas del núcleo de Arduino.
45. ARQUITECTURA DE COMPUTADORES Y ENSAMBLADORES1
CONCLUSIONES
Arduino es una plataforma de código abierto que permite el poder simplificar el proceso de trabajar con micro controladores Es una herramienta para la toma de los equipos que pueden detectar y controlar más del mundo físico como sensores, luces, motores. La configuración e instalación son pasos muy fáciles para poder desarrollar sobre el Arduino. La variedad de tipos de Arduino, permiten el poder disponer de una gran variedad de ejemplos y posibilidades de aplicar en el mundo actual La programación es similar a los lenguajes de alto nivel conocidos en la actualidad, por lo que el aprendizaje de la sintaxis no es compleja
46. ARQUITECTURA DE COMPUTADORES Y ENSAMBLADORES1
RECOMENDACIONES
No desconectar bruscamente el cable usb, mientas se está cargando el programa hacia al Arduino desde la pc.
Si se está aprendiendo el lenguaje de programación, empezar por los conceptos básicos de estructura, comparadores y tipos de datos.
Si se trabajan con protoboard como agente de entrada o salida con el Arduino, no utilizar más de 5 voltios, esto que en cualquier caso no se llegara a dañar ningún puerto del Arduino.
Descargar el software original, directamente de la página oficial.
Visualizar y aplicar la variedad de ejemplos con los que disponible el software de programación del Arduino.
48. ARQUITECTURA DE COMPUTADORES Y ENSAMBLADORES1
ENLACES DE AYUDA
http://hacedores.com/cuantos-tipos-diferentes-de-arduino-hay/
https://paruro.pe/aprende/arduino/funciones-principales
https://www.google.com/url?q=http://www.abcelectronica.net/app/download/5713008019/instalacionarduinoLEONARDO.pdf%3Ft%3D1352324153&sa=U&ei=FcByVO- 5HYKYgwSq3YOgCA&ved=0CAYQFjAB&client=internal-uds-cse&usg=AFQjCNH- vIBZ7m5Cepy0xeaC_tV4klngEQ