Está en la página 1de 85

 OBJETIVO GENERAL:

❖ Generar códigos de programación con lógica funcional


aplicados a la solución de problemas, mediante el desarrollo
de prototipos físicos, empleando Arduino.
 OBJETIVOS ESPECIFICOS:
❖ Estudiar conceptos básicos de electrónica y robótica.
❖ Estudiar y comprender el Hardware y Software de la
plataforma Arduino.
❖ Aplicar conceptos de la plataforma Arduino en proyectos
prácticos de robótica.
 La electricidad es un conjunto de fenómenos producidos por
el movimiento y la interacción entre cargas eléctricas positivas
y negativas de los cuerpos. Comúnmente se habla de
electricidad para referirse a la corriente eléctrica.
 Un electrón es una partícula subatómica que posee carga
eléctrica negativa. Cualquier electrón siempre es atraído por
una carga eléctrica equivalente.
 Los electrones se desplazan a través de un conductor desde
un polo negativo a un polo positivo. A la circulación de
electrones por un material conductor se le llama electricidad.
 El voltaje entre dos puntos de un circuito eléctrico es también
llamado “tensión”, “diferencia de potencial” o “caída de
potencial”.
 El Voltaje es la energía necesaria para poner en movimiento
los electrones dentro de un conductor, se representa con la
letra V.
 El voltaje es una magnitud física con la cual se puede
cuantificar o medir la tensión eléctrica entre dos puntos.
 Su unidad de medida es el voltio.
 Intensidad de corriente es la circulación de cargas eléctricas
en un circuito eléctrico.
 La intensidad de corriente eléctrica(I) es la cantidad de
electricidad o carga eléctrica(Q) que circula por un circuito
en la unidad de tiempo(t).
 Para denominar la Intensidad se utiliza la letra I y su unidad es
el Amperio(A).
 Llamamos corriente continua a aquella en la que los
electrones circulan a través del conductor siempre en la
misma dirección
 Comúnmente se identifica la corriente continua con la
corriente constante (por ejemplo, la suministrada por baterías,
pilas, acumuladores).
 Llamamos corriente alterna a aquella en la que la magnitud y
la polaridad del voltaje (y por tanto, las de la intensidad
también) varían cíclicamente. Esto último implica que los polos
positivo y negativo se intercambian alternativamente a lo
largo del tiempo y, por tanto, que el voltaje va tomando
valores positivos y negativos con una frecuencia determinada.
 Elemento capaz de oponerse al paso de la corriente eléctrica
a través de el. A mayor resistencia eléctrica, mayor dificultad
de los electrones para atravesarla.
 La unidad de medida de la resistencia de un objeto es el
ohmio (Ω).
 Ley de Ohm: si un componente eléctrico con resistencia
interna R, es atravesado por una intensidad de corriente I,
entre ambos extremos de dicho componente existirá una
diferencia de potencial V, que puede ser conocida gracias a
la relación V = I·R.
 Las señales eléctricas (voltajes o intensidades) se pueden
clasificar según sus características físicas.
 La señal digital es una señal binaria, es decir que solo puede
tener dos valores .Ej: para indicar la ausencia de señal, el valor
binario puede ser 0. El otro valor puede ser cualquiera, diferente
de 0, para indicar la presencia de señal.
 Estado 0, no pasa corriente, apagado (off), bajo (low).
 Estado 1, pasa corriente, encendido (on), alto (high).
 Además de los niveles ALTO y BAJO, en una señal binaria existen
las transiciones entre estos niveles (de ALTO a BAJO y de BAJO a
ALTO), denominadas flanco de bajada y de subida,
respectivamente.
 Señal analógica es aquella que tiene infinitos valores dentro
de un rango determinado.
 La mayoría de magnitudes físicas son analógicas como la
temperatura, el sonido, la luz. Así como las señales eléctricas:
voltaje, intensidad. Todas estas señales pueden sufrir
variaciones continuas.
 Muchos sistemas electrónicos (un computador, por ejemplo)
no tienen la capacidad de trabajar con señales analógicas:
solamente pueden manejar señales digitales (especialmente
de tipo binario; de ahí su gran importancia). Por tanto,
necesitan disponer de un conversor analógico-digital que
“traduzca” (mejor dicho, “simule”) las señales analógicas del
mundo exterior en señales digitales entendibles por dicho
sistema electrónico.
 Ej: Un ejemplo del primer caso sería la grabación de un
sonido mediante un micrófono
 También se necesitará un conversor digital-analógico si se
desea realizar el proceso inverso: transformar una señal digital
interna del computador en una señal analógica para poderla
así emitir al mundo físico.
 Ej: la reproducción de un sonido pregrabado mediante un
altavoz.
 En las conversiones siempre existirá
una pérdida de información (de
“calidad”) durante el proceso de
conversión de la señal.
 Esta pérdida aparece porque es
matemáticamente imposible realizar
una transformación perfecta de un
número infinito de valores (señal
analógica) a un número finito (señal
digital) debido a que, por fuerza,
varios valores de la señal analógica
deben “colapsar” en un único valor
indistinguible de la señal digital.
 Arduino es una plataforma electrónica de código abierto
