Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

003 Guia LABORATORIO DE AUTOTRÓNICA

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 26

LABORATORIO DE AUTOTRÓNICA

MICROPROCESADORES Y MICROCONTROLADORES.
1. Qué es el Microprocesador:
Se denomina microprocesador al circuito electrónico que procesa la energía necesaria para que
el dispositivo electrónico en que se encuentra funcione, ejecutando los comandos y los programas
adecuadamente. La Unidad Central de Procesos (CPU) de una computadora es un ejemplo de un
microprocesador.
Este componente electrónico forma parte de la tarjeta madre de una computadora y se caracteriza
por ser un circuito integrado con miles y, a veces, hasta con millones de transistores.
Se denomina micro por su significado inglés que indica “pequeño”, en relación a la importancia de
su función en un dispositivo, comparado a veces con el cerebro y con el corazón de los seres
humanos.
1.2 Función de un microprocesador
Este componente electrónico es el encargado de procesar y ejecutar las instrucciones codificadas
en números binarios.
El microprocesador es comúnmente conocido como la Unidad Central de Procesos (CPU) de los
diferentes dispositivos electrónicos, pero también contienen procesadores otros dispositivos como
los discos duros.
2. ¿Qué es un microcontrolador?
Un microcontrolador es una computadora en pequeña escala. Eso quiere decir que en su interior
contiene un CPU, unidades de memoria, puertos de entrada y salida, periféricos, osciladores,
módulos de comunicación, DAC, ADC, entre otros.
Un microcontrolador (MCU) utiliza técnicas de microelectrónica para reducir varios componentes
como la CPU (Unidad de Procesamiento
Central) y la memoria a un pequeño
paquete (o package). Tiene varios pines de
entrada y salida, a través de los cuales se
puede interactuar con el mundo exterior.
Obviamente, el microcontrolador como se ha
realizado no hace nada, es necesario
programarlo mediante un conjunto de
instrucciones que representan el firmware
del sistema instalado en la memoria del
dispositivo.
Uno de los fabricantes que más conocidos es Microchip que además es dueña de Atmel, otro
fabricante popular.
Microchip ha destacado por su familia de microcontroladores PIC. Al ser tan popular puedes
encontrar muchos proyectos en internet que te sirvan de ayuda. El problema es que al momento
de cargar un programa se necesitan voltajes mayores a 5 V por lo que se suele necesitar un
circuito externo que regule la energía.
Atmel presenta su familia AVR. Es más fácil subir un programa a estos microprocesadores ya que
necesitan pocos pines conectados para realizar la conexión a la PC.
Las placas de Arduino suelen usar los AVR de Atmel por lo que su popularidad se ha
incrementado.
2.1 DIFERENCIAS ENTRE MICROCONTROLADORES Y MICROPROCESADORES
Los microcontroladores y los microprocesadores utilizan los mismos componentes, pero con
distintas características, las cuales es necesario conocer para poderlos distinguir entre sí.

CARACTERÍSTICAS

MICROPROCESADORES MICROCONTROLADORES

Su frecuencia de procesamiento es del Su frecuencia de procesamiento es


orden de GHz. del orden de MHz.

El microcontrolador incluye
Normalmente el microprocesador opera
prácticamente todos los elementos
en conjunto
necesarios para operar en un sólo
con una memoria RAM, una memoria
circuito integrado por
ROM y un decodifi de direcciones
lo que en muchos casos únicamente
dentro de lo que se conoce
es necesario energizarlos para
como un microordenador.
funcionar.
Debido a que su arquitectura es mucho Debido a que su arquitectura es de
más compleja su costo un bajo set de instrucciones
es elevado y al requerir elementos y requiere de pocos elementos
adicionales para funcionar aumenta aún adicionales para operar,
más. su costo es bajo.

Mayor susceptibilidad debido Presenta menor suceptibilidad


a su tamaño y al cableado externo gracias a que todos los elementos
necesario para interconectar los se encuentran dentro del
componentes. mismo circuito integrado.
2.2 DIFERENCIAS ENTRE MICROCONTROLADORES Y MICROPROCESADORES
COMPONENTES MICROPROCESADORES MICROCONTROLADORES
El CPU tiene mayor potencia de cálculo El CPU es una de sus partes
por lo que es ideal para procesamiento principales, pero su capacidad de
de datos procesamiento es menor

A pesar de que requiere de estas En este caso las memorias son


memorias para operar, mucho más simples por lo que se
deben añadirse por separado con ayuda fabrican
de una tarjeta madre. dentro del mismo circuito
integrado y ya no es necesario
agregarlas de forma externa.

