0% encontró este documento útil (0 votos)
25 vistas8 páginas

Placa - DFRduino UNO R1

Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
25 vistas8 páginas

Placa - DFRduino UNO R1

Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 8

DFRduino UNO R3 - Compatible con Arduino Uno

Introducción
DFRduino Uno V3.0 de DFRobot es una pequeña placa con microcontrolador de uso académico o de desarrollo de prototipados, totalmente
compatible con el entorno de desarrollo de código abierto Arduino UNO R3 y Arduino IDE. Este entorno implementa el lenguaje de procesamiento /
cableado. Arduino se puede utilizar para desarrollar objetos interactivos independientes o se puede conectar al software de su computadora (por
ejemplo, Flash, Processing, MaxMSP).
Esta placa presenta el ATmega16U2 programado como un convertidor de USB a serie. Una ventaja adicional es que nuestro DFRduino todavía
usa el chip AVR del paquete DIP. Puede eliminarlo para actualizar o reprogramar el firmware del chip, o incluso para colocarlo en un proyecto
terminado y más compacto. Lo bueno de nuestro nuevo microcontrolador DFRduino es que los encabezados usan diferentes colores para
presentar puertos de E / S de diferentes tipos:
 Rojo: para la sección de potencia.
 Azul: para E / S analógicas.
 Verde: para E / S digital.
Estos colores combinan con nuestros cables de sensor. Esto hace que sea realmente fácil averiguar dónde conectar los sensores o identificar
qué lado es Analógico (azul) o Digital (verde).
" Arduino Uno " es una placa de microcontrolador basada en el ATmega328 . Tiene 14 pines de entrada / salida digital (de los cuales 6 se
pueden usar como salidas PWM), 6 entradas analógicas, un oscilador de cristal de 16 MHz, una conexión USB, un conector de alimentación, un
encabezado ICSP y un botón de reinicio. Contiene todo lo necesario para soportar el microcontrolador; simplemente conéctelo a una computadora
con un cable USB o enciéndalo con un adaptador de CA a CC o una batería para comenzar.
Esta placa agregó pines SDA y SCL que están cerca del pin AREF y otros dos pines nuevos colocados cerca del pin RESET, el IOREF que
permiten que los escudos se adapten al voltaje provisto desde la placa. En el futuro, los shields serán compatibles tanto con la placa que usa el
AVR, que opera con 5V, como con el "Arduino Due" que opera con 3.3V. El segundo es un pin no conectado, que está reservado para propósitos
futuros.
Registro de versión V2.1:
 El pinout es compatible con la serie Arduino R3
Pines de conexión a tierra Pines digitales

Botón de Reset
Led indicador de
Led conectado al pin 13 energía

Puerto USB

Regulador de voltaje

Fuente de alimentación

Pines auxiliares de alimentación Pines analógicos


Especificación
 Microcontrolador ATmega328 (paquete DIP)
 Voltaje de funcionamiento 5 V
 Voltaje de entrada (recomendado) 7-12 V
 Voltaje de entrada (límites) 6-20 V
 Pines de E / S digitales 14 (de los cuales 6 proporcionan salida PWM)
 Pines de entrada analógica 6
 Corriente CC por pin de E / S 40 mA
 Corriente CC para pin de 3.3V 50 mA
 Memoria Flash 32 KB de los cuales 2 KB son utilizados por el gestor de arranque
 Velocidad de reloj 16 MHz
 Tamaño: 75x54x15 mm
 Peso: 45 gramos
 Amigable con el medio ambiente: Cumplimiento de Rohs
La placa de expansión IO para Arduino V7.1
Descripción del producto:
Shield para Arduino son placas de circuitos modulares que se montan unas encima de otras ampliando las posibilidades de los
pines de E / S .Tiene, entre otros cada pin con un par de fuentes de alimentación VCC y GND y la capacidad de encender el
convertidor de voltaje de 3.3 V con un puente. Los conectores separados para las interfaces I2C, SPI y UART le permiten conectar
fácilmente, por ejemplo, un lector de tarjetas de memoria SD o un módulo Bluetooth. Una ranura dedicada para el módulo XBee
permite una fácil instalación del sistema de comunicación inalámbrica.

6 2

10
4
11

1 3