basado en el hardware y el software fácil de usar y en una
placa con un sencillo Microcontrolador.
 Está dirigido a cualquier persona que hace proyectos
interactivos.
 Económico: Las placas Arduino son relativamente baratas
comparadas con otras plataformas microcontroladoras.
 Multiplataforma: El software de Arduino se ejecuta en sistemas
operativos Windows, Macintosh OSX y GNU/Linux.
 Entorno de programación simple y claro: El entorno de
programación de Arduino es fácil de usar, suficientemente
flexible, convenientemente basado en programación C++.
 Código abierto y software extensible: El software Arduino está
publicado como herramientas de código abierto. El lenguaje
puede ser expandido mediante librerías C++.
 Código abierto y hardware extensible: El Arduino está basado en
microcontroladores ATMEGA168 y ATMEGA328. Los planos para
los módulos están publicados bajo licencia Creative Commons,
por lo que diseñadores experimentados de circuitos pueden
hacer su propia versión del módulo, extendiéndolo y
mejorándolo. Incluso usuarios relativamente inexpertos pueden
construir la versión de la placa del módulo para entender como
funciona y ahorrar dinero.
 VIN: fuente tensión de entrada
que contendrá la tensión a la
que estamos alimentando al
Arduino mediante la fuente
externa.
 5V: fuente de tensión regulada
de 5V, esta tensión puede venir
ya sea de pin VIN a través de un
regulador interno, o se suministra
a través de USB o de otra fuente
de 5V regulada.
 3.3V: fuente de 3.3 voltios
generados por el regulador
interno con un consumo máximo
de corriente de 50mA.
 GND: pines de tierra.
 Toman las señales del mundo  Convierten las señales de
físico y las convierten en corriente o voltaje en señales
señales de corriente o voltaje físicamente útiles como
movimiento, luz,etc
 Cada uno de los 14 pines digitales se
puede utilizar como una entrada o
salida.
 Pin 0 (RX) y 1 (TX). Se utiliza para recibir
(RX) y la transmisión (TX)de datos serie
TTL.
 Pin 2 y 3. Se trata de pines encargados
de interrumpir el programa secuencial
establecido por el usuario.
 Pin 3, 5, 6, 9, 10 y 11. PWM (modulación
por ancho de pulso).
 Pin 10 (SS), 11 (MOSI), 12 (MISO), 13
(SCK). Estos pines son de apoyo a la
comunicación SPI.
 Pin 13. LED. Hay un LED conectado al
pin digital 13. Cuando el pin es de alto
valor, el LED está encendido, cuando el
valor está bajo, es apagado.
 El Arduino posee 6 entradas
analógicas, etiquetadas desde la
A0 a A5, cada una de las cuales
ofrecen 10 bits de resolución (es
decir, 1024 estados). Por defecto,
tenemos una tensión de 5V, pero
podemos cambiar este rango
utilizando el pin de AREF y
utilizando la función
analogReference(), donde le
introducimos una señal externa
de continua que la utilizara como
referencia.
 El software Arduino es compatible con un ordenador que
ejecute cualquiera de los siguientes Sistemas Operativos:
Windows, Mac OS X, GNU/Linux.
 PROGRAMACIÓN
Crear programas o aplicaciones, a través del desarrollo de
un código fuente, el cual se basa en el conjunto de instrucciones
que sigue el ordenador para ejecutar un programa.

 ALGORITMO
El algoritmo es un conjunto de pasos, instrucciones o acciones
que se deben seguir para resolver un problema. Existen una gran
cantidad de algoritmos, hay que coger el más efectivo.
 == (igual a )
 != (diferente de)
 < (menor que)
 > (mayor que)
 <= (menor o igual)
 >= (mayor o igual)
 = (asignar)  If / else
 + (suma)  Switch / case
 -(resta)  For
 *(multiplicación)  While
 / (división)  Do / while
Arduino permite manejar los siguientes tipos de datos , ejemplo:
 Byte: almacena un valor numérico de 8 bits, en un rango de 0-255.
 Int: Almacena un valor entero de 16 bits, en un rango de 32767 a -32768
 Long: Valor entero almacenado en 32 bits, en un rango de 2147483647 a -
2147483648.
 Float: tipo coma flotante almacenado en 32 bits, en un rango de
3.402E+38 a -3,402E+38
 Arrays: colección de valores, a los cuales se accede mediante un
número de índice, el primer valor del índice es 0:
 Una variable debe ser declarada y opcionalmente asignada a
un determinado valor. En la declaración de la variable se
indica el tipo de datos que almacenará (int, float, long).
 IF: Ideales para tomar decisiones, luego de evaluar las
condiciones lógicas A

CONDICIÓN

NO
SI

ENCENDER APAGAR
RELE RELE

A
 SWITCH: Ideales para tomar decisiones, luego de evaluar las
condiciones lógicas.

OPCIÓN
MOVIMIENTO

OPCIÓN 1 OPCIÓN 2 OPCIÓN 3 OPCIÓN 4 OPCIÓN 4

SI SI SI SI SI

