arduino使用oled代码_Arduino提高篇25—手势识别
时间: 2024-02-25 07:52:06 浏览: 167
以下是手势识别的Arduino代码,使用了OLED显示屏:
```
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#include <SparkFun_APDS9960.h>
#define SCREEN_WIDTH 128
#define SCREEN_HEIGHT 64
#define OLED_RESET 4
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET);
SparkFun_APDS9960 apds;
void setup() {
Serial.begin(9600);
if (!apds.init()) {
Serial.println("Failed to initialize APDS-9960 sensor.");
}
apds.enableGestureSensor(true);
display.begin(SSD1306_SWITCHCAPVCC, 0x3C);
display.clearDisplay();
display.display();
}
void loop() {
if (apds.isGestureAvailable()) {
switch (apds.readGesture()) {
case DIR_UP:
display.clearDisplay();
display.setCursor(0, 0);
display.println("UP");
display.display();
break;
case DIR_DOWN:
display.clearDisplay();
display.setCursor(0, 0);
display.println("DOWN");
display.display();
break;
case DIR_LEFT:
display.clearDisplay();
display.setCursor(0, 0);
display.println("LEFT");
display.display();
break;
case DIR_RIGHT:
display.clearDisplay();
display.setCursor(0, 0);
display.println("RIGHT");
display.display();
break;
case DIR_NEAR:
display.clearDisplay();
display.setCursor(0, 0);
display.println("NEAR");
display.display();
break;
case DIR_FAR:
display.clearDisplay();
display.setCursor(0, 0);
display.println("FAR");
display.display();
break;
default:
break;
}
}
}
```
这个代码使用了SparkFun的APDS9960手势传感器来检测手势,并使用Adafruit的SSD1306 OLED显示屏来显示检测到的手势。在setup()函数中,初始化了传感器和显示屏。在loop()函数中,检测手势并根据手势在显示屏上显示相应的方向。
阅读全文