为ardunio增加USB主机功能,外扩一个鼠标,USB HostShield 模块测试

为ardunio增加USB主机功能,外扩一个鼠标 USB HostShield 模块测试

1.说明

ardunio本身usb功能有限,可通过外扩USB HostShield 模块,为其增加USB Host功能,可大大拓宽其使用功能,比如增加一个鼠标,读取U盘,或者增加其它USB设备,或者实现USB HUB 功能。
USB HostShield 模块可兼容 Arduino 以下硬件:
Uno 328
Diecimila/Duemilanove 328
Mega 2560(推荐)
Mega 1280

2.应用

(1)USB 控制

(2)USB 扩展

4.USB HostShield 模块外观

在这里插入图片描述

5.使用方法

5.1 连接控制线:

直接插在 UNO 板子上:按图中红线标出的位置,将其短接。
在这里插入图片描述
在这里插入图片描述

5.2 测试说明:

(1)连接网线和 USB 到电脑,使用有线光电鼠标进行测试,无线鼠标只能测试部分内容。

(2)下载测试程序,直接用 Ardunio 提供的例程。如图

在这里插入图片描述

说明:可以使用上图的两个例程进行测试。第一个测试的是鼠标描述内容。第二个可以测试鼠标的坐

标位置和按键点击状态。

5.3 测试结果:

(1)第一个例程和第二个例程结果如下:
在这里插入图片描述
在这里插入图片描述

在Arduino平台配置ESP32蓝牙模块,通常会使用第三方库如ESP32 Bluetooth LE (Core)或Adafruit ESP32 BLE库。以下是一个简单的例子,假设我们使用的是Adafruit库。首先,确保已安装了必要的库: ```arduino #include <Adafruit_BluefruitLE_BLE.h> #include <Adafruit_BluefruitLEAdvertisement.h> // 创建BLE对象 Adafruit_BluefruitLE BLE; // ESP32蓝牙服务UUID const char* serviceUUID = "0000ffe0-0000-1000-8000-00805f9b34fb"; // 蓝牙设备特征UUID const char* characteristicUUID = "0000ffe1-0000-1000-8000-00805f9b34fb"; Adafruit_BluefruitLEService *service; Adafruit_BluefruitLECharacteristic *characteristic; void setup() { Serial.begin(115200); // 初始化蓝牙功能 if (!BLE.begin()) { Serial.println("Bluetooth init failed!"); return; } // 扫描附近的蓝牙设备 BLE.setAdvertiseMode(Adafruit_BluefruitLE::ADVERTISE_MODE_FAST); } void loop() { // 如果发现新设备或连接成功 if (BLE.connected()) { ServiceFound(); } else { // 广播广告信息 BLE.advertise(new AdvertData(serviceUUID, "", new TxPowerLevel(-6))); } } void ServiceFound() { // 获取第一个服务 for (uint8_t i = 0; i < BLE.getServices().size(); i++) { Adafruit_BluefruitLEService* service = BLE.getServices()[i]; if (strcmp(service->uuidToString(), serviceUUID) == 0) { this->service = service; break; } } // 如果找到了服务,继续查找特征 if (service != NULL) { for (uint8_t j = 0; j < service->getCharacteristics().size(); j++) { Adafruit_BluefruitLECharacteristic* characteristic = service->getCharacteristics()[j]; if (strcmp(characteristic->uuidToString(), characteristicUUID) == 0) { this->characteristic = characteristic; break; } } // 如果找到特征,开始发送数据 if (characteristic != NULL) { characteristic->setValue("Hello from ESP32 via Bluetooth!"); // 发送字符串 Serial.println("Connected and data sent."); } } } ``` 注意:这只是一个基础示例,实际应用可能需要处理更多的错误检查和事件回调。此,为了运行这个代码,你需要将ESP32作为蓝牙服务器,并确保已经通过固件升级配置了相应的蓝牙功能
评论 18
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值