3. Arduino
Arduino es una plataforma para prototipado de electrónica basada en hardware y
software libre y fácil de utilizar. Podemos construir circuitos electrónicos y programarlos
para iniciarnos en el mundo de la electrónica y robótica, construir componentes
electrónicos a nuestro antojo e incluso crear un modelo de negocio.
Arduino se apoya en 2 pilares fundamentales; Hardware (placa de Arduino) y Software
(entorno de programación).
3.1 Hardware de Arduino

El microcontrolador de Arduino es un circuito integrado programable capaz de realizar


operaciones matemáticas complejas a gran velocidad. Normalmente el modo de
alimentación de una placa de Arduino es mediante el puerto USB mientras se está
programando, pero hay ocasiones en la que necesitamos que el código de nuestra placa
se siga ejecutándose sin estar conectado al equipo. Probablemente la forma más
habitual de alimentar Arduino (sin utilizar tu equipo) es mediante una fuente de
alimentación o pila de 9V.

Arduino dispone de un regulador de voltaje interno que actúa para que la tensión de
alimentación no supere los 12V, ya que en caso contrario podemos dañar el regulador
y con ello la placa de Arduino. Por otro lado, para tensiones inferiores a 7V en la
alimentación, es probable que la placa no llegue a encenderse. La mayoría de los
componentes electrónicos de Arduino utilizan una tensión operativa de 5V (ya regulada
por el regulador de voltaje de la propia placa de Arduino)

Tanto las entradas como las salidas dotan al sistema de información y realizan
diferentes actuaciones. Arduino contiene la siguiente distribución de pines:

14 pines digitales que pueden ser


configurados como entradas o salidas.
6 pines PWN (serigrafiados con ~)
entre los pines digitales.
6 pines analógicos serigrafiadas
desde A0 hasta A5 para las entradas
analógicas.
3 pines GND para conectar a tierra
nuestros circuitos.
2 pines de alimentación de 5V y 3.3V
respectivamente.
Pines en Arduino UNO
3.2 Partes de la placa de Arduino.

La placa de Arduino tiene una familia de microprocesadores bastante extensa


compuesta de diferentes modelos y variaciones. En esta ocasión describiré las partes
de Arduino UNO

Alimentación USB/5VDC (1 y 2):


El Arduino UNO puede ser alimentado desde un cable USB de tipo B o
mini procedente de tu ordenador o desde una fuente de alimentación entre 6V y 18V.
En la imagen de arriba, la conexión USB está etiquetada (1) y el conector de la fuente
de alimentación (2).
Ademas, la conexión USB sirve para cargar código en la placa de Arduino desde donde
se pueden enviar datos de la programación e instrucciones a la placa.

Regulador de voltaje (3):


El regulador de voltaje controla la cantidad de voltaje que se deja entrar en la placa de
Arduino; por lo que no dejará pasar un voltaje superior al establecido que podría dañar
el circuito.
Conexiones (4):
Los pines o conexiones de Arduino se utilizan para conectar los cables que se van a
necesitar para construir un circuito. Este tipo de conexiones tiene varios pines, cada
uno de los cuales está impreso en la placa y se utilizan para diferentes funciones:

Reset: Permite el reseteo del micro controlador.


5V y 3.3V: la clavija de 5V suministra 5 voltios de energía, y la clavija de 3.3V suministra
3.3 voltios de energía. La mayoría de los componentes simples usados con el Arduino
funcionan bien con 5 o 3.3 voltios.
GND: Hay varios pines GND en Arduino, se usan para conectar a tierra el circuito.
VIN: Se usa para conectar la alimentación de la placa con una fuente externa de entre
6 y 12VDC.

Puertos de entrada Analógicos (5):


El área de pines bajo la etiqueta ‘Analog In’ (A0 a A5 en la UNO) son los pines de
entrada analógica. Estos pines pueden leer la señal de un sensor analógico y convertirla
en un valor digital que podemos leer e interpretar.

Micro-controlador Atmega 328 (6):


Esta zona de la placa es el circuito integrado que actúa como cerebro/procesador de la
placa de Arduino sobre el que vamos a implementar la programación.

Entrada ICSP (In Chip Serial Programmer) (7):


Esta entrada realiza la función de acceso directo para grabar, desde el PC al circuito,
cualquier programa sin necesidad de utilizar el puerto USB.

Indicador LED de alimentación (8):


LED de encendido de la placa de Arduino que indica si el microprocesador esta activo.

