Sensor de luz

Este programa dibuja un foco que ira cambiando de intensidad dependiendo de lo que marque el sensor de luz (fotoresistencia). 
Cuando marcara una medida baja, se entiende que hay mucha luz y el foco se ve apagado, pero cuando hay mucha medida hay oscuridad y el foco enciende.
Para la medida que registraba la fotoresistencia emplee una función, a la que la llame para hacer comparaciones de la medida, que era en el pin 4. 
Con unos if veía si la medida estaba en el rango de que había mucha luz, entonces si se cumplía, al color del fondo (que lo puse con colorama), le aumentaba al ultimo rango del RGB, para que se hiciera mas claro. Cuando la medida estaba muy alta, la verificaba con el if, y en otro while disminuía el ultimo rango del RGB, para que se marcara más el color.
Todo esto lo hace mientra este el pin en uso. Ya como detalle extra, agregue un fondo de una habitación.

  • Código:

#foco que cambia intensidad de luz con fotoresistencia
import RPi.GPIO as GPIO, time, os   
from turtle import *  

#min 320 medio 2485 max 7000
GPIO.setmode(GPIO.BCM)
GPIO.setwarnings(False)

t=Turtle()
d=Turtle()
c=Turtle()
br=Turtle()
screensize(800,150)
bgpic('fondo3.png')
t.hideturtle()
d.hideturtle()
c.hideturtle()
br.hideturtle()
colormode(255)

def RCtime (RCpin):
        reading = 0
        GPIO.setup(RCpin, GPIO.OUT)
        GPIO.output(RCpin, GPIO.LOW)
        time.sleep(0.1)

        GPIO.setup(RCpin, GPIO.IN)
        while (GPIO.input(RCpin) == GPIO.LOW):
                reading += 1
        return (reading)
#----------------------------Dibujo de foco
t.speed(8)
d.speed(8)
c.speed(15)
c.pensize(3)
t.pensize(3)
d.pensize(3)
c.pu()
br.pu()

c.lt(-280)
c.goto(100,200)
c.pd()
c.circle(100,250)
c.circle(100,-300)

t.pu()
d.pu()
t.rt(120)
d.rt(-120)
d.pu()
t.goto(51.52,130.76)
d.goto(-48.48,130.76)
t.pd()
d.pd()
t.circle(50,40)
t.lt(260)
d.circle(50,-40)
d.rt(-280)
t.goto(-42.54,97.08)
t.backward(70)
t.rt(90)
t.fd(100)
d.fd(20)
d.lt(90)
d.fd(100)
d.pensize(1)
d.goto(-5,150)
d.goto(3,200)
d.goto(12,150)
t.pu()
t.goto(-42.54,97.08)
d.goto(27.46,197.08)
d.pu()
d.goto(45.58,97.08)
t.pd()
t.fillcolor('#bcbcb7')
d.fillcolor('#bcbcb7')
d.pensize(3)
t.begin_fill()
t.backward(60)
t.rt(90)
t.fd(89)
t.goto(45.58,97.08)
t.end_fill()
d.pd()
d.backward(20)
d.lt(90)
d.fd(89)
d.rt(90)
d.backward(20)
d.rt(90)
d.fd(89)
br.goto(55,280)
br.shape("circle")
br.color('white')
br.lt(45)
br.shapesize(2,1,1)
br.stamp()


#-------------------------Intensidad del foco
#226 a 140 bajo
#140 a 99 medio
#99 a 0 alto
while True:                                    
a=RCtime(4) 
print(a)    
if(a<=600):
#~ print('l ',a)
i=140
while(a<=1000 and i<227):
bgcolor(255,255,i)
if(i==226):
bgcolor(255,255,i)
i=140
break
i+=1
if(a>=1200 and a<3000):
#~ print('m ',a)
j=140
while(a>1200 and a<4900 and j>99):
bgcolor(255,255,j)
if(j==99):
bgcolor(255,255,j)
j=98
break
j-=1
if(a>5000):
k=99
#~ print('h',a)
while(a>6000 and k>0):
bgcolor(255,255,k)
if(k==0):
bgcolor(255,255,k)
k=98
break
k-=1

exitonclick()
GPIO.cleanup()

  • Ejecución:


No hay comentarios:

Publicar un comentario

Ultima entrada ingresada

SISTEMA DE RIEGO AUTOMÁTICO CON MÚSICA

El objetivo era hacer un programa que pueda activar una bomba de agua en la noche, y que por las mañanas reproduzca música para las plantas....