/*------------------------------------------------------------------------ This file is part of the Adafruit Dot Star library. Adafruit Dot Star is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. Adafruit Dot Star is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with DotStar. If not, see . ------------------------------------------------------------------------*/ #include "utility/Adafruit_CPlay_NeoPixel.h" #include "utility/Adafruit_CPlay_LIS3DH.h" #include "utility/Adafruit_CPlay_Mic.h" #include "utility/Adafruit_CPlay_Speaker.h" #include "utility/CPlay_CapacitiveSensor.h" #include "utility/CP_Firmata.h" #ifndef _ADAFRUIT_CIRCUITPLAYGROUND_H_ #define _ADAFRUIT_CIRCUITPLAYGROUND_H_ #ifndef NOT_AN_INTERRUPT // Not defined in Arduino 1.0.5 #define NOT_AN_INTERRUPT -1 #endif #define CPLAY_REDLED 13 #define CPLAY_NEOPIXELPIN 17 #define CPLAY_SLIDESWITCHPIN 21 #define CPLAY_LEFTBUTTON 4 #define CPLAY_RIGHTBUTTON 19 #define CPLAY_LIGHTSENSOR A5 #define CPLAY_LIS3DH_CS 8 #define CPLAY_THERMISTORPIN A0 #define CPLAY_SOUNDSENSOR A4 #define CPLAY_BUZZER 5 #define CPLAY_CAPSENSE_SHARED 30 #define SERIESRESISTOR 10000 // resistance at 25 degrees C #define THERMISTORNOMINAL 10000 // temp. for nominal resistance (almost always 25 C) #define TEMPERATURENOMINAL 25 // The beta coefficient of the thermistor (usually 3000-4000) #define BCOEFFICIENT 3380 // the value of the 'other' resistor // Configuration to tune the color sensing logic: #define LIGHT_SETTLE_MS 100 // Amount of time (in milliseconds) to wait between // changing the pixel color and reading the light // sensor. #if (ARDUINO >= 100) #include #else #include #include #endif class Adafruit_CircuitPlayground { public: boolean begin(uint8_t brightness=20); Adafruit_CPlay_NeoPixel strip; Adafruit_CPlay_LIS3DH lis; Adafruit_CPlay_Mic mic; Adafruit_CPlay_Speaker speaker; CPlay_CapacitiveSensor cap[8]; boolean slideSwitch(void); void redLED(boolean v); void playTone(uint16_t freq, uint16_t time, boolean wait=true); boolean leftButton(void); boolean rightButton(void); uint16_t lightSensor(void); uint16_t soundSensor(void); float temperature(void); float temperatureF(void); uint16_t readCap(uint8_t p, uint8_t samples=10); // Accelerometer float motionX(void); float motionY(void); float motionZ(void); void setAccelRange(lis3dh_range_t range) { lis.setRange(range); } void setAccelTap(uint8_t c, uint8_t clickthresh) { lis.setClick(c, clickthresh, 10, 20, 255); } uint8_t getAccelTap(void) { return (lis.getClick() >> 8) & 0x3; } // neopixels void clearPixels(void) { strip.clear(); strip.show(); } void setPixelColor(uint8_t p, uint32_t c) {strip.setPixelColor(p, c); strip.show();} void setPixelColor(uint8_t p, uint8_t r, uint8_t g, uint8_t b) {strip.setPixelColor(p, r, g, b); strip.show();} void setBrightness(uint16_t b){strip.setBrightness(b);} uint32_t colorWheel(uint8_t x); // Basic RGB color sensing with the light sensor and nearby neopixel. // Both functions do the same thing and just differ in how they return the // result, either as explicit RGB bytes or a 24-bit RGB color value. void senseColor(uint8_t& red, uint8_t& green, uint8_t& blue); uint32_t senseColor() { // Use the individual color component color sense function and then recombine // tbe components into a 24-bit color value. uint8_t red, green, blue; senseColor(red, green, blue); return ((uint32_t)red << 16) | ((uint32_t)green << 8) | blue; } private: }; extern Adafruit_CircuitPlayground CircuitPlayground; #endif