7
Ventajas
El escudo IO Expansión favorece a la creación rápida de prototipos robóticos es accesible y sencilla gracias al diseño que tiene ya
que las conexiones de los sensores se realiza por simple inserción de cables diseñados para habilitar tanto la tensión de alimentación
como la señal de activación de cada sensor.
Especificación IO Expansión Shield
1. El usuario tiene la opción de cambiar el modo de funcionamiento de los pines con la ayuda de un jumper: 3,3 V o 5 V.
2. Se ha llevado un par de GND y VCC a cada pin digital.
3. Se ha llevado un par de GND y VCC a cada pin analógico.
4. Zócalo para el módulo XBee / Bluetooh permite una fácil instalación del sistema de comunicación inalámbrica.
5. Un interruptor que solo necesita ser cambiado para programar el Arduino cuando el módulo XBee que usa las líneas de comunicación de
la interfaz serial está conectado.
6. Un conector de interfaz I2C y SPI separado permite una conexión simple, por ejemplo, un lector de tarjetas de memoria.
7. El botón RESET derivado le permite reiniciar el Arduino en cualquier momento.
8. LED conectado al pin 13 del Arduino.
9. El conector de tornillo PWR le permite conectar cualquier cable a la fuente de alimentación.
10. Zócalo para SD
11. Zócalo para APC220/Bluetooh
Funciona con: Arduino Uno, Leonardo, Mega y Due
Características de los cables para sensores digitales
 Negro = cable de GND
 Rojo = cable de + 5V
 Verde = cable de señal

Conector Dupont de 3 pines que iría conectado en la placa de expansión I/O “A”
Conector JST de 3 pines que se conectará en cada módulo sensor digital “D”
Características de los cables sensores analógicos

 Negro = cable de GND


 Rojo = cable de + 5V
 Azul = cable de señal

Conector Dupont de 3 pines que iría conectado en la placa de expansión I/O “A”
Conector JST de 3 pines que se conectará en cada módulo sensor digital “D”

Entradas y salidas E/S


Arduino es una plataforma de desarrollo Hardware que cuenta con pines E/S para comunicarse con el exterior. Estos pines E/S t ienen
características especiales que los hacen propicios para una u otra tarea en función del tipo de pin. Estas E/S pueden englobarse en 3 tipos
básicos, E/S analógicas, E/S digitales y E/S para la comunicación serie. Existen también pines de propósito especiales como s alidas de reloj u
osciladores y pines de alimentación con los que podemos suministrar diferentes tensiones a placas externas.

E/S digitales
PWM
Puerto serie
Entradas analógicos
Alimentación
La configuración de los pines se hará dentro de la función setup( ), estableciendo el modo de trabajo del pin como entrada o como salida.
La instrucción que se utiliza para realizar la configuración de los pines es pinMode, donde habrá que asignarle el pin que queremos configurar
y si queremos que actúe como entrada (INPUT) o como salida (OUTPUT).

void setup()
{
pinMode (10, OUTPUT); // configura el pin 10 como salida
}
Los pines de Arduino están configurados por defecto como entradas, por lo que no es necesario indicarles el modo de trabajo si vamos a
trabajar con ellos como entradas.
La razón de tener los pines configurados por defecto como entradas, es que las entradas se encuentran en un estado de alta impedancia, lo
que va a evitar en muchos casos que dañemos la placa al realizar una mala conexión. Si establecemos un pin como salida y por error entra
corriente por dicho pin lo más seguro es que dañemos el microcontrolador de manera irreversible.
Los pines que tengamos configurados como salida (OUTPUT) van a suministrar una corriente máxima de 40mA por separado, sin que la
corriente total de las salidas pueda superar los 200mA. Esta corriente es suficiente para hacer brillar un led, pero insufici ente para activar
elementos de mayor potencia.
E/S Digitales
Los pines asignados a E/S digitales, son pines que trabajan con dos estados HIGH (alto) o LOW (BAJO). Según el modelo de Arduino que
estemos usando, va a tomar el estado HIGH (alto) como 5V o como 3.3V, el estado LOW (bajo) está asociado a un nivel de voltaje 0.
Lectura de entradas digitales (digitalRead)
Al hacer una lectura digital, vamos a leer el valor de un pin almacenando el resultado como HIGH (alto o 1) o como LOW (bajo o 0).
valor = digitalRead (pin); // la variable "valor" toma el estado asociado al pin
Podemos especificar el pin asignándole directamente la numeración del pin digital que queremos leer o con una variable o cons tante
previamente definida.
Escritura de salidas digitales (digitalWrite)
Cuando hacemos una escritura digital vamos a mandar al pin definido previamente como salida el valor HIGH o LOW. El valor HIGH se va
a traducir (en función del tipo de Arduino) por una señal de 5 o 3.3 voltios.
digitalWrite (pin, HIGH); // Establece el pin en estado alto (5 o 3.3v)

