Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Abstract
In this practice the intensity is measured in a cone of light, with the help of Arduino
and an LDR photoresistance (GL55 family or similar), using the analog inputs of
Arduino.
1 Introducción
Las fotorresistencias, también conocidas como resistencias dependientes de la luz (LDR), son
dispositivos sensibles a la luz que se utilizan con mayor frecuencia para indicar la presencia
o ausencia de luz, o para medir la intensidad de la luz.
2 Montaje experimental
Se monta un láser sobre el brazo del servomotor y se ubica una pantalla que tiene la fotore-
sistencia que marcara la diferencia de intencidades.Para lograr que llegue a la fotoresistencia
como un cono, se le quita la lente que coloma la luz en el láser, y asi se dispersa formando
un cono que distribuye la intencidad en un area. En la fig. 1 se muestra la fotoresistencia
aislada de la lus ambiente y el láser sin lente unido al servomotor.
1
Figure 1: Iz:montaje para medir la intensidad del cono de luz.De:Láser unido al servomotor
El siguiente código lee el dato de un sensor por el puerto A0, almacena los valores en un
2
arreglo y luego envı́a el arreglo por serial:
1 const int a n a l o g I n P i n = A0 ; // p i n a n l o g o de l e c t u r a
2 int s e n s o r V a l = 0 ; // i n i c i a l i z a c i n v a r i a b l e l e c t u r a s e n s o r
3 int d a t o s [ 2 0 ] ; // a r r e g l o con v a l o r e s l e d o s . Se d e f i n e t a m a o
4 int maxi = 1 0 ; // en un f u t u r o para c o n t r o l a r e l t a m a o d e l a r r e g l o
5
6 void s e t u p ( ) {
7 // p u t your s e t u p code here , t o run once :
8 S e r i a l . b e g i n ( 9 6 0 0 ) ; // I n i c i a l i z a e l s e r i a l
9 }
10
11 void l o o p ( ) {
12 // p u t your main code here , t o run r e p e a t e d l y :
13
14 // l e e e l v a l o r por A0 y l o almacena en d a t o s
15 f o r ( int c o n t = 0 ; c o n t < maxi ; c o n t++){
16 s e n s o r V a l = analogRead ( a n a l o g I n P i n ) ; // l e e d e l p i n
17 d a t o s [ c o n t ] = s e n s o r V a l ; // almacena en a r r e g l o
18 delay (200) ;
19 }
20 // E n v o d e l a r r e g l o por e l s e r i a l
21 f o r ( int i = 0 ; i < maxi ; i ++) { S e r i a l . p r i n t ( d a t o s [ i ] ) ;
22 Serial . print (” ,”) ;}
23 Serial . println () ;
24
25 delay (2000) ;
26 }
El siguiente códogo lee un arreglo del serial, construye una lista con los valores enteros del
arreglo y lo imprime. Al estar embebido en un for loop lo hace varias veces. Al final grafica
una curva por cada lista enteros.
1 import s e r i a l # comunicacion s e r i a l
2 import numpy a s np # f u n c i o n e s matematicas b a s i c a s
3 import pylab a s p l t # g r a f i c a s
4
5 # Se i n i c i a l a comunicacion s e r i a l
6 s e r = s e r i a l . S e r i a l ( p o r t = ’ / dev / cu . usbmodemFA131 ’ , b a u d r a t e = 9 6 0 0 )
7
8 p l t . f i g u r e ( ) # Se i n i c i a l i z a l a g r a f i c a
9 f o r i i in range ( 5 ) : #e s t e f o r c o r r e de 0 a 4
10 data = s t r ( s e r . r e a d l i n e ( ) ) # l e e e l a r r e g l o en e l s e r i a l y l o v u e l v e
string
11 print ( data ) # imprime t a l como l l e g a por e l s e r i a l
12
13 # usa d e c o d i f i c a d o r de l i s t a s + i s d i g i t ( ) + s p l i t ( )
14 # toma l o s e n t e r o s de l a l i s t a
15 r e s = [ int ( i ) f o r i in data . s p l i t ( ” , ” ) i f i . i s d i g i t ( ) ]
16 print ( r e s ) # imprime l a l i s t a de e n t e r o s
17 p l t . p l o t ( r e s ) # g r a f i c a l a l i s t a de e n t e r o s
18 p l t . show ( ) # p r e s e n t a l a s g r a f i c a s
3
3 Análisis y conclusiones
Las graficas que se muestran en las fig.3,fig.4,fig.5,fig.6 y fig.7, son el resultado del experi-
mento.En cada una de ellas se muestra el mismo experimento (el experimento se repitio seis
veces).La curva de luz, representa la variacion de intencidad medida por la fotoresistencia
con forme el servomotor se movia
4
Figure 5: Curva de luz
5
Figure 7: Curva de luz
Evidentemente en las gráficas que obtuvimos no se observa dicha distribución y los errores
reportados asociados a este experimento estriban en una imperfección en el servomotor ya
que en cada paso este presentaba una oscilación bastante notable antes de estabilizarse en
un punto en cada paso. Esto se evidencia en los multiples picos irregulares que se observan
en la mayorı́a de gráficos arrojados.
Del análisis de la gráfica se interpreta la pendiente como el mı́nimo avance que el servomotor
realiza cuando es controlado por la placa arduino cuyo valor es 0, 02 rad y el error en esa me-
dida se interpreta como la resolución que podemos alcanzar que en este caso es de 4, 8e−4 rad.