-
Notifications
You must be signed in to change notification settings - Fork 776
/
Copy pathcode.py
57 lines (46 loc) · 1.54 KB
/
code.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
# SPDX-FileCopyrightText: 2018 Kattni Rembor for Adafruit Industries
#
# SPDX-License-Identifier: MIT
import math
import time
import adafruit_character_lcd
import board
import digitalio
import neopixel
from analogio import AnalogIn
lcd_rs = digitalio.DigitalInOut(board.D5)
lcd_en = digitalio.DigitalInOut(board.D6)
lcd_d7 = digitalio.DigitalInOut(board.D12)
lcd_d6 = digitalio.DigitalInOut(board.D11)
lcd_d5 = digitalio.DigitalInOut(board.D10)
lcd_d4 = digitalio.DigitalInOut(board.D9)
lcd_columns = 16
lcd_rows = 2
lcd = adafruit_character_lcd.Character_LCD(
lcd_rs, lcd_en, lcd_d4, lcd_d5, lcd_d6, lcd_d7, lcd_columns, lcd_rows
)
potR = AnalogIn(board.A0) # pot pin for R val
potG = AnalogIn(board.A1) # pot pin for G val
potB = AnalogIn(board.A2) # pot pin for B val
pixpin = board.D13 # neopixel pin
numpix = 8
strip = neopixel.NeoPixel(pixpin, numpix, brightness=0.1)
def val(pin):
# divides voltage (65535) to get a value between 0 and 255
return pin.value / 257
while True:
strip.fill((int(val(potR)), int(val(potG)), int(val(potB))))
# int converts float val to an integer
lcd.set_cursor(3, 0)
# text at the top of the screen
lcd.message('R + G + B =')
lcd.set_cursor(2, 1)
# str converts float val to a string, trunc removes decimal values
lcd.message(str(math.trunc(val(potR))))
lcd.set_cursor(6, 1)
lcd.message(str(math.trunc(val(potG))))
lcd.set_cursor(10, 1)
lcd.message(str(math.trunc(val(potB))))
time.sleep(0.5)
# refreshes screen to send updated values from pots
lcd.clear()