#!/usr/bin/env python import time import board from adafruit_simplemath import map_range import adafruit_pcf8591.pcf8591 as PCF from adafruit_pcf8591.analog_in import AnalogIn from pythonosc import udp_client sender = udp_client.SimpleUDPClient("127.0.0.1", 4560) sender.send_message("/trigger/prophet", [43, 110, 1, 0.7]) i2c = board.I2C() pcf = PCF.PCF8591(i2c) pcf_in_0 = AnalogIn(pcf, PCF.A0) pcf_in_1 = AnalogIn(pcf, PCF.A1) pcf_in_2 = AnalogIn(pcf, PCF.A2) pcf_in_3 = AnalogIn(pcf, PCF.A3) try: while True: osc_0_val = int(255 - (pcf_in_0.value / 256)) # convert values to useful ranges osc_1_val = int(255 - (pcf_in_1.value / 256)) osc_2_val = int(255 - (pcf_in_2.value / 256)) osc_3_val = int(255 - (pcf_in_3.value / 256)) osc_note_val = int( map_range(osc_0_val, 0, 255, 43, 58)
# This example shows using two TSL2491 light sensors attached to TCA9548A channels 0 and 1. # Use with other I2C sensors would be similar. import time import board import busio import adafruit_tca9548a import adafruit_pcf8591.pcf8591 as PCF from adafruit_pcf8591.analog_in import AnalogIn from adafruit_pcf8591.analog_out import AnalogOut # Create I2C bus as normal i2c = busio.I2C(board.SCL, board.SDA) # Create the TCA9548A object and give it the I2C bus tca = adafruit_tca9548a.TCA9548A(i2c) # For each sensor, create it using the TCA9548A channel instead of the I2C object pcf = PCF.PCF8591(tca[0]) # After initial setup, can just use sensors as normal. pcf_in_0 = AnalogIn(pcf, PCF.A0) print(pcf_in_0)