MOVER MOVER MOVER MOVER


DETENERSE
DERECHA IZQUIERDA ADELANTE ATRAS
 FOR: Ideales para repetir las instrucciones las veces que se
requiera.
INICIO

MOTOR=8

i=1 ; I <10 ; I = i+1

MOVER

FIN
 WHILE: Ideales para repetir las instrucciones las veces que se
requiera.
 DO WHILE: Ideales para repetir las instrucciones las veces que
se requiera.
 La programación se realizará en el Software libre Arduino, este
software utiliza Lenguaje C. El código de programación se
debe escribir en el IDE de Arduino con la siguiente estructura
En la primera sección, Declaraciones Globales, se deben poner
las bibliotecas específicas que se utilizarán y las variables
globales que se utilizarán. Este bloque se ejecuta una sola vez y
bajo cualquier de los siguientes eventos:
 Encendido de la placa.
 Después de un reset.
 Después de cargar un programa desde el computador
 setup() es la parte encargada de recoger la configuración
 La función setup() se ejecuta después de la sección de
declaraciones globales y por una sóla vez. Se utiliza para
configurar el hardware que se utilizará.
 loop() es la que contiene el programa que se ejecutará
cíclicamente.
 La función loop(), por otro lado, se ejecuta después de la función
anterior, de forma “perpetua”, a una tasa de repetición muy
cercana a la velocidad de trabajo de la placa, dependiendo de
la cantidad de instrucciones que tenga
 Una función es un bloque de código que tiene un nombre y un
conjunto de estamentos que son ejecutados cuando se llama
a la función. Son funciones setup() y loop(). Las funciones de
usuario pueden ser escritas para realizar tareas repetitivas y
para reducir el tamaño de un programa.

 EJEMPLO:
Type nombreFuncion(parámetros)
{
acciones;
}
 Las llaves sirven para definir el principio y el final de un bloque
de instrucciones. Se utilizan para los bloques de programación
setup(), loop(), if.., etc.

type funcion()
{
estamentos;
}

 Una llave de apertura “{“ siempre debe ir seguida de una llave


de cierre “}”, si no es así el programa dará errores.
 El punto y coma “;” se utiliza para separar
instrucciones en el lenguaje de
programación de Arduino. También se utiliza
para separar elementos en una instrucción
de tipo “bucle for”.
 Los bloques de comentarios, o multi-línea de comentarios, 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.

/*
esto es un bloque de comentario
no se debe olvidar cerrar los comentarios
estos deben estar equilibrados
*/
 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 vez abierta la aplicación nos vamos a Tools-Board-
Arduino UNO
 Una vez seleccionado el modelo de nuestra placa tendremos
que seleccionar el dispositivo serie de la placa:
 Un led (de la sigla inglesa LED: Light-Emitting Diode: ‘diodo emisor
de luz’, también ‘diodo luminoso’) .

 Donde R será la resistencia teórica que deberemos usar, V será


la tensión de alimentación menos la tensión a la que debe ser
alimentado nuestro LED (generalmente 2v) e I la intensidad para
el funcionamiento óptimo de LED, en los “normales” de unos
15mA. R=200 OHMS
 ARDUINO 5V 50 mA
INICIO

DECLARO COMO
OUT O IN

PIN 2-- ON

ESPERA 1 SEGUNDO

PIN 2 -- OFF

ESPERA 1 SEGUNDO
INICIO

2,3,4 SALIDAS

LED 2 ENCENDER
ESPERAR 1 SEG
APAGAR

LED 3 ENCENDER
ESPERAR ½ SEG
APAGAR

LED 4 ENCENDER
ESPERAR 1 SEG
APAGAR
INICIO

 ARDUINO – PC
INICIO COMUNICACIÓN
SERIAL

IMPRIMIR EN EL SERIAL
PRUEBA COMUNICACION
SERIAL

ESPERAR 2
SEGUNDOS
INICIO

DATO

 PC - ARDUINO
13 SALIDA

LEER DATO
SERIAL

SI EL DATO ES= A SI DATO ES= B

ENCENDER 13 APAGAR 13
INICIO

PULSADOR

PULSADOR IN

LECTURA SERIAL DEL


PULSADOR
INICIO

PULSADOR
LED

PULSADOR IN
LED OUT

Se aplasta el
NO Apago led
pulsador ?

SI

Enciendo led
INICIO

BRILLO
INCREMENTO
LED

LED -- OUT

LED SE
ENCIENDE
CON EL
VALOR DE
BRILLO

BRILLO=BRILLO+INCREMENTO

SI BRILLO=0
Ó BRILLO=255

INCRE=-
INCRE

TIEMPO 30 ms
INICIO

VALOR=0

INICIO COMUNI SERIAL


9600

VALOR=LECTURA
ANALOGA

IMPRIMIR EN SERIAL
VALOR

ESPERAR 1500ms

FIN
INICIO

LED=9
LDR=0
VALOR=0

LED= SALIDA
LDR= ENTRDA

VALOR=LECTURA
ANALOGA

PWM=MAPEO
ANALOGO-DIGITAL

ENVIAR A LED
PWM

También podría gustarte