158 lines
5.4 KiB
Python
158 lines
5.4 KiB
Python
#!/usr/bin/env python
|
|
#
|
|
# GrovePi Example for using the Grove 4 Digit Display ( http://www.seeedstudio.com/wiki/Grove_-_4-Digit_Display)
|
|
#
|
|
# The GrovePi connects the Raspberry Pi and Grove sensors. You can learn more about GrovePi here: http://www.dexterindustries.com/GrovePi
|
|
#
|
|
# Have a question about this example? Ask on the forums here: http://forum.dexterindustries.com/c/grovepi
|
|
#
|
|
'''
|
|
## License
|
|
|
|
The MIT License (MIT)
|
|
|
|
GrovePi for the Raspberry Pi: an open source platform for connecting Grove Sensors to the Raspberry Pi.
|
|
Copyright (C) 2017 Dexter Industries
|
|
|
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
of this software and associated documentation files (the "Software"), to deal
|
|
in the Software without restriction, including without limitation the rights
|
|
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
copies of the Software, and to permit persons to whom the Software is
|
|
furnished to do so, subject to the following conditions:
|
|
|
|
The above copyright notice and this permission notice shall be included in
|
|
all copies or substantial portions of the Software.
|
|
|
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
THE SOFTWARE.
|
|
'''
|
|
|
|
# NOTE: 4x red 7 segment display with colon and 8 luminance levels, but no decimal points
|
|
|
|
import time
|
|
import grovepi
|
|
|
|
# Connect the Grove 4 Digit Display to digital port D5
|
|
# CLK,DIO,VCC,GND
|
|
display = 5
|
|
grovepi.pinMode(display,"OUTPUT")
|
|
|
|
# If you have an analog sensor connect it to A0 so you can monitor it below
|
|
sensor = 0
|
|
grovepi.pinMode(sensor,"INPUT")
|
|
|
|
time.sleep(.5)
|
|
|
|
# 4 Digit Display methods
|
|
# grovepi.fourDigit_init(pin)
|
|
# grovepi.fourDigit_number(pin,value,leading_zero)
|
|
# grovepi.fourDigit_brightness(pin,brightness)
|
|
# grovepi.fourDigit_digit(pin,segment,value)
|
|
# grovepi.fourDigit_segment(pin,segment,leds)
|
|
# grovepi.fourDigit_score(pin,left,right)
|
|
# grovepi.fourDigit_monitor(pin,analog,duration)
|
|
# grovepi.fourDigit_on(pin)
|
|
# grovepi.fourDigit_off(pin)
|
|
|
|
while True:
|
|
try:
|
|
print ("Test 1) Initialise")
|
|
grovepi.fourDigit_init(display)
|
|
time.sleep(.5)
|
|
|
|
print ("Test 2) Set brightness")
|
|
for i in range(0,8):
|
|
grovepi.fourDigit_brightness(display,i)
|
|
time.sleep(.2)
|
|
time.sleep(.3)
|
|
|
|
# set to lowest brightness level
|
|
grovepi.fourDigit_brightness(display,0)
|
|
time.sleep(.5)
|
|
|
|
print ("Test 3) Set number without leading zeros")
|
|
leading_zero = 0
|
|
grovepi.fourDigit_number(display,1,leading_zero)
|
|
time.sleep(.5)
|
|
grovepi.fourDigit_number(display,12,leading_zero)
|
|
time.sleep(.5)
|
|
grovepi.fourDigit_number(display,123,leading_zero)
|
|
time.sleep(.5)
|
|
grovepi.fourDigit_number(display,1234,leading_zero)
|
|
time.sleep(.5)
|
|
|
|
print ("Test 4) Set number with leading zeros")
|
|
leading_zero = 1
|
|
grovepi.fourDigit_number(display,5,leading_zero)
|
|
time.sleep(.5)
|
|
grovepi.fourDigit_number(display,56,leading_zero)
|
|
time.sleep(.5)
|
|
grovepi.fourDigit_number(display,567,leading_zero)
|
|
time.sleep(.5)
|
|
grovepi.fourDigit_number(display,5678,leading_zero)
|
|
time.sleep(.5)
|
|
|
|
print ("Test 5) Set individual digit")
|
|
grovepi.fourDigit_digit(display,0,2)
|
|
grovepi.fourDigit_digit(display,1,6)
|
|
grovepi.fourDigit_digit(display,2,9)
|
|
grovepi.fourDigit_digit(display,3,15) # 15 = F
|
|
time.sleep(.5)
|
|
|
|
print ("Test 6) Set individual segment")
|
|
grovepi.fourDigit_segment(display,0,118) # 118 = H
|
|
grovepi.fourDigit_segment(display,1,121) # 121 = E
|
|
grovepi.fourDigit_segment(display,2,118) # 118 = H
|
|
grovepi.fourDigit_segment(display,3,121) # 121 = E
|
|
time.sleep(.5)
|
|
|
|
grovepi.fourDigit_segment(display,0,57) # 57 = C
|
|
grovepi.fourDigit_segment(display,1,63) # 63 = O
|
|
grovepi.fourDigit_segment(display,2,63) # 63 = O
|
|
grovepi.fourDigit_segment(display,3,56) # 56 = L
|
|
time.sleep(.5)
|
|
|
|
print ("Test 7) Set score")
|
|
grovepi.fourDigit_score(display,0,0)
|
|
time.sleep(.2)
|
|
grovepi.fourDigit_score(display,1,0)
|
|
time.sleep(.2)
|
|
grovepi.fourDigit_score(display,1,1)
|
|
time.sleep(.2)
|
|
grovepi.fourDigit_score(display,1,2)
|
|
time.sleep(.2)
|
|
grovepi.fourDigit_score(display,1,3)
|
|
time.sleep(.2)
|
|
grovepi.fourDigit_score(display,1,4)
|
|
time.sleep(.2)
|
|
grovepi.fourDigit_score(display,1,5)
|
|
time.sleep(.5)
|
|
|
|
print ("Test 8) Set time")
|
|
grovepi.fourDigit_score(display,12,59)
|
|
time.sleep(.5)
|
|
|
|
print ("Test 9) Monitor analog pin")
|
|
seconds = 10
|
|
grovepi.fourDigit_monitor(display,sensor,seconds)
|
|
time.sleep(.5)
|
|
|
|
print ("Test 10) Switch all on")
|
|
grovepi.fourDigit_on(display)
|
|
time.sleep(.5)
|
|
|
|
print ("Test 11) Switch all off")
|
|
grovepi.fourDigit_off(display)
|
|
time.sleep(.5)
|
|
|
|
except KeyboardInterrupt:
|
|
grovepi.fourDigit_off(display)
|
|
break
|
|
except IOError:
|
|
print ("Error")
|