import smbus
import time

I2C_ADDR_1 = 0x38
I2C_ADDR_2 = 0x39
I2C_ADDR_3 = 0x3A

LED_ON = 0x00
LED_OFF = 0xFF

LED_1_OFF = 0xFF
LED_1_G1  = 0xFE
LED_1_G2  = 0xFC
LED_1_G3  = 0xF8
LED_1_Y1  = 0xF0
LED_1_Y2  = 0xE0
LED_1_Y3  = 0xC0
LED_1_R1  = 0x80
LED_1_R2  = 0x00
LED_1_ON  = 0x00

LED_2_OFF = 0xFF
LED_2_G1  = 0xFE
LED_2_G2  = 0xFC
LED_2_G3  = 0xF8
LED_2_Y1  = 0xF0
LED_2_Y2  = 0xE0
LED_2_Y3  = 0xC0
LED_2_R1  = 0x80
LED_2_R2  = 0x00
LED_2_ON  = 0x00

LED_3_OFF = 0xFF
LED_3_R1B = 0xFE
LED_3_R2B = 0xFD
LED_3_G1B = 0xFB
LED_3_Y1B = 0xF7
LED_3_R1T = 0xEF
LED_3_R2T = 0xDF
LED_3_G1T = 0xBF
LED_3_Y1T = 0x7F

LED_1_DATA = (0x7F, 0xBF, 0xDF, 0xEF, 0xF7, 0xFB, 0xFD, 0xFE) 
 
bus = smbus.SMBus(1)

def LED3( value ):
        if value > 99:
                data = 0b00000000         
        elif value > 87:
                data = 0b10000000                
        elif value > 75:
                data = 0b11000000
        elif value > 62:
                data = 0b11100000
        elif value > 50:
                data = 0b11110000
        elif value > 37:
                data = 0b11111000
        elif value > 25:
                data = 0b11111100
        elif value > 12:
                data = 0b11111110
        else:
                data = 0b11111111
                
	bus.write_byte( I2C_ADDR_3, data)
	
def LED2( value ):
        if value > 99:
                data = 0b00000000         
        elif value > 87:
                data = 0b10000000                
        elif value > 75:
                data = 0b11000000
        elif value > 62:
                data = 0b11100000
        elif value > 50:
                data = 0b11110000
        elif value > 37:
                data = 0b11111000
        elif value > 25:
                data = 0b11111100
        elif value > 12:
                data = 0b11111110
        else:
                data = 0b11111111
      
	bus.write_byte( I2C_ADDR_2, data)

def LED1( value ):
        if value > 99:
                data = 0b00000000         
        elif value > 87:
                data = 0b10000000                
        elif value > 75:
                data = 0b11000000
        elif value > 62:
                data = 0b11100000
        elif value > 50:
                data = 0b11110000
        elif value > 37:
                data = 0b11111000
        elif value > 25:
                data = 0b11111100
        elif value > 12:
                data = 0b11111110
        else:
                data = 0b11111111
                
	bus.write_byte( I2C_ADDR_1, data)

for value in range(0, 101):
        LED1( value )
        LED2( value )
        LED3( value )
        time.sleep(0.1)


        
