4#include <Adafruit_APDS9960.h>
5#include <Adafruit_GFX.h>
6#include <Adafruit_SSD1306.h>
8#include "Adafruit_NeoTrellis.h"
13 Serial.print(address, HEX);
19 Serial.print(address, HEX);
23 Serial.println(value);
27 Wire.setClock(400000);
40 Wire.beginTransmission(address);
42 uint8_t error = Wire.endTransmission();
50 PrintAddress(address,
" " + name +
":\tData too long to fit in transmit buffer.");
53 PrintAddress(address,
" " + name +
":\tReceived NACK on transmit of address.");
56 PrintAddress(address,
" " + name +
":\tReceived NACK on transmit of data.");
62 PrintAddress(address,
" " + name +
" not found. Unknown error.");
72 Wire.setClock(400000);
85 Wire.beginTransmission(address);
87 Adafruit_APDS9960 apds;
89 bool didBegin = apds.begin(10U, APDS9960_AGAIN_4X, address);
90 apds.enableProximity(
true);
104 Wire.setClock(400000);
117 Wire.beginTransmission(address);
119 APDS9930 apds = APDS9930();
121 bool didBegin = apds.init();
126 if(apds.enableProximitySensor(
false)) Serial.println(F(
"Proximity sensor is now running"));
133 for (
int i = 0; i < 10; i++){
134 bool didRead = apds.readProximity(data);
136 if(didBegin && didRead){
148 Wire.setClock(100000);
161 Wire.beginTransmission(address);
163 Adafruit_SSD1306 display;
165 display.begin(SSD1306_SWITCHCAPVCC, 0x3C);
168 display.clearDisplay();
169 display.invertDisplay(
true);
173 display.setTextSize(1);
174 display.setTextColor(SSD1306_WHITE);
175 display.setCursor(0, 0);
176 display.println(F(
"Hello, SSD1306!"));
178 display.drawRect(10, 10, 20, 20, SSD1306_WHITE);
179 display.fillCircle(60, 30, 15, SSD1306_WHITE);
189 static TrellisCallback
blink(keyEvent evt){
191 if (evt.bit.EDGE == SEESAW_KEYPAD_EDGE_RISING) {
192 trellis.pixels.setPixelColor(evt.bit.NUM,
Wheel(map(evt.bit.NUM, 0,
trellis.pixels.numPixels(), 0, 255)));
193 }
else if (evt.bit.EDGE == SEESAW_KEYPAD_EDGE_FALLING) {
195 trellis.pixels.setPixelColor(evt.bit.NUM, 0);
204 static uint32_t
Wheel(
byte WheelPos) {
206 return trellis.pixels.Color(WheelPos * 3, 255 - WheelPos * 3, 0);
207 }
else if(WheelPos < 170) {
209 return trellis.pixels.Color(255 - WheelPos * 3, 0, WheelPos * 3);
212 return trellis.pixels.Color(0, WheelPos * 3, 255 - WheelPos * 3);
218 Wire.setClock(50000);
233 Serial.println(
"Could not start trellis, check wiring?");
236 Serial.println(
"NeoPixel Trellis started");
240 for(
int i=0; i<NEO_TRELLIS_NUM_KEYS; i++){
241 trellis.activateKey(i, SEESAW_KEYPAD_EDGE_RISING);
242 trellis.activateKey(i, SEESAW_KEYPAD_EDGE_FALLING);
247 for (uint16_t i=0; i<
trellis.pixels.numPixels(); i++) {
252 for (uint16_t i=0; i<
trellis.pixels.numPixels(); i++) {
253 trellis.pixels.setPixelColor(i, 0x000000);
289 for (uint16_t i = 0; i < 65536; i++){
296 Wire.setClock(100000);
302 uint8_t numDevices = 0;
304 for (uint8_t i = 0; i < 127; i++){
305 Wire.beginTransmission(i);
307 uint8_t error = Wire.endTransmission();
310 Serial.print(
"Device on address: ");
311 Serial.println(i, HEX);
316 Serial.print(
"Number of Devices Found: ");
317 Serial.println(numDevices);
static uint32_t Wheel(byte WheelPos)
static bool TestI2CConnection(uint8_t address, String name, bool flip)
static void ScanDevices()
static void TestSSD1306(uint8_t address, bool flip)
static TrellisCallback blink(keyEvent evt)
static void PrintAddress(uint8_t address, const String &text)
static void TestNeoTrellis()
static void TestTrellisHardware(bool flip)
static void ResetI2CBus()
static void TestMicrophone()
static void TestAPDS9930(uint8_t address, bool flip)
static void TestAPDS9960(uint8_t address, bool flip)
static Adafruit_NeoTrellis trellis
static void TestBoopSensor()
static void PrintAddressValue(uint8_t address, const String &text, int value)