TrashNotes

2025-03-29 23:41:03
Ok: CircuitPython RP2040-Zero, считывает аналоговый вход и эмулирует(прикидывается) клавиатуру, каждые 5 секунд выводит вольтаж в клавиатуру, если на пине GP0 "0". тоесть впечатывает результат туда где находится курсор.

Image

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)
← Previous Next →
Back to list