You are on page 1of 12

T8 Control de un LED con una fotocelda

Qu aprendo? Conocimientos previos

Escritura por PWM en un LED Seal anloga


Leer una entrada anloga por Funcin analogWrite() y
medio de una fotocelda analogRead()

Trabajar con una variable PWM


Ajustar una entrada anloga a Imprimir datos por consola
una salida anloga serial

Materiales

1 1

1
LED Verde
Arduino UNO

1 1 Protoboard

Fotocelda
Cable USB Tipo AB

1 5
1

Resistencia 10K Resistencia 1K Conectores MM

ESCANEA CON TU
SMARTPHONE
VIDEOTUTORIAL

BUSCA T16AB
AS
HD

VISITA LA OPCIN DE

90
P
L
A
N
O

E
S
Q
U
E
M
A

P
1 Cul es el valor 2 La letra A se 3 Este smbolo a R
de esta resistencia? guarda en una va- que corresponde E
riable de tipo: G
U
_______________ N
_____
_____K
T
A
_______________

91
/*
C ---------------------------------------------
Control de intensidad de un LED
---------------------------------------------
D Programa que enciende un LED de manera proporcional de
acuerdo a la cantidad de luz que incida en una
I fotocelda.
G Cosas de Mecatrnica y Tienda de Robtica
0 */
//------------------------------------
//Funcion principal
//------------------------------------
void setup() // Se ejecuta cada vez que el Arduino se inicia
D {
Serial.begin(9600); //Inicia comunicacin serial
E pinMode(9,OUTPUT); //Configurar el pin 9 como una salida de PWM
}
//------------------------------------
//Funcion ciclicla
//------------------------------------
P void loop() // Esta funcion se mantiene ejecutando
{ // cuando este energizado el Arduino
R
//Guardar en una variable el valor de la lectura anloga de la
O // fotocelda
int foto = analogRead(A0);
G
//Verifica el valor mximo y realizar una conversin
R int conversion = 780 - foto;
A //Condicional para establecer un valor absoluto
if ( conversion < 0)
M conversion = conversion * -1; //Multiplicar por -1 porque es negativo
A //Imprimir datos del valor de la lectura anloga de la fotocelda
Serial.print("Foto : ");
C Serial.print(foto);
Serial.println("");
I
//Imprimir datos del valor de la conversin
Serial.print("Conv : ");
Serial.print(conversion);
N Serial.println("");
//Escritura anloga de PWM en el LED de acuerdo a la conversin
analogWrite(9, conversion);
delay(100); //Retardo para datos en la consola
}
//Fin programa

T 1 Piensa por un momento en dnde puedes encontrar una fotocelda, stos son
I algunos ejemplos:
P
S
Calculadora Cmara digital
Cargar batera y apaga- Verifica si hay necesi-
do automtico dad de foto con flash

Medidor de luz Alumbrado pblico


Mide una cantidad de Enciende la luz cuando
luz y lo da en lux (lx) llega la oscuridad

92
EJERCICIOS

Te proponemos que crees un sensor para medir la luz que irradia un cuerpo
1
luminoso. Vamos a tener dos equipos el A y el B. En el equipo A va estar un
LED que varia su brillo de acuerdo a la posicin de un potencimetro (Ver
T6) y en el equipo B va estar comandado por una fotocelda. La idea es que
dobles el LED y la fotocelda a 90, los coloques lo ms junto posible y los
enfrentes, como si los dos se fueran a mirar de frente. Por consola serial debes ir mostran-
do la lectura de luz de la fotocelda, esta lectura debe ser en porcentaje de 0% a 100%. Un
ejemplo de la salida por consola: Concentracin de luz 57%

2 La hermosa biloga Mara Paula ;) es la encargada de cuidar


el gran Herbario de Santa Mnica CA donde se preservan
diversas plantas. Bilumetium, es un tipo de rosa que requie-
re a temprana edad iluminacin del tipo encen-
dido/apagado, cuando su sensor de luz es ma-
yor a 600 la luz se debe encender (LED1), cuan-
do la planta es adulta se requiere de una ilumi-
nacin proporcional, en la medida que se va oscureciendo la luz
se va encendiendo gradualmente (LED2). Mediante el pulsador S1
se activa el programa de planta joven y mediante el pulsador S2
se activa el programa correspondiente a la planta adulta.