LEDs TX RX (9):
TX es la abreviatura de transmisión de datos y RX es la abreviatura de recepción de
datos. Estas marcas comunes aparecen con regularidad en la electrónica para indicar
los pines responsables de la comunicación serie. Así mismo, Estos LEDs se activan
visualmente cuando la placa esta recibiendo o transmitiendo datos.

Puertos Digitales (10):


Estos pines se pueden utilizar tanto para la entrada digital (como para indicar si se pulsa
un botón) como para la salida digital (como para alimentar un LED).
Puerto de conexiones (11):

5 entradas o salidas auxiliares (de la 8 a la 12).


3 salidas 9, 10 y 11 que permiten la modulación por ancho o de pulso.
Salida 13 que sirve para conectar un led directamente a tierra.
Salida a tierra GND.
Pin AREF que se utiliza para fijar una tensión de referencia externa (entre 0 y 5 voltios)
como límite superior de las clavijas de entrada analógica.

Chip de Arduino (12):


Permite identificar un dispositivo USB por el ordenador, es como su tarjeta de
identificación o D.N.I. personal

Botón de RESET (13):


Al presionarlo conectará temporalmente el pin de reset a tierra y reiniciará cualquier
código que esté cargado en el micro-controlador de Arduino.

3.3 Software de Arduino

Para programar una tarjeta de Arduino, podemos descargar de su página web su propio
software o podemos utilizar diferentes lenguajes y entornos de programación. En este
caso vamos a introducir la programación y electrónica con Arduino utilizando los
lenguajes de programación por bloques y lenguajes de programación en modo texto.

Lenguajes de programación por bloques:

o Ardublock
o Tintercard
o Scratch 4 Arduino
o Snap 4 Arduino
o mBlock
o Blocklyduino
o Visualino
PRACTICA 001 MICROPROCESADORES Y MICROCONTROLADORES

Nombre: ………………………………………………………….………………………… semestre. ………………..


I. Responde las siguiente preguntas

1. DEFINE EN TUS PROPIAS PALABRAS AL MICROPROCESADOR


……………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………

2. ¿CUÁL ES LA FUNCIÓN DE UN MICROPROCESADOR?


……………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………

3. ¿QUÉ ES UN MICROCONTROLADOR?
……………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………

4. ¿QUE ES ARDUINO?

……………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………

5. SEÑALA LAS PARTES DE LA PALCA ARDUINO


6. SEÑALA LAS PARTES DE ARDUINO
………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………

7. ¿CON QUE VOLTAJE FUNCIONA LA PLACA ARDUINO?


………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………

8. ¿PARA QUÉ SIRVE EL BOTÓN RESET DEL ARDUINO?

……………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………

9. ¿QUÉ ES UN PUERTO DE ENTRADA ANALÓGICO?


……………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………

10. ESTABLECE LAS DIFERENCIAS ENTRE MICROCONTROLADORES Y MICROPROCESADORES

CARACTERÍSTICAS MICROPROCESADORES MICROCONTROLADORES

VELOCIDAD DE OPERACIÓN

ELEMENTOS NECESARIOS
PARA SU
FUNCIONAMIENTO

COSTOS

SUSCEPTIBILIDAD AL
RUIDO
ELECTROMAGNÉTICO
3.4 PLACAS OFICIALES ARDUINO

De entre las placas oficiales puedes encontrar multitud de modelos. Todos especialmente
pensados para un fin, compatibles con los shields y módulos oficiales, así como con
Arduino IDE. Vamos a intentar detallar sus principales
características para poder diferenciarlos entre sí:
Arduino UNO
Se basa en un microcontrolador Atmel ATmega320 de
8 bits a 16Mhz que funciona a 5v. 32KB son
correspondientes a la memoria flash (0,5KB
reservados para el bootloader), 2KB de SRAM y 1KB
de EEPROM. En cuanto a memoria es una de las
placas más limitadas, pero no por ello resulta
insuficiente para casi todos los proyectos que rondan
la red.
Arduino TRE

Primera placa Arduino fabricada en Estados Unidos.


Integra un procesador Texas Instrument Sitara
AM335x de 1Ghz basado en ARM Cortex A8 con
512MB de DDR3L, lo que le da hasta 100 veces más
rendimiento comparado con otras placas como
Leonardo y Uno.
Arduino Yun

Se basa en el microcontrolador ATmega32u4 y en un


chip Atheros AR9331 (que controla el host USB, el
puerto para micro-SD y la red Ethernet/WiFi), ambos
comunicados mediante un puente. El procesador
Atheros soporta la distribución Linux basadas en
OpenWrt llamada OpenWrt-Yun.

