Arduino PowerPoint 指针:无缝无线演示控制器
组件与材料
| 组件 | 数量 |
|---|---|
| Arduino Leonardo | 1 |
| IR 接收器(通用) | 1 |
| 电视遥控器 | 1 |
项目简介
上次做 PowerPoint 演示时,手里一直拿着鼠标非常不方便,鼠标并非为演示设计。即将进行一场“Arduino 入门”演示,我想何不亲自动手,用 Arduino 制作一个简易的演示翻页器,展示 Arduino 的功能。
首先想到的是利用电视遥控器——它的握持姿势比鼠标更符合人体工学。只需一个红外接收模块,即可解码遥控信号,并通过 Arduino Leonardo 的原生 USB HID 功能模拟键盘左右箭头,实现翻页。

所需组件
- 1× 电视遥控器
- 1× Arduino Leonardo(UNO 也可,但需修改固件)
- 1× 红外接收传感器(如 VS1838B)
- 可选:万用板制作简易扩展板

电路连接
连接非常简单:
- 传感器 GND → Arduino GND
- 传感器 VCC → Arduino 5V
- 传感器 DATA → Arduino 数字引脚 2

代码实现
代码分两步:
- 解码遥控按键:上传“代码 1”,打开串口监视器,按下遥控器按键,记录对应的十进制/十六进制值。
- 映射功能:将记录的数值填入“代码 2”的
if判断中,上传后即可使用遥控器控制翻页。
需先安装 IRremote 库(GitHub 安装说明请遵循官方步骤)。

以我的遥控器为例,使用中间的前进/后退键,对应数值分别为 18105 和 -22951。

上传代码 2 后,Leonardo 会识别为键盘,按下遥控器对应键即发送左右方向键。

PowerPoint 中使用
进入“放映模式”,按下遥控器设定的键,幻灯片即可前后翻动。
其他 Arduino 板卡
UNO 等板卡因无原生 USB HID,需重刷 ATmega8U2/16U2 固件才能模拟键盘。Leonardo、Zero、Due 等原生支持,无需额外操作。详见 Arduino 官方论坛。
完整代码
代码 1:IR 解码器
#include <IRremote.h>
int RECV_PIN = 2;
IRrecv irrecv(RECV_PIN);
decode_results results;
int key_pressed;
void setup() {
Serial.begin(9600);
irrecv.enableIRIn();
}
void loop() {
if (irrecv.decode(&results)) {
key_pressed = results.value;
Serial.println(key_pressed);
irrecv.resume();
}
delay(100);
}
代码 2:PowerPoint 控制器
#include <IRremote.h>
#include "Keyboard.h"
int RECV_PIN = 2;
IRrecv irrecv(RECV_PIN);
decode_results results;
int key_pressed;
int last_key_pressed;
void setup() {
Serial.begin(9600);
irrecv.enableIRIn();
Keyboard.begin();
}
void loop() {
if (irrecv.decode(&results)) {
key_pressed = results.value;
Serial.println(key_pressed);
irrecv.resume();
}
if (key_pressed == last_key_pressed) key_pressed = 0; // 防重复触发
if (key_pressed == 18105) { // 替换为你的“下一页”键值
Keyboard.press(KEY_RIGHT_ARROW);
Keyboard.releaseAll();
}
if (key_pressed == -22951) { // 替换为你的“上一页”键值
Keyboard.press(KEY_LEFT_ARROW);
Keyboard.releaseAll();
}
last_key_pressed = key_pressed;
}
原理图


制造工艺
- 激光笔:设计、制造与安全概览
- 树莓派 LIRC 通用红外遥控器专业构建指南
- DIY 蓝牙控制 Arduino 间谍小车
- FlickMote:基于手势的智能家居红外遥控器
- DIY Arduino TV-B-Gone:万能关机遥控器
- 基于 Arduino、1Sheeld 与红外控制的万能安卓遥控器
- 自制大尺寸LED主时钟带闹钟功能 — 12米外清晰可见
- Find Me:基于 Arduino 与蓝牙的智能寻物器制作指南
- Arduino 项目优化供电方案:从按键开关到电池监测与数据记录
- Arduino 井字棋游戏:MAX7219 点阵屏 + 纸板外壳 DIY
- 从零构建智能 Arduino 四足机器人:完整指南
- 便携式远程监控摄像头机器人系统