Vous êtes sur la page 1sur 19

Lic. Gerardo Espinoza Ramrez Instituto Tecnolgico Superior de Ciudad Serdn.

3.1.1. Lectura analgica


Sentencia analogRead()

valor = analogRead(Pin);

Ejemplo 3.1. Lectura de un potencimetro.
En este ejemplo se utiliza un pin analgico como
entrada para leer los valores de un potencimetro,
una vez que la lectura del potencimetro alcanza un
valor de 500 entonces se enciende un diodo LED.
//[[[DECLARACIN DE VARIABLES]]]

int valorPot; // Se declara la variable 'valorPot' la cual guardar
el valor ledo del potencimetro.
int pinLed=5; // Se declara la variable 'pinLed' que almacena el
valor 5 del pin de la tarjeta Arduino.

//[[[DECLARACIN DE VARIABLES]]]

//[[[CONFIGURACIN (SE EJECUTA SLO UNA VEZ)]]]
void setup()
{
pinMode(pinLed, OUTPUT); // Se establece a 'pinLed' como una
salida digital.
}
//[[[CONFIGURACIN (SE EJECUTA SLO UNA VEZ)]]]


//[[[BUCLE (CICLO REPETITIVO) DE FUNCIONAMIENTO]]]
void loop()
{
valorPot=analogRead(A0); // Se lee el valor analgico del pin 'A0'
donde se encuentra conectado el potencimetro, una vez ledo el valor
se guarda en
// la variable 'valorPot'.
if(valorPot>=500) // Condicin: SI la variable 'valorPot' es
MAYOR O IGUAL a 500:
{
digitalWrite(pinLed, HIGH); // Escribir un 'ALTO' en el 'pinLed'.
}
else // En otro caso.
{
digitalWrite(pinLed, LOW); // Escribir un 'BAJO' en el 'pinLed'.
}
}//[[[BUCLE (CICLO REPETITIVO) DE FUNCIONAMIENTO]]]

3.2 Uso del PWM.
Sentencia analogWrite()

analogWrite(pin, valor);
3.2.1 Escritura analgica
Ejemplo 3.2. Encendido de un
diodo LED por PWM.
En este ejemplo se utiliza la modulacin por ancho de
pulso para encender un diodo LED de manera
gradual, esto se hace incrementando una variable de
uno en uno iniciando desde cero, una vez que se llega
al valor de 255 el mismo diodo LED se debe apagar, se
vuelve a iniciar el proceso anterior una vez que se
reinicia la tarjeta Arduino, mientras no se haga esto el
diodo LED permanece apagado.
void setup()
{ pinMode(pinLed, OUTPUT); // Se establece a 'pinLed' como una salida digital.
}
void loop()
{
if(brillo <= 255) // Condicin: SI la variable 'brillo' es MENOR O IGUAL a
255:
{ analogWrite(pinLed, brillo); // Se escribe el valor actual de la variable 'brillo'
en el 'pinLed' (pin 5).
delay(30); // Se hace una pequea pausa para evitar que el
aumento se vaya de forma corrida.
brillo = brillo + 1; // Se incrementa en uno a la variable 'brillo' para que de
forma gradual se incremente la intensidad de luz que emite el diodo LED.
}
else // En otro caso.
{ // Si la variable brillo ha alcanzado el valor mximo que es 255 se hace lo
siguiente:
digitalWrite(pinLed, LOW); // Se escribe en el 'pinLed' un 'BAJO' para apagar
el diodo LED.
}
}

3.2.2. Ciclos repetitivos.
Ciclo For.

for(inicializacin; condicin; expresin)
{
Instrucciones;
}

3.2.2. Ciclos repetitivos
for (i=0; i<20; i++)
{
digitalWrite(13, HIGH);
delay(500);
digitalWrite(13, LOW);
delay(500);
}

Ejemplo 3.3. Encendido de un
diodo LED utilizando ciclo for.
En este ejemplo se utiliza la modulacin por ancho
de pulso para encender un diodo LED de manera
gradual esto se hace utilizando el ciclo repetitivo for
iniciando en el valor cero hasta un valor de 255,
incrementando en intervalos de 3.
int brillo; // Se declara la variable 'brillo'.
int pinLed=5; // Se declara la variable 'pinLed' que almacena el valor 5 del pin de la
tarjeta Arduino.

