Documente Academic
Documente Profesional
Documente Cultură
2
UNIVERSIDAD NACIONAL DE SAN AGUSTIN DE AREQUIPA
INDICE
1. OBJETIVOS GENERALES: .......................................................................................................... 3
2. OBJETIVOS ESPECIFICOS:......................................................................................................... 3
3. MARCO TEORICO:....................................................................................................................... 4
3.1. VISIÓN DE CONJUNTO ............................................................................................................ 4
3.2. ESQUEMA Y DISEÑO DE REFERENCIA ........................................................................... 4
3.3. RESUMEN............................................................................................................................... 6
3.4. PODER..................................................................................................................................... 6
3.5. MEMORIA .............................................................................................................................. 7
3.6. ENTRADA Y SALIDA ........................................................................................................... 7
3.7. COMUNICACIÓN .................................................................................................................. 9
3.8. PROGRAMACIÓN ................................................................................................................. 9
3.9. RESTABLECIMIENTO AUTOMÁTICO (SOFTWARE) ................................................... 10
3.10. PROTECCIÓN DE SOBREINTENSIDAD USB................................................................ 11
3.11. SENSOR ULTRASONICO ................................................................................................. 11
3.11.1. CALCULO DE LA DISTANCIA ..................................................................................... 11
4. MATERIALES: ........................................................................................................................ 12
5. DIAGRAMA DE CONEXIÓN..................................................................................................... 14
6. PROCEDIMIENTO: ..................................................................................................................... 14
7. ALGORITMO DEL ARDUINO................................................................................................... 16
Estructura De Un Programa......................................................................................................... 17
Setup() ........................................................................................................................................... 17
Loop() ............................................................................................................................................ 18
Funciones ...................................................................................................................................... 18
{} Entre Llaves .............................................................................................................................. 19
; Punto y Coma.............................................................................................................................. 19
/*… */ Bloque de Comentarios ..................................................................................................... 20
// Línea de Comentarios ................................................................................................................ 20
9. BIBLIOGRAFIA........................................................................................................................... 26
3
UNIVERSIDAD NACIONAL DE SAN AGUSTIN DE AREQUIPA
INTRODUCCION
En este proyecto vamos a incurrir en una aplicación de las varias que tiene el Arduino,
como es el “MEDIDOR DE DISTANCIA CON MODULO ARDUINO”. Este proyecto
usara como material principal un ARDUINO MEGA y el SENSOR ULTRASONICO,
como detector de objetos.
1. OBJETIVOS GENERALES:
Desarrollar un proyecto aplicado al curso que sea de utilidad para el uso de las
personas
2. OBJETIVOS ESPECIFICOS:
4
UNIVERSIDAD NACIONAL DE SAN AGUSTIN DE AREQUIPA
3. MARCO TEORICO:
Esquema:
5
UNIVERSIDAD NACIONAL DE SAN AGUSTIN DE AREQUIPA
6
UNIVERSIDAD NACIONAL DE SAN AGUSTIN DE AREQUIPA
3.3. RESUMEN
Microcontrolador ATmega1280
Tensión de funcionamiento 5V
Voltaje de entrada 7-12V
(recomendado)
Voltaje de entrada (límites) 6-20V
Pines de E / S digitales 54 (de los cuales 15 proporcionan salida de PWM)
Clavijas de entrada analógica dieciséis
Corriente DC por Pin E / S 40 Ma
Corriente DC para 3.3V Pin 50 Ma
Memoria flash 128 KB de los cuales 4 KB utilizados por el gestor de
arranque
SRAM 8 KB
EEPROM 4 KB
Velocidad de reloj 16 MHz
3.4. PODER
El Arduino Mega puede alimentarse a través de la conexión USB o con una fuente de
alimentación externa. La fuente de poder se selecciona automáticamente.
7
UNIVERSIDAD NACIONAL DE SAN AGUSTIN DE AREQUIPA
VIN. El voltaje de entrada a la placa Arduino cuando está usando una fuente
de alimentación externa (a diferencia de 5 voltios de la conexión USB u otra
fuente de alimentación regulada). Puede suministrar voltaje a través de este
pin o, si suministra voltaje a través del conector de alimentación, acceda a
través de este pin.
5V. La fuente de alimentación regulada utilizada para alimentar el
microcontrolador y otros componentes en el tablero. Esto puede provenir de
VIN a través de un regulador de a bordo, o puede ser suministrado por USB
u otro suministro regulado de 5V.
3V3. Un suministro de 3.3 voltios generado por el chip FTDI a bordo. El
consumo máximo de corriente es de 50 mA.
GND. Pines de tierra
3.5. MEMORIA
El ATmega1280 tiene 128 KB de memoria flash para almacenar el código (de los
cuales 4 KB se utilizan para el gestor de arranque), 8 KB de SRAM y 4 KB de
EEPROM (que se pueden leer y escribir con la biblioteca EEPROM ).
Cada uno de los 54 pines digitales del Mega se puede usar como entrada o salida, usando
las funciones pinMode () , digitalWrite () y digitalRead () . Operan a 5 voltios.
Cada pin puede proporcionar o recibir un máximo de 40 mA y tiene una resistencia
interna de pull-up (desconectada por defecto) de 20-50 kOhms. Además, algunos
pines tienen funciones especializadas:
8
UNIVERSIDAD NACIONAL DE SAN AGUSTIN DE AREQUIPA
El Mega tiene 16 entradas analógicas, cada una de las cuales proporciona 10 bits de
resolución (es decir, 1024 valores diferentes). Por defecto, miden desde tierra a 5
voltios, aunque es posible cambiar el extremo superior de su rango usando el pin AREF
y la función analogReference ().
9
UNIVERSIDAD NACIONAL DE SAN AGUSTIN DE AREQUIPA
3.7. COMUNICACIÓN
El Arduino Mega tiene una serie de instalaciones para comunicarse con una
computadora, otro Arduino u otros microcontroladores. El ATmega1280 proporciona
cuatro UART de hardware para comunicación serial TTL (5V). Un
FTDI FT232RL en la placa canaliza uno de estos por USB y los controladores
FTDI (incluidos con el software Arduino) proporcionan un puerto virtual para el
software en la computadora. El software Arduino incluye un monitor serie que
permite el envío de datos textuales simples hacia y desde la placa
Arduino. Los LED RX y TX de la placa parpadearán cuando los datos se transmitan a
través del chip FTDI y la conexión USB a la computadora (pero no para la
comunicación serial en los pines 0 y 1).
3.8. PROGRAMACIÓN
Arduino Mega se puede programar con el software Arduino ( descargar ). Para más
detalles, consulte la referencia y tutoriales .
10
UNIVERSIDAD NACIONAL DE SAN AGUSTIN DE AREQUIPA
En lugar de requerir una pulsación física del botón de reinicio antes de una carga, el
Arduino Mega está diseñado de manera que permite su reinicio mediante un software
que se ejecuta en una computadora conectada. Una de las líneas de control de flujo de
hardware (DTR) del FT232RL está conectada a la línea de reinicio del ATmega1280
a través de un condensador de 100 nanofaradios. Cuando esta línea se afirma (se toma
bajo), la línea de reinicio cae lo suficiente como para restablecer el chip. El software
Arduino utiliza esta capacidad para permitirle cargar código simplemente
presionando el botón de carga en el entorno Arduino. Esto significa que el gestor de
arranque puede tener un tiempo de espera más corto, ya que la disminución de DTR
se puede coordinar bien con el inicio de la carga.
Esta configuración tiene otras implicaciones. Cuando Mega está conectada a una
computadora con Mac OS X o Linux, se restablece cada vez que se realiza una conexión
desde el software (a través de USB). Durante el siguiente medio segundo más o
menos, el gestor de arranque se está ejecutando en el Mega. Mientras está
programado para ignorar datos mal formados (es decir, cualquier cosa además de una
carga de código nuevo), interceptará los primeros bytes de datos enviados a la placa
después de que se abra una conexión. Si un boceto que se ejecuta en la placa recibe
una configuración de una sola vez u otros datos cuando se inicia por primera vez,
asegúrese de que el software con el que se comunica espera un segundo después de
abrir la conexión y antes de enviar esta información.
11
UNIVERSIDAD NACIONAL DE SAN AGUSTIN DE AREQUIPA
El Arduino Mega tiene un polifuse reseteable que protege los puertos USB de tu
computadora contra cortos y sobrecorrientes. Aunque la mayoría de las computadoras
proporcionan su propia protección interna, el fusible proporciona una capa adicional
de protección. Si se aplica más de 500 mA al puerto USB, el fusible interrumpirá
automáticamente la conexión hasta que se elimine el cortocircuito o la sobrecarga.
�𝑖��𝑎��𝑐𝑖𝑎 𝐿 = 1/2 × 𝑇 × �
Dónde:
L es la distancia,
T es el tiempo entre la emisión y la recepción, y
12
UNIVERSIDAD NACIONAL DE SAN AGUSTIN DE AREQUIPA
4. MATERIALES:
Arduino MEGA
2 Protoboard donde conectaremos los componentes
Cables para hacer las conexiones
6 resistencias de 220 Ω
2 LED verde
2 LED amarillo
2 LED rojo
2 sensor ultrasónico Arduino (HC-SR04)
1 buzzer
Pantalla digital de 16 x 2
13
UNIVERSIDAD NACIONAL DE SAN AGUSTIN DE AREQUIPA
14
UNIVERSIDAD NACIONAL DE SAN AGUSTIN DE AREQUIPA
5. DIAGRAMA DE CONEXIÓN
6. PROCEDIMIENTO:
Las resistencias son de 220 Ω y se colocan en serie con los LEDs. El sensor ultrasónico
Arduino se conecta a dos pines digitales, uno para el trigger o disparador y otro para
el echo o receptor. El buzzer Arduino se conecta a una salida PWM.
Lo primero que haré será plantear el algoritmo del sistema de detección de obstáculos.
15
UNIVERSIDAD NACIONAL DE SAN AGUSTIN DE AREQUIPA
1. Si
1. Encender LED verde
2. Emitir sonido 1
3. Salir
2. No
1. Continuar
2. ¿Está en zona amarilla?
1. Si
1. Encender LED amarillo
2. Emitir sonido 2
3. Salir
2. No
1. Continuar
3. ¿Está en zona roja?
1. Si
1. Encender LED rojo
2. Emitir sonido 2
3. Salir
2. No
1. Continuar
*Este procedimiento lo haremos semejante para el otro sensor, independientemente uno del
otro.
De los dos algoritmos anteriores, deducimos que vamos a necesitar varios umbrales de
decisión, uno para cada situación. Podemos coger una simple regla y determinarlos.
FIGURA NRO 08
16
UNIVERSIDAD NACIONAL DE SAN AGUSTIN DE AREQUIPA
FIGURA NRO 09
FIGURA NRO 10
17
UNIVERSIDAD NACIONAL DE SAN AGUSTIN DE AREQUIPA
Estructura De Un Programa
Setup()
La función setup() se invoca una sola vez cuando el programa empieza. Se utiliza para
inicializar los modos de trabajo de los pins, o el puerto serie. Debe ser incluido en un
programa aunque no haya declaración que ejecutar. Así mismo se puede utilizar para
establecer el estado inicial de las salidas de la placa.
void setup()
{
pinMode(pin, OUTPUT); // configura el 'pin' como salida
digitalWrite(pin, HIGH); // pone el ‘pin’ en estado HIGH
}
18
UNIVERSIDAD NACIONAL DE SAN AGUSTIN DE AREQUIPA
Loop()
Después de llamar a setup(), la función loop() hace precisamente lo que sugiere su nombre,
se ejecuta de forma cíclica, lo que posibilita que el programa esté respondiendo
continuamente ante los eventos que se produzcan en la placa.
void loop()
{
digitalWrite(pin, HIGH); // pone en uno (on, 5v) el 'pin'
delay(1000); // espera un segundo (1000 ms)
digitalWrite(pin, LOW); // pone en cero (off, 0v.) el 'pin'
delay(1000);
}
Funciones
type nombreFunción(parámetros)
{
instrucción;
}
La función siguiente devuelve un número entero, delayVal() se utiliza para poner un valor
de retraso en un programa que lee una variable analógica de un potenciómetro conectado a
una entrada de Arduino. Al principio se declara como una variable local, 'v' recoge el valor
leído del potenciómetro que estará comprendido entre 0 y 1023, luego se divide el valor por
4 para ajustarlo a un margen comprendido entre 0 y 255, finalmente se devuelve el valor 'v'
y se retornaría al programa principal. Esta función cuando se ejecuta devuelve el valor de tipo
entero 'v'.
19
UNIVERSIDAD NACIONAL DE SAN AGUSTIN DE AREQUIPA
int delayVal()
{
int v; // crea una variable temporal 'v'
v= analogRead(pot); // lee el valor del potenciómetro
v /= 4; // convierte 0-1023 a 0-255
return v; // devuelve el valor final
}
{} Entre Llaves
type funcion()
{
instrucciones;
}
Una llave de apertura “{“ siempre debe ir seguida de una llave de cierre “}”, si no es así el
programa dará errores.
; Punto y Coma
Nota: Olvidaos de poner fin a una línea con un punto y coma o se producirá en un error de
compilación. El texto de error puede ser obvio, y se referirá a la falta de una coma, o puede
que no. Si se produce un error raro y de difícil detección lo primero que debemos hacer es
comprobar que los puntos y comas están colocados al final de las instrucciones.
20
UNIVERSIDAD NACIONAL DE SAN AGUSTIN DE AREQUIPA
Los bloques de comentarios, o comentarios multi-línea son áreas de texto ignorados por el
programa que se utilizan para las descripciones del código o comentarios que ayudan a
comprender el programa. Comienzan con / * y terminan con * / y pueden abarcar varias
líneas.
Debido a que los comentarios son ignorados por el compilador y no ocupan espacio en la
memoria de Arduino pueden ser utilizados con generosidad. También pueden utilizarse
para "comentar" bloques de código con el propósito de anotar informaciones para depuración
y hacerlo mas comprensible para cualquiera.
Nota: Dentro de una misma línea de un bloque de comentarios NO se puede escribir otro
bloque de comentarios (usando /*..*/).
// Línea de Comentarios
Una línea de comentario empieza con // y terminan con la siguiente línea de código. Al
igual que los comentarios de bloque, los de línea son ignoradas por el programa y no
ocupan espacio en la memoria.
// esto es un comentario
Una línea de comentario se utiliza a menudo después de una instrucción, para proporcionar
más información acerca de lo que hace ésta o para recordarla más adelante.
21
UNIVERSIDAD NACIONAL DE SAN AGUSTIN DE AREQUIPA
PROGRAMA ARDUINO
//#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#include <Ultrasonic.h>
Ultrasonic ultrasonic(6,5,5800); // (Trig PIN,Echo PIN)
Ultrasonic ultrasonic2(9,4,5800); // (Trig PIN,Echo PIN)
//Luego sustituye los 3000 microsegundos con el tiempo maximo de
tiempo que necesitemos.
//La formula a utilizar es: centimetros * 58 = Max.Tiempo de
salida
LiquidCrystal_I2C lcd(0x27,16,3);
//&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&& const
int EchoPin = 5; const int
TriggerPin = 6; const int
EchoPin2 = 4; const int
TriggerPin2 = 9;
const int LedPinVerde = 13;
const int LedPinAmarillo = 12;
const int LedPinRojo = 11;
const int LedPinAzul = 7;
const int LedPinAnaranjado = 8;
22
UNIVERSIDAD NACIONAL DE SAN AGUSTIN DE AREQUIPA
lcd.clear();
lcd.setCursor(0,0);
lcd.print("SENSOR #01=");
lcd.setCursor(11,0);
lcd.print(ultrasonic.Ranging(CM)); // CM or INC
lcd.print("cm");
lcd.setCursor(0,1);
lcd.print("SENSOR #02=");
lcd.setCursor(11,1);
lcd.print(ultrasonic2.Ranging(CM)); // CM or INC
lcd.print("cm");
delay(500);
//&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&
23
UNIVERSIDAD NACIONAL DE SAN AGUSTIN DE AREQUIPA
24
UNIVERSIDAD NACIONAL DE SAN AGUSTIN DE AREQUIPA
FIGURA NRO: 11
FIGURA NRO: 12
25
UNIVERSIDAD NACIONAL DE SAN AGUSTIN DE AREQUIPA
FIGURA NRO: 13
FIGURA NRO: 14
26
UNIVERSIDAD NACIONAL DE SAN AGUSTIN DE AREQUIPA
8. CONCLUSIONES Y OBSERVACIONES
CONCLUSIONES:
OBSERVACIONES
Habra que tener mucho cuidado con los objetos que su utilizaran ya que hay
materiales, que absorben el sonido emitido por el Ultrasonico, como es el caso del
algodón, que lo que hace es absorverlo y no revotarlo.
Si deseamos introducir mas funciones, neceistaremos mas pines de entrada, para
este caso será necesario adaptar puertos como lo que se hizo con el LCD
La programación, tiene que llevar un cierto grado de pasos a seguir, conociendo
bien los bucles que se utilizaran
Tener el cuidado de escoger el Arduino correcto.
9. BIBLIOGRAFIA
http://www.arduino.cc
http://arduino.cc/en/Reference/HomePage
27
UNIVERSIDAD NACIONAL DE SAN AGUSTIN DE AREQUIPA
27