23 lines
600 B
Python
23 lines
600 B
Python
# SPDX-License-Identifier: LGPL-3.0-or-later
|
|
# Copyright (C) 2020 Daniel Thompson
|
|
|
|
# Generic PWM capable vibrator
|
|
|
|
import time
|
|
from machine import PWM
|
|
|
|
class Vibrator(object):
|
|
def __init__(self, pin, active_low=False):
|
|
pin.value(active_low)
|
|
self.pin = pin
|
|
self.freq = PWM.FREQ_16MHZ
|
|
self.period = 16000
|
|
self.active_low = active_low
|
|
|
|
def pulse(self, duty=50, ms=100):
|
|
pwm = PWM(0, self.pin, freq=self.freq, duty=duty, period=self.period)
|
|
pwm.init()
|
|
time.sleep_ms(ms)
|
|
pwm.deinit()
|
|
self.pin.value(self.active_low)
|
|
|