void setup()
{
pinMode(pinLed, OUTPUT); // Se establece a 'pinLed' como una salida digital.
}
void loop()
{
for(brillo=0;brillo<=255;brillo=brillo+3) // Ciclo: INICIA con la variable 'brillo' IGUAL
a CERO;
{ // SE REPITE mientras 'brillo' sea MENOR O IGUAL a 255;
SE INCREMENTA en 3 unidades en cada repeticin.

analogWrite(pinLed, brillo); // Se escribe el valor actual de la variable 'brillo' en el
'pinLed'.
delay(30); // Se hace una pequea pausa para evitar que el aumento se
vaya de forma corrida.
}
}
Practica 3.1. Diodo LED incremento y
decremento con PWM.
Se va a aumentar y disminuir la luminosidad de un
diodo led usando PWM. Para ello se conecta un
diodo LED al pin 5, implementando un ciclo for que
va desde 0 hasta 255 se debe hacer incrementar la
intensidad de luz del diodo LED, una vez terminado
este ciclo se debe iniciar otro pero con los
parmetros de 255 a 0 para decrementar la
intensidad de luz del mismo diodo LED.
int brillo; // Se declara la variable 'brillo'.
int pinLed=5; // Se declara la variable 'pinLed' que almacena el valor 5 del pin de la
tarjeta Arduino.

void setup()
{
pinMode(pinLed, OUTPUT); // Se establece a 'pinLed' como una salida digital.
}

void loop()
{
for(brillo=0;brillo<=255;brillo++) // Ciclo: INICIA con la variable 'brillo' IGUAL a CERO;
{ // SE REPITE mientras 'brillo' sea MENOR O IGUAL a 255; SE INCREMENTA en una unidad en
cada repeticin.
analogWrite(pinLed, brillo); // Se escribe el valor actual de la variable 'brillo' en el 'pinLed'.
delay(30); // Se hace una pequea pausa.
}
for(brillo=255;brillo>=0;brillo--) // Ciclo: INICIA con la variable 'brillo' IGUAL a 255;
{ // SE REPITE mientras 'brillo' sea MAYOR O IGUAL a CERO; SE DECREMENTA en una unidad
en cada repeticin.
analogWrite(pinLed, brillo); // Se escribe el valor actual de la variable 'brillo' en el 'pinLed'.
delay(30); // Se hace una pequea pausa.
}
}
Practica 3.2. Luz de LED en funcin de la
luz en ambiente.
Se leer el valor analgico de una FOTORESISTENCIA.
Cuando la lectura del valor de la fotoresistencia se
encuentre entre 0 y 512 el LED debe estar apagado,
si el valor ledo se encuentra entre valores 512 y
1024 el LED debe encender.
int pinLed=5; // Se declara la variable 'pinLed' que almacena el valor 5 del pin de la
tarjeta.
int estadoFTR; // Se declara la variable 'estadoFTR' donde se guardar el valor entero
analgico ledo desde la FOTORESISTENCIA.
void setup()
{
pinMode(pinLed, OUTPUT); // Se establece a 'pinLed' como una salida digital.
}
void loop()
{
estadoFTR=analogRead(A0); // Se lee y guarda el valor analgico proporcionado
por la FOTORESISTENCIA.
if(estadoFTR<512) // Condicin: SI la variable 'estadoFTR' es MENOR a 512:
{
digitalWrite(pinLed, LOW); // Se escribe un 'BAJO' en 'pinLed'.
}
else // En otro caso.
{ // Entonces la variable 'estadoBoton' es mayor a 512, es por eso
que accede a esta seccin.
digitalWrite(pinLed, HIGH); // Se escribe un 'ALTO' en 'pinLed'.
}
}
Practica 3.3. Medidor de luz ambiente.
Se utiliza una fotorresistencia para captar la luz en el
ambiente. Habr tres niveles de intensidad de luz
medibles, BAJO, MEDIO, ALTO. Si el valor analgico
ledo de la fotorresistencia se encuentra entre 0 y
300 entonces el LED enciende a una intensidad de
80. Si se encuentra entre 300 y 600 enciende a 160, y
si el valor ledo es mayor a 600 entonces el LED
enciende a 255. Esto se hace utilizando la propiedad
PWM sobre el diodo LED.
Proyecto 3. Incrementar luminosidad de
LED con un botn.
Se tiene que incrementar la luminosidad de un diodo
LED conectado al pin 5 a travs de la pulzacin de un
botn. El botn estar conectado al pin 2. Con la
pulsacin del botn aumenta la luminosidad del LED
hasta llegar a su valor mximo (255). Una vez que se
llega al valor mximo el sistema se reinicia, el LED se
apaga y vuelve a empezar.

Vous aimerez peut-être aussi