En mBlock pone la salida 9 en alto

digitalWrite ( 9, HIGH); // IDE pone el pin 9 en alto


Ejemplo E/S digital
Encendido de led con un pulsador simple

→ if(((digitalRead(2))==(1))){

→ digitalWrite(13,1);
→ } else {
→ digitalWrite(13,0);
→ }
→}

E/S Analógicas
Vivimos en un mundo analógico, y en muchas ocasiones, para poder interactuar con el entono no nos es suficiente con detectar o no una señal
o poder activar o desactivar cosas, sino que necesitamos cuantificar el valor de magnitudes reales y responder en proporción.
Para poder leer y escribir valores analógicos, Arduino cuenta con una serie de E/S destinadas a este fin, con las que podremos leer y escribir
niveles de tensión que irán de 0 a 5 o 3.3V (dependiendo del modelo de Arduino que estemos usando).
Lectura de entradas analógicas (analogRead)
La función analogRead realizará una lectura del pin analógico que se le indique, almacenando el valor leído en un registro de 10bit's.
Almacenar este valor en un registro de 10 bit's va a implicar que tengamos un rango de valores que va de 0 a 1023, asignándole el 0 a un nivel
de 0 voltios y el 1024 a un nivel de 5 voltios, lo que va a determinar la resolución que podemos obtener al hacer lecturas analógicas.
valor = analoRead (pin); // la variable valor toma el nivel del pin analógico
Los pines de entrada analógicos no necesitan ser declarados como entrada (INPUT), ya que son siempre entradas.

Escritura de salidas analógicas (analogWrite)


Las salidas analógicas están asociadas a los pines PWM (Pulse Width Modultation) o modulación por ancho de pulso, estos pines, son pines
digitales, pero con la particularidad de poseer el PWM, y es que realmente Arduino no entrega a la salida una señal analógica pura, sino que
consigue un nivel de tensión determinado por medio de la modulación del ancho de pulso.

El nivel de tensión que tendremos a la salida del pin, va a ser igual al nivel de tensión promedio proporcional al ancho de los pulsos.
Como se observa en la imagen superior, variando en ancho del pulso, podemos obtener una señal promedio equivalente. Para la p rimera señal,
cuyo ancho de pulso es del 10%, nos daría una señal analógica de 0.5V (el 10% de 5V), para la segunda una señal de 2.5V y para la tercera
señal obtendríamos una señal equivalente de 4.5V.
Las salidas analógicas trabajan con registros de 8bit's, o lo que es lo mismo, pueden tomar valores comprendidos entre 0 y 255,
correspondiendo el 0 a un nivel de 0 voltios y el 255 al máximo voltaje (5 o 3.3 voltios dependiendo de la placa que estemos usando).
analogWrite (pin, valor); //saca por el pin el nivel de tensión equivalente a valor
Cuando trabajemos con entradas y salidas analógicas hay que tener en cuenta que al realizar una lectura analógica el resultado se guarda en
una variable de 10 bit's, pero la escritura se hace con una variable de 8 bit's, por lo que si queremos usar el valor leído para escribir en algún
pin, primero deberemos de adaptar la variable de 10 a 8 bit's, si no hacemos esto, el valor que escribamos va a estar fuera de rango y no va a
mostrar el nivel de tensión correcto.

Ejemplo E/S digital


void setup() {
Regulador de luz con potenciómetro pinMode(9, OUTPUT);
pinMode(6, OUTPUT);
pinMode(5, OUTPUT);
}
→ void loop() {
→ int valor = analogRead(0);

→ valor = map(valor, 0, 1023, 0, 255);

→ analogWrite(5, valor);

→ }

