Timer
The timer will give off audible alarm when the time is up.
Building Instructions
Sample Wiring Diagram
Sample Program
KittenBlock Sample Program
[Download Sample Program(Right Click->Save As)](https://github.com/kittenbothk/kittenbothk/raw/master/Kits/future_inventor/Programming Case/sb3/timer.sb3)
Python Sample Program
#/bin/python
from time import sleep
from future import *
from sugar import *
import robotbit
angle = 0
end_time = 0
z = 0
def countdown():
global angle,end_time,z
if sensor.btnValue('a'):
LED("P1").state('ON')
LED("P2").state('OFF')
while not (end_time == 0):
sleep(1)
end_time += -1
angle += 1
screen.clear()
screen.fill((0, 0, 0))
screen.textCh(str(end_time)+str("min"),5,10,2,(0, 255, 0))
screen.refresh()
robot.geekServo2kg(1, angle * 12)
if end_time == 0:
LED("P1").state('OFF')
LED("P2").state('ON')
while not sensor.btnValue('b'):
buzzer.melody(CORRECT)
sleep(0.2)
LED("P1").state('OFF')
LED("P2").state('OFF')
def valmap(x, in_min, in_max, out_min, out_max):
return int((x-in_min) * (out_max-out_min) / (in_max-in_min) + out_min)
robot = robotbit.RobotBit()
screen.sync = 0
LED("P1").state('OFF')
LED("P2").state('OFF')
while True:
angle = (round(valmap(Angle("P0").value(), 0, 4095, 180, 0) / 12))
end_time = (round(valmap(Angle("P0").value(), 0, 4095, 0, 15)))
robot.geekServo2kg(1, angle * 12)
screen.fill((0, 0, 0))
screen.textCh(str(end_time)+str("min"),5,10,2,(255, 0, 0))
screen.refresh()
countdown()
[Download Sample Program(Right Click->Save As)](https://github.com/kittenbothk/kittenbothk/raw/master/Kits/future_inventor/Programming Case/py/timer.py)
Program Instructions
Turn the potentiometer to set the time, press A to start the timer. Press B to stop the timer when the time is up.