kopia lustrzana https://github.com/pimoroni/pimoroni-pico
				
				
				
			
		
			
				
	
	
		
			54 wiersze
		
	
	
		
			1.7 KiB
		
	
	
	
		
			Python
		
	
	
			
		
		
	
	
			54 wiersze
		
	
	
		
			1.7 KiB
		
	
	
	
		
			Python
		
	
	
| import time
 | |
| import picokeypad as keypad
 | |
| 
 | |
| keypad.init()
 | |
| keypad.set_brightness(1.0)
 | |
| 
 | |
| lit = 0
 | |
| last_button_states = 0
 | |
| colour_index = 0
 | |
| 
 | |
| NUM_PADS = keypad.get_num_pads()
 | |
| while True:
 | |
|     button_states = keypad.get_button_states()
 | |
|     if last_button_states != button_states:
 | |
|         last_button_states = button_states
 | |
|         if button_states > 0:
 | |
|             if lit == 0xffff:
 | |
|                 # all buttons are already lit, reset the test
 | |
|                 lit = 0
 | |
|                 colour_index += 1
 | |
|                 if colour_index >= 6:
 | |
|                     colour_index = 0
 | |
|             else:
 | |
|                 button = 0
 | |
|                 for find in range(0, NUM_PADS):
 | |
|                     # check if this button is pressed and no other buttons are pressed
 | |
|                     if button_states & 0x01 > 0:
 | |
|                         if not (button_states & (~0x01)) > 0:
 | |
|                             lit = lit | (1 << button)
 | |
|                         break
 | |
|                     button_states >>= 1
 | |
|                     button += 1
 | |
| 
 | |
|     for i in range(0, NUM_PADS):
 | |
|         if (lit >> i) & 0x01:
 | |
|             if colour_index == 0:
 | |
|                 keypad.illuminate(i, 0x00, 0x20, 0x00)
 | |
|             elif colour_index == 1:
 | |
|                 keypad.illuminate(i, 0x20, 0x20, 0x00)
 | |
|             elif colour_index == 2:
 | |
|                 keypad.illuminate(i, 0x20, 0x00, 0x00)
 | |
|             elif colour_index == 3:
 | |
|                 keypad.illuminate(i, 0x20, 0x00, 0x20)
 | |
|             elif colour_index == 4:
 | |
|                 keypad.illuminate(i, 0x00, 0x00, 0x20)
 | |
|             elif colour_index == 5:
 | |
|                 keypad.illuminate(i, 0x00, 0x20, 0x20)
 | |
|         else:
 | |
|             keypad.illuminate(i, 0x05, 0x05, 0x05)
 | |
| 
 | |
|     keypad.update()
 | |
| 
 | |
|     time.sleep(0.1)
 |