Vous êtes sur la page 1sur 8

Universidad de Santiago de Chile

Facultad de Ingeniera
Departamento de Ingeniera Elctrica

Escritura de
Informacin
digital.
Profesor:

Manuel Vega Prez

Integrantes:

Juan Pablo Astudillo Pinto


Felipe Ayala
Emilio Baeza Contreras
Manuel Bravo Morales
Francisco Cares
Cristian Adn Contreras
Fecha entrega:

~ 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.

Escritura de Informacin Digital


Escribe el valor HIGH o un LOW de un pin digital usando la funcion
digitalWrite().

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()

Pausa el programa por un tiempo determinado en microsegundos.

Sintaxis

delayMicroseconds(us)

Parmetros

us: Numero de microsegundos para pausar (unsigned int [entero sin signo])

Retorno
Nada

Ejercicio 1: Encender y Apagar un LED conectado al


pin 13

Hardware
-

placa arduino.
LED
Resistencia de 220 OHM.

Ilustracin 1: Placa arduino, led y resistencia.

~ 4~

Cdigo
int ledPin = 13;

// Led conectado al pin 13

void setup()
{
pinMode(ledPin, OUTPUT);
}

// setea el pin 13 como salida

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)
}

Este cdigo enciende y apaga un led conectado al pin 13 con intervalos de 1


segundo.

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:

Ilustracin 2: Diagrama de flujo encender/apagar LED.

~ 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:

En este ejemplo al hacerlo correr si la condicin que esta entre parntesis se


cumple, se ejecutara la sentencia que est dentro de los corchetes en caso
contrario, no se ejecutara.
Ahora si necesitamos que cuando no se cumpla la condicin que esta entre
parntesis el programa haga alguna otra sentencia, ocupamos el comando
else
Ejemplo:

En este caso si cumple la condicin se ejecutara el programa 1, en caso que


no cumpla ejecutara el programa 2
Las condiciones pueden ser:

<= (Menor o igual)


>= (Mayor o igual)
== (Igual a)

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:

Primero se define el contador y se inicializa (desde dnde quiero


contar), luego se propone una condicin para este (hasta dnde quiero
contar) y una iteracin (como quiero contar).

~ 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~

Vous aimerez peut-être aussi