/* * This example shows how read arcade buttons and PWM the LEDs on the Adafruit Arcade QT! */ #include "Adafruit_seesaw.h" #include #define DEFAULT_I2C_ADDR 0x3A #define SWITCH1 18 // PA01 #define SWITCH2 19 // PA02 #define SWITCH3 20 // PA03 #define SWITCH4 2 // PA06 #define PWM1 12 // PC00 #define PWM2 13 // PC01 #define PWM3 0 // PA04 #define PWM4 1 // PA05 Adafruit_seesaw ss; void setup() { Serial.begin(115200); while (!Serial) delay(10); // wait until serial port is opened Serial.println(F("Adafruit PID 5296 I2C QT 4x LED Arcade Buttons test!")); if (!ss.begin(DEFAULT_I2C_ADDR)) { Serial.println(F("seesaw not found!")); while(1) delay(10); } uint16_t pid; uint8_t year, mon, day; ss.getProdDatecode(&pid, &year, &mon, &day); Serial.print("seesaw found PID: "); Serial.print(pid); Serial.print(" datecode: "); Serial.print(2000+year); Serial.print("/"); Serial.print(mon); Serial.print("/"); Serial.println(day); if (pid != 5296) { Serial.println(F("Wrong seesaw PID")); while (1) delay(10); } Serial.println(F("seesaw started OK!")); ss.pinMode(SWITCH1, INPUT_PULLUP); ss.pinMode(SWITCH2, INPUT_PULLUP); ss.pinMode(SWITCH3, INPUT_PULLUP); ss.pinMode(SWITCH4, INPUT_PULLUP); ss.analogWrite(PWM1, 127); ss.analogWrite(PWM2, 127); ss.analogWrite(PWM3, 127); ss.analogWrite(PWM4, 127); } uint8_t incr = 0; void loop() { if (! ss.digitalRead(SWITCH1)) { Serial.println("Switch 1 pressed"); ss.analogWrite(PWM1, incr); incr += 5; } else { ss.analogWrite(PWM1, 0); } if (! ss.digitalRead(SWITCH2)) { Serial.println("Switch 2 pressed"); ss.analogWrite(PWM2, incr); incr += 5; } else { ss.analogWrite(PWM2, 0); } if (! ss.digitalRead(SWITCH3)) { Serial.println("Switch 3 pressed"); ss.analogWrite(PWM3, incr); incr += 5; } else { ss.analogWrite(PWM3, 0); } if (! ss.digitalRead(SWITCH4)) { Serial.println("Switch 4 pressed"); ss.analogWrite(PWM4, incr); incr += 5; } else { ss.analogWrite(PWM4, 0); } delay(10); }