Académique Documents
Professionnel Documents
Culture Documents
Facultad de Ingeniera
Departamento de Ingeniera Elctrica
Escritura de
Informacin
digital.
Profesor:
Integrantes:
~ 1~
ndice
Introduccin................................................................................................... 3
Escritura de Informacin Digital.....................................................................3
digitalWrite()............................................................................................... 3
Sintaxis.................................................................................................... 3
Parmetros............................................................................................... 3
Retorno.................................................................................................... 3
Instrucciones de retardo................................................................................. 3
delay()......................................................................................................... 3
Sintaxis.................................................................................................... 3
Parmetros............................................................................................... 3
Retorno.................................................................................................... 3
delayMicroseconds()................................................................................... 4
Sintaxis.................................................................................................... 4
Parmetros............................................................................................... 4
Retorno.................................................................................................... 4
Ejercicio: Encender y Apagar un LED conectado al pin 13.............................4
Hardware..................................................................................................... 4
Cdigo......................................................................................................... 4
Diagramas de flujo......................................................................................... 4
Comando If else............................................................................................. 5
Comando For.................................................................................................. 6
Ejercicio.......................................................................................................... 6
Conclusiones.................................................................................................. 7
Bibliografa..................................................................................................... 8
~ 2~
Introduccin
Al igual que puedes leer seales analgicas, tambin puedes generar
valores analgicos. Arduino utiliza Pins con Modulacin Controlada por
Pulsos, PWM (del ingls Pulse Width Modulation) para enviar los valores
analgicos. Cuando se utiliza un Pin digital normal para escribir HIGH o LOW,
se obtiene bien 5V o 0V. Estos Pins PWM tienen una habilidad diferente,
puedes utilizarlos para obtener un nivel de tensin en cualquier punto entre
5V y 0V. Con esto, puedes atenuar un LED sin problemas entre ON y OFF.
Para utilizar esta habilidad especial de los Pins PWM, se deber usar la
funcin analogWrite(). Se necesitan dos parmetros, el nmero del Pin PWM,
y el nivel de salida. El nivel de salida es un nmero entre 0 y 255. 0 es igual
a digitalWrite(pin, LOW), 255 es igual a ejecutar digitalWrite(pin, HIGH) y
puedes llegar a cualquier punto entremedias.
digitalWrite()
Si el pin ha sido configurado como una salida OUTPUT con pinMode(), el
voltaje ser configurado a el correspondiente valor: 5V (o 3.3V en placas de
3.3V) para HIGH (alto), 0 V (tierra) para LOW (bajo).
Si el pin es configurado como entrada INPUT, digitalWrite() habilitara (HIGH)
o deshabilitara (LOW) el pullup interno en el pin de entrada. Es
recomendado configurar el pin usando pinMode() como INPUT_PULLUP para
habilitar la resistencia de pull-up, como se vio en el informe de la tarea 2.
Sintaxis
digitalWrite(pin, valor)
Parmetros
Pin: Numero del pin.
Valor: HIGH o LOW.
Retorno
None = nada
Nota:
Los pines de entrada (input) anlogos pueden ser usados como
pins digitales, referidos como A0, A1, etc.
~ 3~
Instrucciones de retardo
Las instrucciones de retardo pausan el programa por una determinada
cantidad de tiempo, as pueden establecer tiempos de pausa entre lneas de
cdigo, con la desventaja que el programa completo se pausa impidiendo
realizar acciones paralelas a la pausa.
Corresponden a delay() y a microdelay(), los cuales se referencian a
continuacin.
delay()
Pausa el programa por un tiempo determinado en milisegundos.
Sintaxis
delay(ms)
Parmetros
ms: Numero de milisegundos para pausar (unsigned long [entero largo sin
signo])
Retorno
Nada
delayMicroseconds()
Sintaxis
delayMicroseconds(us)
Parmetros
us: Numero de microsegundos para pausar (unsigned int [entero sin signo])
Retorno
Nada
Hardware
-
placa arduino.
LED
Resistencia de 220 OHM.
~ 4~
Cdigo
int ledPin = 13;
void setup()
{
pinMode(ledPin, OUTPUT);
}
void loop()
{
digitalWrite(ledPin, HIGH); // setea el led en HIGH [led ON]
delay(1000);
// espera 1 segundo (1000 ms)
digitalWrite(ledPin, LOW); // setea el led en LOW [led OFF]
delay(1000);
// espera 1 segundo (1000 ms)
}
Diagramas de flujo
Los diagramas de flujo permiten disear y observar de manera cmoda el
comportamiento del programa.
Para el ejercicio anterior el diagrama de flujo es el siguiente:
~ 5~
Comando If else
Este comando nos permite crear condiciones para que nuestro programa
funcione y en caso que no se cumplan, que el programa no se ejecute
Ejemplo:
Comando For
Antes de hablar de comando for es necesario explicar que es un bucle. Un
bucle es una subrutina que se repite y que es aplicada sobre una porcin
determinada de cdigo hasta que deje de cumplirse cierta condicin. En el
caso de la sentencia for se define que cierta porcin de cdigo se repetir
una cantidad finita de veces.
En el siguiente ejemplo se muestra la sintaxis y el uso de la sentencia:
~ 6~
Ejercicio 2
Encender y Apagar un LED, conectado al pin 13, durante 5 veces y luego
apagar durante 1 minuto.
Con este programa el arduino define un led en el pin 13, adems define una
variable t la cual se usara como medio de control para el encendido y
apagado del led.
El programa prendera y apagara el led mientras la variable t sea menor a
5000, el led se prendera por medio segundo y se apagara por medio
segundo, luego de que se apague en cada uno de los ciclo a t se le sumara
1000, entonces en 5 segundos el led se prendera 5 veces.
Al ser t mayor a 5000 el led permanecer apagado por un minuto, luego de
esto la secuencia se volver a repetir.
int led=13; //led conectado al pin 13
int t=0;
void setup ()
{
pinMode(led,OUTPUT); //setea el pin 13 como salida
}
void loop()
{
if (t<5000)
{
digitalWrite(led,HIGH); //setea al led en HIGH
delay(500); //espera medio segundo
digitalWrite(led,LOW); //setea al led en LOW
delay(500); // espera medio segundo
t=t+1000; // suma a t un segundo
}
else
{
digitalWrite(led,LOW); //setea al led en LOW
delay(60000); // espera un minuto
t=0;
}
}
~ 7~
Conclusiones
Se logr una introduccin a los conceptos bsicos para la escritura digital en
Arduinos, con herramientas como digitalWrite, instrucciones de retardo y
junto a las funciones if, else y or se escribieron programas de poca
complejidad que nos ayudaron a aprender a utilizar las herramientas de
programacin, las cuales dan la posibilidad de generar instrucciones ms
complejas y en consecuencias obtener salidas de diferentes funciones para
futuros proyectos con Arduino.
Bibliografa
Arduino.cc. (s.f.). Obtenido de http://playground.arduino.cc:
http://playground.arduino.cc/ArduinoNotebookTraduccion/Structure
~ 8~