Python machine.Pin.IN Examples
The following are 30
code examples of machine.Pin.IN().
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example.
You may also want to check out all available functions/classes of the module
machine.Pin
, or try the search function
.
Example #1
Source File: trigger.py From ulnoiot-upy with MIT License | 10 votes |
def __init__(self, name, pin, rising=False, falling=False, pullup=True, on_change=None, report_change=True): if pullup: pin.init(Pin.IN, Pin.PULL_UP) else: pin.init(Pin.IN, Pin.OPEN_DRAIN) if rising and falling: trigger = Pin.IRQ_RISING | Pin.IRQ_FALLING elif not rising and falling: trigger = Pin.IRQ_FALLING else: # also if both all false trigger = Pin.IRQ_RISING pin.irq(trigger=trigger, handler=self._cb) self.counter = 0 self.report_counter = 0 self.triggered = False Device.__init__(self, name, pin, on_change=on_change, report_change=report_change) self.getters[""] = self.value
Example #2
Source File: tinypico.py From tinypico-micropython with MIT License | 6 votes |
def set_dotstar_power(state): """Set the power for the on-board Dostar to allow no current draw when not needed.""" # Set the power pin to the inverse of state if state: Pin(DOTSTAR_PWR, Pin.OUT, None) # Break the PULL_HOLD on the pin Pin(DOTSTAR_PWR).value(False) # Set the pin to LOW to enable the Transistor else: Pin(13, Pin.IN, Pin.PULL_HOLD) # Set PULL_HOLD on the pin to allow the 3V3 pull-up to work Pin( DOTSTAR_CLK, Pin.OUT if state else Pin.IN ) # If power is on, set CLK to be output, otherwise input Pin( DOTSTAR_DATA, Pin.OUT if state else Pin.IN ) # If power is on, set DATA to be output, otherwise input # A small delay to let the IO change state time.sleep(0.035) # Dotstar rainbow colour wheel
Example #3
Source File: ttnmapper.py From ttnmapper with MIT License | 6 votes |
def init_lora(): """Initialize LoRaWAN connection""" if not Pin(LORA_ENABLE_PIN, mode=Pin.IN, pull=Pin.PULL_UP)(): lora = None else: if LORA_MODE.lower() == 'otaa': lora = join_otaa() elif LORA_MODE.lower() == 'abp': lora = join_abp() else: lora = None if lora is None: log('LoRa disabled!') return (None, None) # Setup socket sock = socket.socket(socket.AF_LORA, socket.SOCK_RAW) sock.setsockopt(socket.SOL_LORA, socket.SO_DR, 5) # Set data rate sock.setblocking(False) log('Done!') return (lora, sock)
Example #4
Source File: controller_esp.py From SX127x_driver_for_MicroPython_on_ESP8266 with GNU General Public License v3.0 | 6 votes |
def get_spi(self): spi = None id = 1 if config_lora.IS_ESP8266: spi = SPI(id, baudrate = 10000000, polarity = 0, phase = 0) spi.init() if config_lora.IS_ESP32: try: if config_lora.SOFT_SPI: id = -1 spi = SPI(id, baudrate = 10000000, polarity = 0, phase = 0, bits = 8, firstbit = SPI.MSB, sck = Pin(self.PIN_ID_SCK, Pin.OUT, Pin.PULL_DOWN), mosi = Pin(self.PIN_ID_MOSI, Pin.OUT, Pin.PULL_UP), miso = Pin(self.PIN_ID_MISO, Pin.IN, Pin.PULL_UP)) spi.init() except Exception as e: print(e) if spi: spi.deinit() spi = None reset() # in case SPI is already in use, need to reset. return spi
Example #5
Source File: button.py From 1ZLAB_MicroPython_ESP32_Tutorial with GNU General Public License v3.0 | 6 votes |
def __init__(self,button_idx, callback=None): # 按键字典 # 数据结构: (GPIO编号,按键抬起的电平, 按键按下的电平) button_list = [(39, False, True)] if button_idx < 0 or button_idx >= len(button_list): print("ERROR: Wrong Button Index") print("Valid Button Index: {} - {}".format(0, len(button_list)-1)) return None gpio_id, self.BUTTON_RELEASE, self.BUTTON_PRESS, = button_list[button_idx] # 按键 self.pin = Pin(gpio_id, Pin.IN) # 回调函数 self.callback = callback # 设置外部中断 if self.BUTTON_PRESS == True: self.pin.irq(trigger=Pin.IRQ_RISING, handler=self.irq_handler) else: self.pin.irq(trigger=Pin.IRQ_FALLING, handler=self.irq_handler) # 标志位 当前是否可以相应按键中断 self.flag = True
Example #6
Source File: sr_passive.py From micropython-async with MIT License | 6 votes |
def test(): freq(160000000) dout = Pin(14, Pin.OUT, value = 0) # Define pins ckout = Pin(15, Pin.OUT, value = 0) # clocks must be initialised to zero. din = Pin(13, Pin.IN) ckin = Pin(12, Pin.IN) channel = SynCom(True, ckin, ckout, din, dout) loop = asyncio.get_event_loop() loop.create_task(heartbeat()) loop.create_task(channel.start(passive_task)) try: loop.run_forever() except KeyboardInterrupt: pass finally: ckout(0)
Example #7
Source File: sr_init.py From micropython-async with MIT License | 6 votes |
def test(): dout = Pin(Pin.board.Y5, Pin.OUT_PP, value = 0) # Define pins ckout = Pin(Pin.board.Y6, Pin.OUT_PP, value = 0) # Don't assert clock until data is set din = Pin(Pin.board.Y7, Pin.IN) ckin = Pin(Pin.board.Y8, Pin.IN) reset = Pin(Pin.board.Y4, Pin.OPEN_DRAIN) sig_reset = Signal(reset, invert = True) channel = SynCom(False, ckin, ckout, din, dout, sig_reset, 10000) loop = asyncio.get_event_loop() loop.create_task(heartbeat()) loop.create_task(channel.start(initiator_task)) try: loop.run_forever() except KeyboardInterrupt: pass finally: ckout.value(0)
Example #8
Source File: astests.py From micropython-async with MIT License | 6 votes |
def test_btncb(): s = ''' press toggles red release toggles green double click toggles yellow long press toggles blue ''' print('Test of pushbutton executing callbacks.') print(helptext) print(s) pin = Pin('X1', Pin.IN, Pin.PULL_UP) red = LED(1) green = LED(2) yellow = LED(3) blue = LED(4) pb = Pushbutton(pin) pb.press_func(toggle, (red,)) pb.release_func(toggle, (green,)) pb.double_func(toggle, (yellow,)) pb.long_func(toggle, (blue,)) loop = asyncio.get_event_loop() loop.run_until_complete(killer())
Example #9
Source File: astests.py From micropython-async with MIT License | 6 votes |
def test_sw(): s = ''' close pulses green open pulses red ''' print('Test of switch scheduling coroutines.') print(helptext) print(s) pin = Pin('X1', Pin.IN, Pin.PULL_UP) red = LED(1) green = LED(2) sw = Switch(pin) # Register coros to launch on contact close and open sw.close_func(pulse, (green, 1000)) sw.open_func(pulse, (red, 1000)) loop = asyncio.get_event_loop() loop.run_until_complete(killer()) # Test for the switch class with a callback
Example #10
Source File: switches.py From micropython-async with MIT License | 6 votes |
def test_btncb(): s = ''' press toggles red release toggles green double click toggles yellow long press toggles blue ''' print('Test of pushbutton executing callbacks.') print(helptext) print(s) pin = Pin('X1', Pin.IN, Pin.PULL_UP) red = LED(1) green = LED(2) yellow = LED(3) blue = LED(4) pb = Pushbutton(pin) pb.press_func(toggle, (red,)) pb.release_func(toggle, (green,)) pb.double_func(toggle, (yellow,)) pb.long_func(toggle, (blue,)) run()
Example #11
Source File: hcsr04.py From uPySensors with Apache License 2.0 | 6 votes |
def __init__(self, trigger_pin, echo_pin, echo_timeout_us=500*2*30): """ trigger_pin: Output pin to send pulses echo_pin: Readonly pin to measure the distance. The pin should be protected with 1k resistor echo_timeout_us: Timeout in microseconds to listen to echo pin. By default is based in sensor limit range (4m) """ self.echo_timeout_us = echo_timeout_us # Init trigger pin (out) self.trigger = Pin(trigger_pin, mode=Pin.OUT) self.trigger.value(0) # Init echo pin (in) if (uname().sysname == 'WiPy'): self.echo = Pin(echo_pin, mode=Pin.OPEN_DRAIN) else: self.echo = Pin(echo_pin, mode=Pin.IN)
Example #12
Source File: art1.py From micropython-async with MIT License | 6 votes |
def test(): print('Test for IR receiver. Assumes NEC protocol. Turn LED on or off.') if platform == 'pyboard': p = Pin('X3', Pin.IN) led = LED(2) elif platform == 'esp8266': freq(160000000) p = Pin(13, Pin.IN) led = Pin(2, Pin.OUT) led(1) elif ESP32: p = Pin(23, Pin.IN) led = Pin(21, Pin.OUT) # LED with 220Ω series resistor between 3.3V and pin 21 led(1) ir = NEC_IR(p, cb, True, led) # Assume extended address mode r/c loop = asyncio.get_event_loop() loop.run_forever()
Example #13
Source File: switches.py From micropython-samples with MIT License | 6 votes |
def test_btncb(): s = ''' press toggles red release toggles green double click toggles yellow long press toggles blue ''' print('Test of pushbutton executing callbacks.') print(helptext) print(s) pin = Pin('X1', Pin.IN, Pin.PULL_UP) red = LED(1) green = LED(2) yellow = LED(3) blue = LED(4) pb = Pushbutton(pin) pb.press_func(toggle, (red,)) pb.release_func(toggle, (green,)) pb.double_func(toggle, (yellow,)) pb.long_func(toggle, (blue,)) loop = asyncio.get_event_loop() loop.run_until_complete(killer())
Example #14
Source File: button.py From 1ZLAB_PyEspCar with GNU General Public License v3.0 | 6 votes |
def __init__(self,button_idx, callback=None): # 按键字典 # 数据结构: (GPIO编号,按键抬起的电平, 按键按下的电平) button_list = [(39, False, True)] if button_idx < 0 or button_idx >= len(button_list): print("ERROR: Wrong Button Index") print("Valid Button Index: {} - {}".format(0, len(button_list)-1)) return None gpio_id, self.BUTTON_RELEASE, self.BUTTON_PRESS, = button_list[button_idx] # 按键 self.pin = Pin(gpio_id, Pin.IN) # 回调函数 self.callback = callback # 设置外部中断 if self.BUTTON_PRESS == True: self.pin.irq(trigger=Pin.IRQ_RISING, handler=self.irq_handler) else: self.pin.irq(trigger=Pin.IRQ_FALLING, handler=self.irq_handler) # 标志位 当前是否可以相应按键中断 self.flag = True
Example #15
Source File: digitalio.py From Adafruit_Blinka with MIT License | 6 votes |
def pull(self, pul): if self.direction is Direction.INPUT: self.__pull = pul if pul is Pull.UP: self._pin.init(mode=Pin.IN, pull=Pin.PULL_UP) elif pul is Pull.DOWN: if hasattr(Pin, "PULL_DOWN"): self._pin.init(mode=Pin.IN, pull=Pin.PULL_DOWN) else: raise NotImplementedError( "{} unsupported on {}".format(Pull.DOWN, board_id) ) elif pul is None: self._pin.init(mode=Pin.IN, pull=None) else: raise AttributeError("Not a Pull") else: raise AttributeError("Not an input")
Example #16
Source File: tinypico.py From tinypico-micropython with MIT License | 6 votes |
def get_battery_charging(): """ Returns the current battery charging state. This can trigger false positives as the charge IC can't tell the difference between a full battery or no battery connected. """ measuredVal = 0 # start our reading at 0 io = Pin(BAT_CHARGE, Pin.IN) # Assign the pin to read for y in range( 0, 10 ): # loop through 10 times adding the read values together to ensure no false positives measuredVal += io.value() return measuredVal == 0 # return True if the value is 0 # Power to the on-board Dotstar is controlled by a PNP transistor, so low is ON and high is OFF # We also need to set the Dotstar clock and data pins to be inputs to prevent power leakage when power is off # This might be improved at a future date # The reason we have power control for the Dotstar is that it has a quiescent current of around 1mA, so we # need to be able to cut power to it to minimise power consumption during deep sleep or with general battery powered use # to minimise unneeded battery drain
Example #17
Source File: battery_voltage.py From 1ZLAB_PyEspCar with GNU General Public License v3.0 | 6 votes |
def __init__(self, gpio_id, is_debug=False): self.BV_SAMPLE_PERIOD = 100 # 采样周期(次数)为2000次 self.OVER_DISCHARGE_VOLTAGE = 6.4 # 过放电压参考值 self.pin = Pin(gpio_id, Pin.IN) # 电压采样引脚 self.adc = ADC(self.pin) # 创建引脚对应的ADC对象 self.init_adc() # 初始化ADC self.bv_sample_cnt = 0 # 统计次数 self.bv_sample_sum = 0 # 采样电压总和 self.battery_voltage = 0 # 电池电压 # 初始化电池电压 self.init_battery_voltage() # 创建一个定时器 # self.timer = Timer(timer_id) # 每隔1ms执行一次 # self.timer.init(period=1, mode=Timer.PERIODIC, callback=self.callback) # 电池是否过放 self.is_over_discharge = False # 电池是否过放 # 是否开启调试模式 self.is_debug = is_debug
Example #18
Source File: tinypico.py From tinypico-micropython with MIT License | 6 votes |
def get_battery_charging(): """ Returns the current battery charging state. This can trigger false positives as the charge IC can't tell the difference between a full battery or no battery connected. """ measuredVal = 0 # start our reading at 0 io = Pin(BAT_CHARGE, Pin.IN) # Assign the pin to read for y in range( 0, 10 ): # loop through 10 times adding the read values together to ensure no false positives measuredVal += io.value() return measuredVal == 0 # return True if the value is 0 # Power to the on-board Dotstar is controlled by a PNP transistor, so low is ON and high is OFF # We also need to set the Dotstar clock and data pins to be inputs to prevent power leakage when power is off # This might be improved at a future date # The reason we have power control for the Dotstar is that it has a quiescent current of around 1mA, so we # need to be able to cut power to it to minimise power consumption during deep sleep or with general battery powered use # to minimise unneeded battery drain
Example #19
Source File: tinypico.py From tinypico-micropython with MIT License | 6 votes |
def set_dotstar_power(state): """Set the power for the on-board Dostar to allow no current draw when not needed.""" # Set the power pin to the inverse of state if state: Pin(DOTSTAR_PWR, Pin.OUT, None) # Break the PULL_HOLD on the pin Pin(DOTSTAR_PWR).value(False) # Set the pin to LOW to enable the Transistor else: Pin(13, Pin.IN, Pin.PULL_HOLD) # Set PULL_HOLD on the pin to allow the 3V3 pull-up to work Pin( DOTSTAR_CLK, Pin.OUT if state else Pin.IN ) # If power is on, set CLK to be output, otherwise input Pin( DOTSTAR_DATA, Pin.OUT if state else Pin.IN ) # If power is on, set DATA to be output, otherwise input # A small delay to let the IO change state time.sleep(0.035) # Dotstar rainbow colour wheel
Example #20
Source File: tinypico.py From tinypico-micropython with MIT License | 6 votes |
def get_battery_charging(): """ Returns the current battery charging state. This can trigger false positives as the charge IC can't tell the difference between a full battery or no battery connected. """ measuredVal = 0 # start our reading at 0 io = Pin(BAT_CHARGE, Pin.IN) # Assign the pin to read for y in range( 0, 10 ): # loop through 10 times adding the read values together to ensure no false positives measuredVal += io.value() return measuredVal == 0 # return True if the value is 0 # Power to the on-board Dotstar is controlled by a PNP transistor, so low is ON and high is OFF # We also need to set the Dotstar clock and data pins to be inputs to prevent power leakage when power is off # This might be improved at a future date # The reason we have power control for the Dotstar is that it has a quiescent current of around 1mA, so we # need to be able to cut power to it to minimise power consumption during deep sleep or with general battery powered use # to minimise unneeded battery drain
Example #21
Source File: epd1in54b.py From micropython-waveshare-epd with MIT License | 6 votes |
def __init__(self, reset, dc, busy, cs, clk, mosi): self.reset_pin = reset self.reset_pin.mode(Pin.OUT) self.dc_pin = dc self.dc_pin.mode(Pin.OUT) self.busy_pin = busy self.busy_pin.mode(Pin.IN) self.cs_pin = cs self.cs_pin.mode(Pin.OUT) self.cs_pin.pull(Pin.PULL_UP) self.spi = SPI(0, mode=SPI.MASTER, baudrate=2000000, polarity=0, phase=0, pins=(clk, mosi, None)) self.width = EPD_WIDTH self.height = EPD_HEIGHT self.rotate = ROTATE_0
Example #22
Source File: trigger.py From ulnoiot-upy with MIT License | 6 votes |
def __init__(self, name, pin, rising=False, falling=False, pullup=True, on_change=None, report_change=True): if pullup: pin.init(Pin.IN, Pin.PULL_UP) else: pin.init(Pin.IN, Pin.OPEN_DRAIN) if rising and falling: trigger = Pin.IRQ_RISING | Pin.IRQ_FALLING elif not rising and falling: trigger = Pin.IRQ_FALLING else: # also if both all false trigger = Pin.IRQ_RISING pin.irq(trigger=trigger, handler=self._cb) self.counter = 0 self.report_counter = 0 self.triggered = False Device.__init__(self, name, pin, on_change=on_change, report_change=report_change) self.getters[""] = self.value
Example #23
Source File: contact.py From ulnoiot-upy with MIT License | 6 votes |
def __init__(self, name, pin, *args, report_high="on", report_low="off", pullup=True, threshold=0, on_change=None, report_change=True, filter=None): if len(args) > 0: report_high = args[0] if len(args) > 1: report_low = args[1] Device.__init__(self, name, pin, value_map={True: report_high, False: report_low}, on_change=on_change, report_change=report_change, filter=filter) if pullup: pin.init(Pin.IN, Pin.PULL_UP) else: pin.init(Pin.IN) try: Pin.init(Pin.OPEN_DRAIN) except: pass self.threshold = threshold + 1 self.debouncer = self.port() * self.threshold
Example #24
Source File: encoder.py From micropython-stm-lib with MIT License | 6 votes |
def __init__(self, pin_clk, pin_dt, pin_mode=None, clicks=1, init_val=0, min_val=0, max_val=100, accel=0, reverse=False): self.pin_clk = (pin_clk if isinstance(pin_clk, Pin) else Pin(pin_clk, Pin.IN, pin_mode)) self.pin_dt = (pin_dt if isinstance(pin_dt, Pin) else Pin(pin_dt, Pin.IN, pin_mode)) self.min_val = min_val * clicks self.max_val = max_val * clicks self.accel = int((max_val - min_val) / 100 * accel) self.max_accel = int((max_val - min_val) / 2) self.clicks = clicks self.reverse = 1 if reverse else -1 # The following variables are assigned to in the interrupt callback, # so we have to allocate them here. self._value = init_val self._readings = 0 self._state = 0 self.cur_accel = 0 self.set_callbacks(self._callback)
Example #25
Source File: trigger.py From ulnoiot-upy with MIT License | 6 votes |
def __init__(self, name, pin, rising=False, falling=False, pullup=True, on_change=None, report_change=True): if pullup: pin.init(Pin.IN, Pin.PULL_UP) else: pin.init(Pin.IN, Pin.OPEN_DRAIN) if rising and falling: trigger = Pin.IRQ_RISING | Pin.IRQ_FALLING elif not rising and falling: trigger = Pin.IRQ_FALLING else: # also if both all false trigger = Pin.IRQ_RISING pin.irq(trigger=trigger, handler=self._cb) self.counter = 0 self.report_counter = 0 self.triggered = False Device.__init__(self, name, pin, on_change=on_change, report_change=report_change) self.getters[""] = self.value
Example #26
Source File: trigger.py From ulnoiot-upy with MIT License | 6 votes |
def __init__(self, name, pin, rising=False, falling=False, pullup=True, on_change=None, report_change=True): if pullup: pin.init(Pin.IN, Pin.PULL_UP) else: pin.init(Pin.IN, Pin.OPEN_DRAIN) if rising and falling: trigger = Pin.IRQ_RISING | Pin.IRQ_FALLING elif not rising and falling: trigger = Pin.IRQ_FALLING else: # also if both all false trigger = Pin.IRQ_RISING pin.irq(trigger=trigger, handler=self._cb) self.counter = 0 self.report_counter = 0 self.triggered = False Device.__init__(self, name, pin, on_change=on_change, report_change=report_change) self.getters[""] = self.value
Example #27
Source File: contact.py From ulnoiot-upy with MIT License | 6 votes |
def __init__(self, name, pin, *args, report_high="on", report_low="off", pullup=True, threshold=0, on_change=None, report_change=True, filter=None): if len(args) > 0: report_high = args[0] if len(args) > 1: report_low = args[1] Device.__init__(self, name, pin, value_map={True: report_high, False: report_low}, on_change=on_change, report_change=report_change, filter=filter) if pullup: pin.init(Pin.IN, Pin.PULL_UP) else: pin.init(Pin.IN) try: Pin.init(Pin.OPEN_DRAIN) except: pass self.threshold = threshold + 1 self.debouncer = self.port() * self.threshold
Example #28
Source File: trigger.py From ulnoiot-upy with MIT License | 6 votes |
def __init__(self, name, pin, rising=False, falling=False, pullup=True, on_change=None, report_change=True): if pullup: pin.init(Pin.IN, Pin.PULL_UP) else: pin.init(Pin.IN, Pin.OPEN_DRAIN) if rising and falling: trigger = Pin.IRQ_RISING | Pin.IRQ_FALLING elif not rising and falling: trigger = Pin.IRQ_FALLING else: # also if both all false trigger = Pin.IRQ_RISING pin.irq(trigger=trigger, handler=self._cb) self.counter = 0 self.report_counter = 0 self.triggered = False Device.__init__(self, name, pin, on_change=on_change, report_change=report_change) self.getters[""] = self.value
Example #29
Source File: trigger.py From ulnoiot-upy with MIT License | 6 votes |
def __init__(self, name, pin, rising=False, falling=False, pullup=True, on_change=None, report_change=True): if pullup: pin.init(Pin.IN, Pin.PULL_UP) else: pin.init(Pin.IN, Pin.OPEN_DRAIN) if rising and falling: trigger = Pin.IRQ_RISING | Pin.IRQ_FALLING elif not rising and falling: trigger = Pin.IRQ_FALLING else: # also if both all false trigger = Pin.IRQ_RISING pin.irq(trigger=trigger, handler=self._cb) self.counter = 0 self.report_counter = 0 self.triggered = False Device.__init__(self, name, pin, on_change=on_change, report_change=report_change) self.getters[""] = self.value
Example #30
Source File: contact.py From ulnoiot-upy with MIT License | 6 votes |
def __init__(self, name, pin, *args, report_high="on", report_low="off", pullup=True, threshold=0, on_change=None, report_change=True, filter=None): if len(args) > 0: report_high = args[0] if len(args) > 1: report_low = args[1] Device.__init__(self, name, pin, value_map={True: report_high, False: report_low}, on_change=on_change, report_change=report_change, filter=filter) if pullup: pin.init(Pin.IN, Pin.PULL_UP) else: pin.init(Pin.IN) try: Pin.init(Pin.OPEN_DRAIN) except: pass self.threshold = threshold + 1 self.debouncer = self.port() * self.threshold