reference: https://www.waveshare.com/wiki/PAJ7620U2_Gesture_Sensor#How_to_use_it
#include <Wire.h>
#include "PAJ7620U2.h"
#include "U8glib.h" // u8g library, note there is a newer version u8g2, please use the older one
// uncomment the correct connection - fast I2C, slow I2C, SPI
U8GLIB_SSD1309_128X64 u8g( 13, 11, 10, 9, 8 );
unsigned short Gesture_Data;
String myString;
void setup() {
uint8_t i;
Serial.begin(115200);
Serial.print("\nGesture Sensor Test Program ...\n");
delayMicroseconds(800);
Wire.begin();
delayMicroseconds(10);
while(!PAJ7620U2_init())
{ Serial.print("\nGesture Sensor Error\n");
delay(500);
}
Serial.print("\nGesture Sensor OK\n");
I2C_writeByte(PAJ_BANK_SELECT, 0);//Select Bank 0
for (i = 0; i < Gesture_Array_SIZE; i++)
{
I2C_writeByte(Init_Gesture_Array[i][0], Init_Gesture_Array[i][1]);//Gesture register initializes
}
u8g.setColorIndex(1); // set color to white
u8g.setHiColorByRGB(255,255,255);
u8g.setFont(u8g_font_7x14);
}
void loop() {
Gesture_Data = I2C_readU16(PAJ_INT_FLAG1);
if (Gesture_Data)
{
switch (Gesture_Data)
{
case PAJ_UP: Serial.print("Up\r\n"); myString="Up"; break;
case PAJ_DOWN: Serial.print("Down\r\n"); myString="Down"; break;
case PAJ_LEFT: Serial.print("Left\r\n"); myString="Left"; break;
case PAJ_RIGHT: Serial.print("Right\r\n"); myString="Right"; break;
case PAJ_FORWARD: Serial.print("Forward\r\n");myString="Forward"; break;
case PAJ_BACKWARD: Serial.print("Backward\r\n");myString="Backward"; break;
case PAJ_CLOCKWISE: Serial.print("Clockwise\r\n");myString="Clockwise"; break;
case PAJ_COUNT_CLOCKWISE: Serial.print("AntiClockwise\r\n");myString="AntiClockwise"; break;
case PAJ_WAVE: Serial.print("Wave\r\n"); myString="Wave"; break;
default: break;
}
Gesture_Data=0;
}
u8g.firstPage();
do {
u8g.setFont(u8g_font_7x14);
u8g.drawStr(8,18,"Gesture:");
u8g.setPrintPos(8, 48);
u8g.print(myString);
} while ( u8g.nextPage() ); // u8g library specific, has to be there
}