import RPi.GPIO as GPIO import time from smbus import SMBus bus = SMBus(1) an0 = 0 leda = 20 in5 = 5 led_pow = 22 GPIO.setwarnings(False) GPIO.setmode(GPIO.BCM) GPIO.setup(leda,GPIO.OUT) GPIO.setup(led_pow,GPIO.OUT) GPIO.setup(in5,GPIO.IN, pull_up_down=GPIO.PUD_UP) GPIO.output(leda,GPIO.LOW) def read_ain(i): global bus bus.write_byte(0x48, i) bus.read_byte(0x48) return bus.read_byte(0x48) print "CTRL+C = STOP program" try: while True: an0 = read_ain(0) print "an0= "+str(an0) val = 160 - an0 # PULL UP on 3.3V ledv = val + 70 # > 150 turn LED ON (50%) bus.write_byte_data(0x48, 0x40, ledv) # analog LED if an0 < 146: # value depends on termistor (4.7K) GPIO.output(leda,GPIO.HIGH) else: GPIO.output(leda,GPIO.LOW) if GPIO.input(in5) == 0: GPIO.output(led_pow,GPIO.HIGH) else: GPIO.output(led_pow,GPIO.LOW) except KeyboardInterrupt: GPIO.cleanup() # must be executed before program stop