mirror of
				https://github.com/KevinMidboe/python-gpiozero.git
				synced 2025-10-29 17:50:37 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			61 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			61 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| from RPi import GPIO
 | |
| 
 | |
| from .devices import GPIODeviceError, GPIODevice, GPIOThread
 | |
| 
 | |
| 
 | |
| class OutputDeviceError(GPIODeviceError):
 | |
|     pass
 | |
| 
 | |
| 
 | |
| class OutputDevice(GPIODevice):
 | |
|     def __init__(self, pin=None):
 | |
|         super(OutputDevice, self).__init__(pin)
 | |
|         GPIO.setup(pin, GPIO.OUT)
 | |
| 
 | |
|     def on(self):
 | |
|         GPIO.output(self.pin, True)
 | |
| 
 | |
|     def off(self):
 | |
|         GPIO.output(self.pin, False)
 | |
| 
 | |
| 
 | |
| class LED(OutputDevice):
 | |
|     def __init__(self, pin=None):
 | |
|         super(LED, self).__init__(pin)
 | |
|         self._blink_thread = None
 | |
| 
 | |
|     def blink(self, on_time=1, off_time=1):
 | |
|         self._stop_blink()
 | |
|         self._blink_thread = GPIOThread(target=self._blink_led, args=(on_time, off_time))
 | |
|         self._blink_thread.start()
 | |
| 
 | |
|     def _stop_blink(self):
 | |
|         if self._blink_thread:
 | |
|             self._blink_thread.stop()
 | |
|             self._blink_thread = None
 | |
| 
 | |
|     def _blink_led(self, on_time, off_time):
 | |
|         while True:
 | |
|             super(LED, self).on()
 | |
|             if self._blink_thread.stopping.wait(on_time):
 | |
|                 break
 | |
|             super(LED, self).off()
 | |
|             if self._blink_thread.stopping.wait(off_time):
 | |
|                 break
 | |
| 
 | |
|     def on(self):
 | |
|         self._stop_blink()
 | |
|         super(LED, self).on()
 | |
| 
 | |
|     def off(self):
 | |
|         self._stop_blink()
 | |
|         super(LED, self).off()
 | |
| 
 | |
| 
 | |
| class Buzzer(OutputDevice):
 | |
|     pass
 | |
| 
 | |
| 
 | |
| class Motor(OutputDevice):
 | |
|     pass
 |