LED 1

LED 2

Sensor luz
S1 S2

93
T9 Contador de pulsos

Qu aprendo? Conocimientos previos

Incrementar una variables Seal digital


Condicional If/else anidado Funcin digitalWrite() y
digitalRead()
Anti-rebote de un pulsador
Imprimir datos por consola
Leer una entrada digital y
escribir una salida digital a Declarar variables enteras
determinada condicin

Materiales

1
1
1
LED Amarillo

Arduino UNO 1
Protoboard

Pulsador
1

1 4

Cable USB Tipo AB


Resistencia 1K Conectores MM

ESCANEA CON TU
SMARTPHONE
VIDEOTUTORIAL

BUSCA T17AB
AS
HD

VISITA LA OPCIN DE

94
P
L
A
N
O

E
S
Q
U
E
M
A

P
1 Cul es el valor 2 Cules son los 3 Este smbolo a R
de esta resistencia? estados de una que corresponde E
variable booleana? G
U
a._____________ N
_____ _________
_____K b._____________ T
A

95
/*
C ---------------------------------------------
Contador de pulsos
---------------------------------------------
D Programa que muestra por pantalla (consola serial) el nmero
de veces que el pulsador ha sido presionado, se realiza un
I proceso que de acuerdo al nmero de pulsaciones se enciende
un LED,
G
Cosas de Mecatrnica y Tienda de Robtica
0
*/
//--------------------------------------------------
//Declara puertos de entradas y salidas y variables
D //--------------------------------------------------
int conta = 0; //Variable para guardar el conteo de los pulsos
E
//------------------------------------
//Funcion principal
//------------------------------------
void setup() // Se ejecuta cada vez que el Arduino se inicia
{
P Serial.begin(9600); //Inicia comunicacin serial
pinMode(2,INPUT); //Configura el pin 2 como una entrada, pulsador
R pinMode(13,OUTPUT); //Configura el pin 13 como una salida, LED
}
O
//------------------------------------
G //Funcion ciclicla
//------------------------------------
R void loop() // Esta funcion se mantiene ejecutando
{ // cuando este energizado el Arduino
A
// Si el pulsador esta oprimido
M if ( digitalRead(2) == HIGH )
{
A // Si el pulsador no esta oprimido, flanco de bajada
if ( digitalRead(2) == LOW )
C {
conta++; //Incrementa el contador
I Serial.println(conta); //Imprime el valor por consola
delay (100); // Retardo
}
}
N
// Si el valor del contador es 5
if (conta==5)
{
digitalWrite(13,HIGH); //Enciende el LED
}
// Si el valor del contador es 8
if (conta==8)
{
digitalWrite(13,LOW); // Apaga el LED
}
}
//Fin programa

T 1 Arduino tiene una gran comunidad de aprendizaje y para compartir diversas pre-
I guntas, en el foro oficial puedes encontrar diversos temas con gran cantidad de
P respuestas:
S

arduino.cc/forum

96
EJERCICIOS

1 Para la prxima fiesta el DJ Lui Lote te ha contratado para que


incorpores un show de luces realmente fantstico, para ello l tiene
a disposicin un botn 1 (B1) que puede oprimir muchas veces, el
nmero de veces que l pulse es el nmero de veces que van a
prender y apagar las luces a intervalo de 1s. Se utiliza un botn 2
(B2) para confirmar la rutina. Una vez acabe de hacer la rutina el
sistema debe quedar listo para darle muchos ms pulsos y ver otra
rutina distinta.

B1 B2

2 El DJ Lui Lote del ejercicio 1 regreso recargado con


nuevas ideas para su Show. Ahora cuenta con tres
distintas zonas de iluminacin para su pista de baile,
en su consola de DJ tiene un botn para dar un cier-
to nmero de pulsos y luego por la Consola Serial el
dice a que zona de iluminacin se le asignan esos
pulsos a intervalos de 1s. Las palabras que recibe la
Consola Serial son: zona1 zona2 zona3

zona1 zona2 zona3

Botn

97
T10 Interruptor magntico para una alarma visual

Qu aprendo? Conocimientos previos

Ciclo for Seal digital


Condicional If/else Funcin digitalWrite() y
digitalRead()
Estado de Reed switch
Parmetros de un for
Leer una entrada digital y
escribir una salida digital Intermitencia de un LED