Arduino Mega
Su nombre proviene del microcontrolador que lo maneja, un ATmega2560. Este chip
trabaja a 16Mhz y con un voltaje de 5v. Sus capacidades son superiores al ATmega320
del Arduino UNO, aunque no tan superiores como las soluciones basadas en ARM. Este
microcontrolador de 8 bits trabaja conjuntamente con una SRAM de 8KB, 4KB de
EEPROM y 256KB de flash (8KB
para el bootloader). Como puedes
apreciar, las facultades de esta placa
se asemejan al Due, pero basadas
en arquitectura AVR en vez de ARM.
En cuanto a características
electrónicas es bastante similar a los
anteriores, sobre todo al UNO. Pero
como se puede apreciar a simple
vista, el número de pines es parecido
al Arduino Due: 54 pines digitales
(15 de ellos PWM) y 16 pines
analógicos. Esta placa es idónea para quien necesita más pines y potencia de la que
aporta UNO, pero el rendimiento necesario no hace necesario acudir a los ARM-based

Arduino Fio
Es una placa Arduino reducida a la mínima
expresión. Por su tamaño es especialmente
considerado para proyectos móviles
inalámbricas o para ser insertados en
espacios reducidos. Funciona con un
microcontrolador ATmega328P, una versión
similar a la del Ethernet pero que trabaja a
una frecuencia inferior, 8Mhz. Al ser tan
reducida carece de ciertas comodidades,

Arduino Nano
Empezaron incorporando un ATMega328 como el de otras placas vistas
anteriormente, pero tras la revisión 2.x se sustituyó por un ATmega168 a
16Mhz. Sus dimensiones son aun más reducidas que las de Fio, de tan solo
18,5×43.2mm. Su reducido tamaño no le quitan la posibilidad de ser una
placa completa, pero si que necesita de un cable mini-USB y no posee
conector de alimentación externa. Esta versión fue diseñada y producida
por la compañía Gravitech, especialmente pensado para aplicaciones de
reducido costo y donde el tamaño importe.
3.5 Descarga e interface del Software

El software para
la programación de la plataforma
Arduino
https://www.arduino.cc/en/software
se puede descargar en forma
gratuita de la pagina en su version
en ingles encontraran el Arduino
1.01 que es la versión mas
reciente, allí se escoje el sistema
operativo y se inicia la descarga, en
particular yo trabajare en
windows. Una vez descargado el
archivo, se descomprime y se
ejecuta directamente el ejecutable arduino.exe presente en la carpeta.

3.6 Simuladores Arduino

Tinkercad es un software gratuito online creado por la empresa Autodesk, una de las
empresas punteras en el software de diseño 3D. Tinkercad: https://www.tinkercad.com/

Tinkercad ofrece:

Aplicación de diseño e impresión 3D


Simulador de circuitos, incluido Arduino
Diseños 3D interactivos con electrónica:
Publicar nuestro proyectos
Ver otros proyectos y clonarlos: https://www.tinkercad.com/things/v2#/things

Tinkercad circuitos https://www.tinkercad.com/circuits


4. PRIMEROS PASOS ARDUINO + TINKERCAD

Una vez que conocemos el entorno de TINKERCAD es recomendable comenzar a instalar un circuito sencillo
con Arduino, hoy conoceremos la programación en bloques y con el lenguaje de programación de Arduino.

4.1 Entorno de Arduino y sus principales partes

El Software Arduino IDE se compone de 3 partes principalmente:

A. Botonera o barra de navegación:


Verificar: Se encarga de verificar la sintaxis de nuestro programa.
Cargar: Si la verificación ha sido correcta, podemos cargar el código en nuestra placa de Arduino.
Nuevo: Simplemente abrimos un documento vacio (salvo funciones principales) para comenzar un
nuevo programa.
Abrir: Para abrir proyectos en otros directorios o rutas.
Guardar: Simplemente guarda el programa en el directorio que especifiquemos (si es la primera vez
que lo guardamos).
Monitor serial: Supongamos que necesitamos saber en algún momento qué ocurre dentro de nuestra
placa de Arduino, pues bien, mediante el monitor serial podemos enviar datos que se mostrarán en
nuestro monitor.
B. Editor de programación: Es la parte principal de Arduino IDE, básicamente donde se programan las líneas
y líneas de código en lenguaje processing.

C. Notificaciones: Conocido normalmente por consola, es la parte de depuración donde notifica al


programador sobre errores de sintaxis, comunicación, etc.
4.2 PRINCIPALES FUNCIONES DE ENTRADA/SALIDA DIGITAL

