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