0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

ESP32-S2開発機でUSBホストで遊ぶ。(USBキーボードを接続)

0
Last updated at Posted at 2026-09-06

参考

いろいろ注意

  • 過去ログを見た?
  • usbhost,usb-host,usb-ホスト
  • 各自、データシートで確認せよ!!!
  • 配線

5V - 5V
D- - D-
D+ - D+
GND - GND

結果

Screenshot From 2026-09-06 20-43-01.png

Screenshot From 2026-09-06 20-48-13.png

image_original(142).jpg

プログラム

esp32-s2



#include "EspUsbHost.h"

EspUsbHost usb;

void setup()
{
  Serial.begin(115200);
  delay(5000);

  usb.setKeyboardLayout(ESP_USB_HOST_KEYBOARD_LAYOUT_JA_JP);

  usb.onDeviceConnected([](const EspUsbHostDeviceInfo &device)
                        {
                          Serial.print("connected: ");
                          espUsbHostPrint(device); });

  usb.onDeviceDisconnected([](const EspUsbHostDeviceInfo &device)
                           {
                             Serial.print("disconnected: ");
                             espUsbHostPrint(device); });


//iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii

  usb.onKeyboard([](const EspUsbHostKeyboardEvent &event)
                 {
    // en: Print characters only on key press; release events do not emit text.
    // ja: キー押下時だけ文字を表示し、キー解放イベントでは文字を出しません。
    if (!event.pressed) return;

    if (event.ascii == '\r')
    {
      Serial.println();
    }
    else if (event.ascii >= 0x20 && event.ascii != 0x7F)
    {
      Serial.print((char)event.ascii);
    } });

//iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii

  if (!usb.begin())
  {
    Serial.printf("usb.begin() failed: %s\n", usb.lastErrorName());
  } else {Serial.printf("usb.begin() OK\n");}
}

void loop()
{
  delay(1);
}



ae-esp32-s2-mini



//USB_Keyboard_ae_esp32_s2_mini_1


//インクルド
#include <Arduino.h>
#include "USB.h"
#include "USBHIDKeyboard.h"


//定義1
USBHIDKeyboard Keyboard;  //キーボードの定義

//定義2
const int buttonPin = 1;         //(I/O)ピンの定義
int previousButtonState = HIGH;  //ボタンステータス
int counter = 1;                 //カウンター


//初期化
void setup() {

  pinMode(buttonPin, INPUT_PULLUP);  //(I/O)の初期化
  Keyboard.begin();                  //キーボードの開始
  USB.begin();                       //USBの開始

}  //setup


//メインループ
void loop() {

  //キーの読み込み
  int buttonState = digitalRead(buttonPin);

  //たぶん、ボタンの立ち下がりに実行
  if ((buttonState != previousButtonState) && (buttonState == LOW)) {

    //ボタンの状態表示
    Keyboard.print("You pressed the button ");
    Keyboard.print(counter);
    Keyboard.println(" times.");

    counter++;  //カウントアップ

  }  //endif

  previousButtonState = buttonState;  //ボタンステータスの保存
  delay(1);                           //ダミー

}  //loop


0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?