Lo primero que hay que hacer es declarar el tipo de la función (es decir, el tipo de la variable que la función
va a devolver con la instrucción “return” (void si no devuelve ningún valor, o cualquiera de los demás tipos
en caso contrario)

Si estás escribiendo una función dale un nombre significativo (es decir, que te recuerde claramente que hace
esa función, que valor devuelve)
Los datos que se transfieren desde el programa a la función se llaman parámetros, pueden ser uno, varios o
ninguno, y de diferentes tipos (con la excepción de las funciones como setup() y loop() que no utilizan
parámetros).

1. La función pinMode()
Descripción:
Esta función configura el pin especificado para actuar como entrada o salida digital (ver la descripción de los
pins digitales del Arduino para más información sobre la funcionalidad de estos pins). A partir de la version
1.0.1 del Arduino es posible activar las resistencias internas “pullup” del Arduino con el modo
INPUT_PULLUP. Por otra parte, el modo INPUT desactiva explícitamente las resistencias internas “pullup”.
Sintaxis:

pinMode(pin, modo)
Parámetros:
pin: el número de pin que queremos activar como entrada o salida.
modo: INPUT, OUTPUT, or INPUT_PULLUP (ver la descripción de los pins digitales del Arduino para más
información sobre la funcionalidad de estos pins).

Devuelve:
Nada (esta función simplemente activa un pin sin devolver ningún valor de retorno)
Ejemplo:

int ledPin = 13; // LED conectado al pin digital 13


void setup()
{
pinMode(ledPin, OUTPUT); // configura el pin como salida
}

void loop()
{
digitalWrite(ledPin, HIGH); // activa el LED (encendido)
delay(1000); //temporizador (espera un segundo)
digitalWrite(ledPin, LOW); // desactiva el LED (apagado)
delay(1000); // temporizador (espera un segundo)
}

Nota: Los pins de entrada analógica pueden ser también usados como pins digitales si nos referimos a ellos
como A0, A1, etc.
2. La función digitalWrite()

Descripción:
Activa (HIGH) o desactiva (LOW) un pin digital.
Si el pin ha sido configurado como OUTPUT (salida) con la función pinMode(), su voltaje será activado a 5V
(o 3.3V en las tarjetas que funcionen a 3.3V) si se activa (HIGH) o a 0V (tierra) si se desactiva (LOW).
Si el pin ha sido configurado como INPUT (entrada), digitalWrite() activará (si la usamos el parámetro HIGH)
o desactivará (con LOW) la resistencia “pullup” del pin de entrada especificado. Se recomienda activar la
resistencia interna “pullup” del pin con la función pinMode(pin, INPUT_PULLUP). Ver la descripción de los
pins digitales del Arduino para más información sobre la funcionalidad de estos pins).

Nota:
Si no configuras el pin como salida (OUTPUT) con la función pinMode() y conectas el pin a un LED, cuando
uses la función digitalWrite(HIGH), el LED no se encenderá. En efecto, si no configuras explícitamente el pin
como salida con pinMode(), digitalWrite() activa la resistencia interna “pullup” que actúa como un potente
limitador de corriente.
Sintáxis:

digitalWrite(pin, valor)
Parámetros:
pin: el número de pin
valor: HIGH or LOW

Devuelve:
nada
Ejemplo:

int ledPin = 13; // LED conectado al pin digital 13


void setup()
{
pinMode(ledPin, OUTPUT); // configura el pin digital pin como salida
}

void loop()
{
digitalWrite(ledPin, HIGH); // enciende el LED
delay(1000); // temporizador: espera un Segundo
digitalWrite(ledPin, LOW); //apaga el LED
delay(1000); // temporizador: un segundo
}
Este sketch active el pin 13 (HIGH) espera un Segundo y lo desactiva.
Nota:
Los pins de entrada analógica pueden ser también usados como pins digitales si nos referimos a ellos como
A0, A1, etc.
3. La function digitalRead()
Descripción:
Lee el valor (HIGH o LOW) del pin digital especificado.
Sintaxis:

digitalRead(pin)

Parámetros:
pin: el número de pin digital que quieres leer (tipo int)

Devuelve:
HIGH (alta) o LOW (baja/tierra)
Ejemplo:
Activa el pin 13 al mismo valor que el leído en el pin 7 (configurado como entrada)

int ledPin = 13; // LED conectado al pin digital13


int inPin = 7; // pulsador conectado al pin digital 7
int val = 0; // variable que almacena el valor leído

