Étape 7: LED Touch Table
Code final :
#include < CapacitiveSensor.h >
#include < Adafruit_Neopixel.h >
#define PIXEL_PIN 6 / / e/s numérique broche reliée à la NeoPixels.
#define PIXEL_COUNT 28 int showType ; Bande de Adafruit_NeoPixel = Adafruit_NeoPixel (PIXEL_COUNT, PIXEL_PIN, NEO_GRB + NEO_KHZ800) ; Tapper CapacitiveSensor = CapacitiveSensor (2, 4) ;
void setup() {tapper.set_CS_AutocaL_Millis(0xFFFFFFFF); / / désactiver autocalibrate sur le canal 1 - à titre d’exemple, Serial.begin(9600) ; strip.begin() ; strip.show(); / / initialise tous les pixels à ' off
}
void loop() {total1 long = tapper.capacitiveSensor(30) ;
Si (total1 > = 2000) {si (showType > 9) {showType = 0; startShow(showType);} else {startShow(showType) ; showType ++;}}
Serial.Print("\t") ; caractère de tabulation pour la fenêtre de débogage espacement Serial.print("\t") ; Serial.Print(Total1) ; impression capteur de sortie 1 Serial.print("\n") ;
}
void startShow(int i) {}
interrupteur (i) {case 0: colorWipe (bande. Color(0, 0, 0), 50) ; Noir/arrêt pause ;
cas 1: colorWipe (bande. Color(255, 0, 0), 50) ; Saut de rouge ;
cas 2: colorWipe (bande. Color(255, 96, 0), 50) ; saut d’orange ;
case 3: colorWipe (bande. Color(255, 255, 0), 50) ; jaune a besoin d’aide rupture ;
case 4: colorWipe (bande. Color(0, 255, 0), 50) ; pause verte ;
cas 5: colorWipe (bande. Color(0, 0, 255), 50) ; saut de bleu ;
case 6: colorWipe (bande. Color(38, 222, 220), 50) ; Sarcelle de la rupture ;
cas 7: colorWipe (bande. Color(75, 0, 13), 50) ; Saut de pourpre ;
cas 8: colorWipe (bande. Color(255, 0, 255), 50) ; Saut de rose ;
case 9: colorWipe (bande. Color(252, 253, 253), 50) ; blanc
} }
lightCycle int = 0 ;
Remplir les points un après l’autre avec une colorWipe Sub de couleur (uint32_t c, uint8_t attente) {pour (uint16_t j’ai = 0; i < strip.numPixels(); i ++) {strip.setPixelColor (i, c); strip.show() ; delay(wait);}}
Entrer une valeur de 0 à 255 pour obtenir une valeur de couleur. Les couleurs sont un transition r - g - b - retour à r. roue d’uint32_t (WheelPos octets) {WheelPos = 255 - WheelPos ; if (WheelPos < 85) {bande de retour. Couleur (255 - WheelPos * 3, 0, WheelPos * 3) ; } ElseIf (WheelPos < 170) {WheelPos-= 85 ; bande de retour. Couleur (0, WheelPos * 3, 255 - WheelPos * 3) ; } else {WheelPos-= 170 ; bande de retour. Couleur (WheelPos * 3, 255 - WheelPos * 3, 0) ; } }