Materiales

1
1
1
LED Verde

Arduino UNO 1
Protoboard

Reed switch
1

1 4

Cable USB Tipo AB


Resistencia 1K Conectores MM

ESCANEA CON TU
SMARTPHONE
VIDEOTUTORIAL

BUSCA T18AB
AS
HD

VISITA LA OPCIN DE

98
P
L
A
N
O

E
S
Q
U
E
M
A

P
1 Cul es el valor 2 Qu recibe la 3 Este smbolo a R
de esta resistencia? funcin delay()? que corresponde E
G
U
_______________ N
_____
_____K ____________ T
A

99
/*
C ---------------------------------------------
Interruptor magntico - Ladrn en casa
---------------------------------------------
D Programa que genera una alarma visual con un LED
a partir de un campo magntico generado a un
I reed switch.
G Cosas de Mecatrnica y Tienda de Robtica
0 */
//--------------------------------------------------
//Declara puertos de entradas y salidas y variables
//--------------------------------------------------
D
int contacto = 2; //Pin asignado al reed switch
E int led= 13; //Pin asignado al LED
//------------------------------------
//Funcion principal
//------------------------------------
void setup() // Se ejecuta cada vez que el Arduino se inicia
P {
pinMode(contacto,INPUT); //El reed switch como una entrada
R pinMode(led, OUTPUT); //El LED como una salida
O }
G //------------------------------------
//Funcion ciclicla
R //------------------------------------
void loop() // Esta funcion se mantiene ejecutando
A { // cuando este energizado el Arduino
M // Si el iman se acerca al reed switch
if (digitalRead(contacto)==LOW){
A
//Ciclo for que va de 0 a 50, el contador esta
C // en la variable a, se repite mientras a sea
// menor a 50
I for(int a=0; a<50; a++){
digitalWrite(led,HIGH); //Prende el LED
delay(50); //Tiempo
N digitalWrite(led,LOW); //Apaga el LED
delay(50); //Tiempo
}
// Si el iman esta lejos del reed switch
}else{
digitalWrite(led,LOW); //Mantiene apagado el LED
} //Fin del if

}
//Fin del programa

T 1 Estos dispositivos te permitirn desarrollar aplicaciones orientadas a la seguridad


I de un recinto, al estilo de una alarma antirrobos o sistemas de reconocimiento por
P parmetros biomtricos (huella, iris, voz o rostro)
S
Cmara a color Sensor de vibracin
Captura a una resolu- Detecta vibraciones en
cin VGA superficies horizontales

PIR Micrfono MEMS


Sensor para detectar Soporta un alto rango
movimiento de ruido

100
EJERCICIOS

1 Una casa requiere un sistema de alarma, para ello en este ejercicio te


proponemos que emulemos una. Cuando todos salen de la casa la
ltima persona en salir se encarga de activar la alarma mediante un
nmero de 4 dgitos, en ese momento el sistema comienza a recibir
informacin de los detectores magnticos (reed switch) ubicados en
cada ventana y en cada puerta. La alarma se debe disparar cuando un
campo magntico altere el estado del reed switch, cuando la alarma
se activa se comienza emitir un sonido y adems se genera una alarma visual, la nica
forma de desactivar la alarma es mediante un cdigo numrico de 4 dgitos que debe ser
diferente al cdigo de activacin, los pasos se describen a continuacin:

A Por consola serial se recibe un nmero entero de 4 dgitos, si este nmero es igual al
guardado por el sistema el sistema de alarma se activa, para ello se debe mostrar por
consola Alarma activada
B Si el Reed switch presencia algn campo magntico, la consola serial debe mostrar
Presencia de extrao, sistema disparado
C Como la alarma se disparo se debe encender el buzzer para generar soni-
do (se maneja como una salida digital) y adems el LED amarillo y el rojo se
debe alternar encendido/apagado y emular los movimientos de una sirena de
bomberos a intervalos de 1s.
D Si la alarma se quiere desactivar se debe ingresar un cdigo numrico
entero de 4 dgitos de ser correcto mostrar por consola serial Alarma desactivada de lo
contrario el paso C se debe repetir mientras no se ingrese el cdigo correcto.

Sirena
Buzzer

Reed

MI CUADERNO DE APUNTES

101

You might also like