void setup()
{
pinMode(ledPin, OUTPUT); // configura el pin digital 13 como salida
pinMode(inPin, INPUT); // configura el pin digital 7 como entrada
}

void loop()
{
val = digitalRead(inPin); // lee valor en pin de entrada
digitalWrite(ledPin, val); // active el LED con el valor leído en el pulsador
}
Nota:
Si el pin no está conectado a nada, digitalRead() puede devolver indistintamente HIGH o LOW (y esto puedo
cambiar de manera aleatoria).
Los pins de entrada analógica pueden ser también usados como pins digitales si nos referimos a ellos como
A0, A1, etc.
4. La función analogReference()

Descripción:
Esta función configura el voltaje de referencia usado como entrada analógica (es decir, el valor que queremos
definir como voltaje máximo de entrada). Las siguientes opciones son válidas:
-DEFAULT: el valor de referencia por defecto es 5 voltios (en las tarjetas Arduino que funcionan a 5V) o 3.3
voltios (en las Arduino que van a 3.3V)
-INTERNAL: un valor de referencia interno fijado en 1.1 volts en el ATmega168 o ATmega328 y 2.56 volts
en el ATmega8 (no disponible en el Arduino Mega)
-INTERNAL1V1: un valor de referencia interno fijado en 1.1V (Solamente en el Arduino Mega)
-INTERNAL2V56: un valor de referencia interno fijado en 2.56V (Solamente en el Arduino Mega)
-EXTERNAL: el voltaje aplicado al pin AREF pin (de 0 a 5V sólamente) es usado como referencia máxima.
Sintáxis:

analogReference(tipo)

Parámetros:
tipo: El tipo de referencia usado (DEFAULT, INTERNAL, INTERNAL1V1, INTERNAL2V56, or EXTERNAL).
Devuelve:
Nada.
Nota:
Las lecturas efectuadas con analogRead() inmediatamente tras cambiar la referencia analógica pueden no
ser fiables.

Advertencia:
¡No uses menos de 0V o más de 5V como voltaje de referencia externa en el pin AREF! SI estás usando
una referencia externa en el pin AREF debes configurar la referencia como EXTERNAL antes de usar la
función analogRead(). Si no lo haces así cortocircuitarás el voltaje de referencia activo (generado
internamente) y el pin AREF y, muy probablemente dañarás el micro controlador del Arduino.
Por otra parte, puedes conectar el voltaje de referencia externa al pin AREF a través de una resistencia de
5K, lo cual te permitirá pasar de voltajes de referencia internos a externos. Advierte que la resistencia
cambiará el voltaje que es usado como referencia ya que el pin AREF está conectado internamente a una
resistencia de 32K. La combinación de estas dos resistencias (interna y externa) actúa como un divisor de
voltaje. Por ejemplo, 2.5V aplicados a través de la resistencia darán 2.5 * 32 / (32 + 5) = ~2.2V en el pin
AREF.

5. La función analogRead()
Description:
Esta función lee el valor presente en el pin analógico especificado. El Arduino lleva un convertidor
analógico/digital de 10 bits con 6 canales (8 canales en el Mini y Nano y 16 en el Mega). Esto significa que
se pueden convertir voltajes que varíen entre 0 y 5 voltios en valores enteros entre 0 y 1023. Esto equivale
a una resolución de 5V/1024 unidades, o lo que es lo mismo 0.0049 Volts (4.9 mV) por unidad. El rango de
entrada y la resolución pueden ser cambiados usando analogReference().
La frecuencia máxima de lectura es de 10,000 veces por segundo (cada lectura dura unos 100
microsegundos).
Sintaxis:

analogRead(pin)
Parámetros:
pin: el número de pin analógico del que se quiere leer la entrada (0 a 5 en la mayor parte de las placas, 0 a
7 en el Mini y Nano, 0 a15 en el Mega)
Devuelve:
int (de 0 a 1023)

Nota:Si el pin de entrada analógico no está conectado a nada, el valor devuelto por la
función analogRead() fluctuará dependiendo de una serie de factores (por ejemplo, los valores de otras
entradas analógicas, la proximidad de tu mano a la placa, etc.)
Ejemplo:

int analogPin = 3; // potenciómetro conectado al pin analógico 3


// variando entre tierra y +5V
int val = 0; // variable de almacenaje del valor leído

void setup()
{
Serial.begin(9600); // inicialización puerto serie a 9600 bps
}

void loop()
{
val = analogRead(analogPin); //leer entrada analógica
Serial.println(val); // mostrar valor leido
}

