Skip to content

Commit 3fb9871

Browse files
committed
added i2c-button-blink
1 parent 4fcfccf commit 3fb9871

3 files changed

Lines changed: 39 additions & 3 deletions

File tree

examples/button-blink

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,5 +11,5 @@ with button, led:
1111
print("ready")
1212

1313
for v in cycle([1,0]):
14-
led.value = v * button.value
14+
led.value = v and button.value
1515
sleep(0.5)

examples/i2c-blink

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,8 @@ import quick2wire.i2c as i2c
77
from quick2wire.parts.mcp23017 import MCP23017
88
from quick2wire.parts.mcp23x17 import Out
99

10-
# usage: i2c-blank [pin_number]
11-
# pin_number defaults to 1
10+
# usage: i2c-blink [led_pin]
11+
# led_pin defaults to 1
1212
def the_pin_number():
1313
if len(sys.argv) < 2:
1414
return 1

examples/i2c-button-blink

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
#!/usr/bin/env python3
2+
import sys
3+
from contextlib import closing
4+
from itertools import cycle
5+
from time import sleep
6+
import quick2wire.i2c as i2c
7+
from quick2wire.parts.mcp23017 import MCP23017
8+
from quick2wire.parts.mcp23x17 import In, Out
9+
10+
# usage: i2c-button-blink [led_pin button_pin]
11+
# led_number defaults to 0
12+
# button_pin defaults to 3
13+
def the_pin_numbers():
14+
if len(sys.argv) < 3:
15+
return (0, 3)
16+
return (int(sys.argv[1]), int(sys.argv[3]))
17+
18+
i2c_address = 0x20
19+
pin_bank = 1
20+
led_pin, button_pin = the_pin_numbers()
21+
22+
with closing(i2c.I2CMaster()) as bus:
23+
chip = MCP23017(bus, 0x20)
24+
chip.reset()
25+
led = chip[pin_bank][led_pin]
26+
led.direction = Out
27+
button = chip[pin_bank][button_pin]
28+
button.direction = In
29+
30+
try:
31+
while True:
32+
led.value = (not led.value) and button_pin.value
33+
sleep(0.5)
34+
finally:
35+
chip.reset()
36+

0 commit comments

Comments
 (0)