Puerto serie
Arduino cuenta con una serie de pines que tienen la capacidad de comunicarse con otros dispositivos usando la comunicación se rie para ello.
Con esta comunicación serie se puede realizar también una comunicación con el ordenador a través del USB gracias al chip FDTI que incorpora
la placa y que realiza la conversión USB-serie.
La capacidad de comunicarse con otros dispositivos, hace de Arduino una herramienta muy potente, ya que se pueden crear proye ctos muy
complejos con multitud de dispositivos que se comuniquen e interactúen entre sí, pero cuando se empieza a programar, es mucho más interesante
el poder establecer una comunicación entre nuestro ordenador y Arduino, ya que de esta forma podemos intercambiar información con la placa,
pudiendo ver cómo evolucionan las variables del sistema y de esta forma poder detectar posibles problemas de programación.
Inicialización de la comunicación serie (Serial.begin)
Para poder utilizar el puerto serie hay que inicializarlo estableciendo la velocidad de la conexión. Esta inicialización se hace siempre dentro
de la función setup( ) .
Un valor típico para realizar la conexión es 9600 baudios, aunque se pueden asignar otros muchos valores.
void setup( )
{
Serial.begin (9600); // abre el puerto serie estableciendo la velocidad en 9600 baudios
}
Escritura en el puerto serie (Serial.print)
Si queremos que Arduino muestre información a través del puerto serie, debemos de usar instrucciones que "impriman" en pantalla dicha
información.
Para imprimir estos datos se usa el comando Serial.print, que mandará a través del puerto serie el dato o la cadena de caracteres que le
indiquemos. Esta instrucción tiene algunas variantes, que veremos a continuación.
Serial.print(dato, tipo de dato)
Esta es la instrucción más común a la hora de enviar datos a través del puerto serie, tan solo hay que indicar el dato que qu eremos enviar y el
formato en el que queremos que muestre dicho dato.
*nota: el tipo de dato es un campo opcional, si no le indicamos ningún tipo, mostrará el dato en formato decimal.
El "tipo de dato" puede tomar los valores BIN (binario), OCT (octal), DEC (decimal) y HEX (hexadecimal). En versiones antiguas de Arduino,
también estaba disponible el sacar los datos en formato "BYTE", pero este formato fue eliminado, si queremos sacar un byte en pantalla, podemos
utilizar la función Serial.write(valor).
Serial.print(78, BIN); // manda el dato "1001110"
Serial.print(78, OCT); // manda el dato "116"
Serial.print(78, DEC); // manda el dato "78"
Serial.print(78, HEX); // manda el dato "4E"
Si estamos trabajando con datos que tienen decimales (float) y queremos mostrar un número concreto de ellos, podemos hacerlo poniendo en
tipo de dato el número de decimales que queremos mostrar. Por defecto mostrará dos decimales.
Serial.println(1.23456, 0); //manda por el puerto serie el valor "1"
Serial.println(1.23456, 1); //manda por el puerto serie el valor "1.2"
Serial.println(1.23456, 2); //manda por el puerto serie el valor "1.23"
Serial.println(1.23456, 3); //manda por el puerto serie el valor "1.234"
Serial.println(1.23456, 4); //manda por el puerto serie el valor "1.2346
Además de mostrar datos en pantalla, también es posible mandar cadenas de caracteres, para ello tan solo hay que encerrar el texto que
queramos mostrar entre comillas.
Serial.print("Hola mundo"); // muestra en pantalla "hola mundo"

Para visualizara los datos en la pantalla se deberá hacer click en este icono
Cuando mandamos datos a través del puerto serie y queremos visualizar estos datos en pantalla, es recomendable introducir espacios y saltos
de línea, ya que si no lo hacemos los datos nos van a aparecer de manera continua y no vamos a poder diferenciar unos de otros. Para ordenar
estos datos, podemos introducir tabulaciones o saltos de línea con los siguientes comandos:
Serial.print("\t"); //introduce una tabulación entre los datos
Serial.print("\n"); //introduce un salto de línea
Si queremos crear datos en líneas diferentes, se puede optar por una variante del Serial.print que introduce automáticamente un salto de línea,
haciendo que el siguiente dato que se vaya a escribir aparezca en la siguiente línea.
Serial.println(dato, tipo de dato)
Como en el caso anterior, el tipo de dato será un campo opcional, si no se rellena este campo, el dato aparecerán en formato decimal.
La función Serial.println es equivalente a poner:
Serial.print (dato, tipo de dato);
Serial.print ("\n");

Mensajes por el puerto serial en mBlock

Despues de subir los datos al arduino para poder visualizar los datos en la pantalla se debera denuevo selccionar conectar el
puerto serie
Se deberá cambiar a modo de caracteres para observar correctamente los mensajes

También podría gustarte