6. La función analogWrite()
Descripción:
Esta función escribe en el pin indicado un valor analógico (mediante un pulso o tren de ondas cuya duración
determina el valor analógico transmitido, también llamado PWM –“Pulse Width Modulation”). Este valor
puede ser utilizado para iluminar un LED con una intensidad variable o hacer rotar el eje de un motor eléctrico
a velocidades variables. Cuando usamos esta función el pin generará una onda cuadrada constante de la
duración especificada hasta la siguiente utilización de la función sobre el mismo pin (o una utilización
de digitalRead() o digitalWrite() sobre el mismo pin). La frecuencia de la la señal PWM en la mayor parte de
los pins es aproximadamente 490 Hz. En el Uno y otras placas similares, los pins 5 y 6 tienen una frecuencia
de aproximadamente 980 Hz. Los pins 3 y 4 del Leonardo también funcionan a 980 Hz.

En la mayor parte de las placas Arduino (las que van equipadas con el procesador ATmega 168 o ATmega
328), esta función puede ser usada con los pins 3, 5, 6, 9, 10 y 11. En el Arduino Mega, funciona con los
pins del 2 al 13 y del 44 al 46. Modelos más antiguos de Arduino con el procesador ATmega8 sólo pueden
ejecutar analogWrite() en los pins 9, 10 y 11.

El Arduino Due puede ejecutar analogWrite() sobre los pins del 2 al 13 más los pins DAC0 y DAC1.
Contrariamente a los pins PWM, los pins DAC0 y DAC1 son convertidores Digital -> Analógico y actúan
como verdaderas salidas analógicas (es decir, producen una salida equivalente en voltaje sin codificación
PWM)
No es necesario ejecutar la función de inicialización pinMode() para configurar el pin como salida antes de
ejecutar analogWrite().
La función analogWrite() no tiene nada que ver con los pins analógicos o con la función analogRead.
Sintaxis:

analogWrite(pin, valor)
Parámetros:
pin: el número de pin en el que queremos escribir.
valor: la duración del pulso: entre 0 (OFF continuo) y 255 (ON continuo)
Devuelve:
Nada.
Notas:
Las salidas PWM generadas en los pins 5 y 6 tienen una duración mayor que la esperada. Esto es debido a
interacciones con las funciones millis()y delay() que usan el mismo temporizador interno usado para generar
las salidas PWN. Este efecto puede ser apreciado principalmente con duraciones cortas (típicamente de 0 a
10) y puede resultar en valores de 0 que no pongan totalmente a 0 los pines 5 y 6.
Ejemplo:
Enciende el LED con una intensidad proporcional al valor leído en la entrada conectada con el potenciómetro.

int ledPin = 9; // LED conectado al pin digital 9


int analogPin = 3; // potenciómetro conectado al pin analógico 3
int val = 0; // variable que almacena el valor leído (potenciómetro)

void setup()
{
pinMode(ledPin, OUTPUT); // configura el the pin 9 como salida
}
void loop()
{
val = analogRead(analogPin); // lee entrada potenciómetro
analogWrite(ledPin, val / 4); // analogRead oscila de 0 a 1023, analogWrite entre 0 y 255
}

4.3 Practica Hola mundo con Arduino


El programa de testeo: "HELLO WORLD"
Para finalizar, probaremos que todo está correctamente instalado y configurado ejecutando nuestro primer
programa, el más simple, el típico "HELLO WORLD" ("HOLA MUNDO").

Ahora lo escribiremos en el lenguaje de programación con la plataforma Arduino

Salida digital

En este ejemplo el LED conectado al pin 13 parpadea cada segundo.

int ledPin = 13; // LED que se encuentra en el pin 13

void setup()
{
pinMode(ledPin, OUTPUT); // El p1n 13 será una salida digital
}

void loop(){
digitalWrite(ledPin, HIGH); // Enciende el LED
delay(1000); // Pausa de 1 segundo
digitalWrite(ledPin, LOW); // Apaga el LED
delay(1000); // Pausa de 1 segundo
}
ACTIVIDAD PRACTICA 002
Es hora de poner en prueba lo que has aprendido.

1. Construye el siguiente circuito en Tinkercad

2. Construye los bloques de programación enTinkercad

3. Construye el código Arduino


4. INSTALACIÓN DE ARDUINO CH340 (ALTERNATIVO)

Las tarjetas genericas compatibles con Arduino, reemplazan el tradicional


FT232RL o el ATMEGA16u2 por un circuito integrado de origen chino
conocido como CH340. El driver CH340 es el software requerido para
poder usar dicho circuito integrado, nos ayudará para poder usar cualquier
modelo de Arduinos genéricos.

