| 123456789101112131415161718192021222324252627282930 |
- import asyncio
- import pigpio
- async def toggle_pin(pin: int):
- """Toggle a GPIO pin indefinitely."""
- pi = pigpio.pi()
- if not pi.connected:
- raise RuntimeError(f"Failed to connect to pigpio daemon for pin {pin}")
-
- state = 0
- try:
- while True:
- state = 1 - state # Toggle state between 0 and 1
- pi.write(pin, state)
- await asyncio.sleep(1) # Wait 1 second between toggles
- finally:
- pi.write(pin, 0) # Ensure the pin is turned off
- pi.stop()
- async def main():
- """Run multiple toggle_pin tasks in parallel."""
- pins = [17, 27, 22] # Replace with the GPIO pins you want to toggle
- tasks = [toggle_pin(pin) for pin in pins]
- await asyncio.gather(*tasks)
- if __name__ == "__main__":
- try:
- asyncio.run(main())
- except KeyboardInterrupt:
- print("Exiting...")
|