Blinking
LEDs
The
simplest thing to start with is to control LEDs connected to any of
the terminals. Connect an LED from PB0 to Ground with 5k resistor in
series, for current limiting. The LED should blink when you run the
Python program blink.py.
setReg(DDRD,255)
while 1:
setReg(PORTD, 255)
time.sleep(1)
setReg(PORTD, 0)
time.sleep(1)
Let us examine the code line by line:
from kuttyPy import *
This line imports the kuttyPy module ( kuttyPy.py should be in your
working directory). This module gives you functions that can
read/write the Registers of the micro-controller connected to the USB
port. This line also searches for the hardware on the available
USB ports. If nothing found, the program is terminated.
setReg(DDRB,255)
DDRB is an 8bit Register that decides the direction of the terminals
PB0 -- PB7. If a bit is 1, the corresponding terminal becomes an
output. If it is zero, the terminal becomes an input. DDR stands for
Data Direction Register. The last letter represents the port, for
example DDRA decides the direction of port A.
time.sleep(1) , for a one second wait
setReg(PORTB,255)
PORTB is an 8bit Register where you set the output level of the
terminals PB0 -- PB7. If a bit is 1, the voltage at the corresponding
terminal becomes HIGH, else it becomes LOW. Here we are making all the
terminals HIGH, means LED conected to any of them will glow. In
a similar manner you can use PORTA, PORTC and PORTD.
setReg(PORTB, 0)
As explained above, PB0 to PB7 will be set to LOW.
Running this loop makes the LEDs connected to any of the terminals PB0
to PB7 will blink. The frequency will be decided by the delay
specified in time.sleep()