4.1 INSTALACIÓN DEL DRIVER CH340 EN WINDOWS:

Lo primero que debemos hacer es descargar el software CH340 que se


encuentra en el siguiente enlace:

DRIVER CH340

Una vez descargado, veremos el siguiente archivo:

Ejecutamos el archivo y a continuación nos desplegará la siguiente pantalla:

Durante la instalación, el ordenador nos preguntará si deseamos ejecutar el archivo, seleccionaremos


''Ejecutar''.

Posteriormente aparecerá la siguiente pantalla:

Seleccionaremos ''INSTALL'' y con ello finalizaremos

el proceso de instalación, desplegando el siguiente mensaje:


Y seleccionaremos ''Aceptar''.

A continuación, conectaremos nuestro Arduino genérico (cualquier modelo) a el ordenador, y en la esquina


inferior derecha podremos el siguiente mensaje, el cual nos indica que podemos comenzar a usar nuestro
Arduino de forma normal:

Podemos también abrir el Administrador de Dispositivos, para comprobar que el driver fue instalado
correctamente, en este caso nuestro ordenador lo detectó como ''USB-SERIAL CH340 (COM9)''.

ENLACES PARA DESCARGAR DRIVER:

Para finalizar, te proporcionamos los enlaces de descarga del Driver CH340 para los diferentes sistemas
operativos.

DESCARGAR DRIVER CH340 PARA WINDOWS

DESCARGAR DRIVER CH340 PARA MacOS


ACTIVIDAD PRACTICA 003

Es hora de poner en prueba lo que has aprendido.

1. Construye el siguiente circuito en Tinkercad, construye el código necesario para el


funcionamiento de la secuencia de leds

void setup()
{
pinMode (1,OUTPUT);
pinMode (2,OUTPUT);
pinMode (3,OUTPUT);
pinMode (4,OUTPUT);
pinMode (5,OUTPUT);
pinMode (6,OUTPUT);
pinMode (7,OUTPUT);
pinMode (8,OUTPUT);
pinMode (9,OUTPUT);
pinMode (10,OUTPUT);
}

void loop()
{
digitalWrite(1,HIGH);
delay(500);//Wait for 500 milisegundos
digitalWrite(1,LOW);
delay(500);//Wait for 500 milisegundos

digitalWrite(2,HIGH);
delay(500);//Wait for 500 milisegundos
digitalWrite(2,LOW);
delay(500);//Wait for 500 milisegundos

digitalWrite(3,HIGH);
delay(500);//Wait for 500 milisegundos
digitalWrite(3,LOW);
delay(500);//Wait for 500 milisegundos

digitalWrite(4,HIGH);
delay(500);//Wait for 500 milisegundos
digitalWrite(4,LOW);
delay(500);//Wait for 500 milisegundos

digitalWrite(5,HIGH);
delay(500);//Wait for 500 milisegundos
digitalWrite(5,LOW);
delay(500);//Wait for 500 milisegundos

digitalWrite(6,HIGH);
delay(500);//Wait for 500 milisegundos
digitalWrite(6,LOW);
delay(500);//Wait for 500 milisegundos

digitalWrite(7,HIGH);
delay(500);//Wait for 500 milisegundos
digitalWrite(7,LOW);
delay(500);//Wait for 500 milisegundos

digitalWrite(8,HIGH);
delay(500);//Wait for 500 milisegundos
digitalWrite(8,LOW);
delay(500);//Wait for 500 milisegundos

digitalWrite(9,HIGH);
delay(500);//Wait for 500 milisegundos
digitalWrite(9,LOW);
delay(500);//Wait for 500 milisegundos

digitalWrite(10,HIGH);
delay(500);//Wait for 500 milisegundos
digitalWrite(10,LOW);
delay(500);//Wait for 500 milisegundos
}
2. Elabora el código necesario para el funcionamiento de la secuencia de led RGB

void setup()
{
pinMode (2,OUTPUT);
pinMode (3,OUTPUT);
pinMode (4,OUTPUT);
}

void loop()
{
digitalWrite(2,HIGH);
delay(500);//Wait for 500 milisegundos
digitalWrite(2,LOW);
delay(500);//Wait for 500 milisegundos

digitalWrite(3,HIGH);
delay(500);//Wait for 500 milisegundos
digitalWrite(3,LOW);
delay(500);//Wait for 500 milisegundos

digitalWrite(4,HIGH);
delay(500);//Wait for 500 milisegundos
digitalWrite(4,LOW);
delay(500);//Wait for 500 milisegundos
}

También podría gustarte