2025-03-29 23:41:03
Ok: CircuitPython RP2040-Zero, считывает аналоговый вход и эмулирует(прикидывается) клавиатуру, каждые 5 секунд выводит вольтаж в клавиатуру, если на пине GP0 "0". тоесть впечатывает результат туда где находится курсор.
import time
import board
import analogio
import digitalio
import usb_hid
from adafruit_hid.keyboard import Keyboard
from adafruit_hid.keyboard_layout_us import KeyboardLayoutUS
from adafruit_hid.keycode import Keycode # Импорт Keycode
# Инициализация аналогового входа на пине A0
analog_in = analogio.AnalogIn(board.A0)
# Инициализация цифрового входа на пине GP0
gp0 = digitalio.DigitalInOut(board.GP0)
gp0.switch_to_input(pull=digitalio.Pull.UP)
# Настройка клавиатуры и раскладки
keyboard = Keyboard(usb_hid.devices)
layout = KeyboardLayoutUS(keyboard)
# Функция преобразования сырого значения в напряжение
def get_voltage(raw):
return (raw * 3.3) / 65536
last_action_time = time.monotonic()
while True:
current_time = time.monotonic()
if current_time - last_action_time >= 5 and not gp0.value:
# Чтение аналогового значения
raw_value = analog_in.value
voltage = get_voltage(raw_value)
# Преобразование напряжения в строку
voltage_str = f"{voltage:.2f}V\n"
# Ввод напряжения через клавиатуру
layout.write(voltage_str)
# Вывод значений в консоль
print(f"Raw: {raw_value:5d} | Voltage: {voltage_str}")
last_action_time = current_time
time.sleep(0.1)
Back to list