Created
June 22, 2015 02:44
-
-
Save gelicia/fd67649baccbb150feab to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#include <Adafruit_NeoPixel.h> | |
#define LLEDPIN 10 | |
#define LBUTTONPIN 2 | |
#define RLEDPIN 11 | |
#define RBUTTONIN 3 | |
int leftOldButtonState = 0; | |
int leftCount = 0; | |
int rightOldButtonState = 0; | |
int rightCount = 0; | |
int buttonOnSensitivity = 1; | |
int buttonWaitSensitivity = 5; | |
int leftButtonState = HIGH; | |
int rightButtonState = HIGH; | |
int lSignalOn = 0; | |
int rSignalOn = 0; | |
Adafruit_NeoPixel l_arrow = Adafruit_NeoPixel(3, LLEDPIN, NEO_GRB + NEO_KHZ800); | |
Adafruit_NeoPixel r_arrow = Adafruit_NeoPixel(3, RLEDPIN, NEO_GRB + NEO_KHZ800); | |
void setup() { | |
Serial.begin(9600); | |
pinMode(LBUTTONPIN, INPUT); | |
pinMode(RBUTTONIN, INPUT); | |
pinMode(LLEDPIN, OUTPUT); | |
pinMode(RLEDPIN, OUTPUT); | |
} | |
void loop() { | |
leftButtonState = digitalRead(LBUTTONPIN); | |
rightButtonState = digitalRead(RBUTTONIN); | |
if (leftButtonState == LOW && leftOldButtonState == LOW){ | |
if(lSignalOn == 0 && leftCount >= buttonOnSensitivity){ | |
lSignalOn = 1; | |
} | |
else if(lSignalOn == 1 && leftCount >= buttonWaitSensitivity){ | |
lSignalOn = 0; | |
} | |
leftCount++; | |
} | |
else{ | |
if (leftButtonState != leftOldButtonState){ | |
leftCount = 0; | |
} | |
else { | |
leftCount++; | |
} | |
} | |
if (rightButtonState == LOW && rightOldButtonState == LOW){ | |
if(rSignalOn == 0 && rightCount >= buttonOnSensitivity){ | |
rSignalOn = 1; | |
} | |
else if(rSignalOn == 1 && rightCount >= buttonWaitSensitivity){ | |
rSignalOn = 0; | |
} | |
rightCount++; | |
} | |
else{ | |
if (rightButtonState != rightOldButtonState){ | |
rightCount = 0; | |
} | |
else { | |
rightCount++; | |
} | |
} | |
if (lSignalOn == 1){ | |
lOn(); | |
} | |
else { | |
lOff(); | |
} | |
if (rSignalOn == 1){ | |
rOn(); | |
} | |
else { | |
rOff(); | |
} | |
Serial.println(leftCount); | |
leftOldButtonState = leftButtonState; | |
rightOldButtonState = rightButtonState; | |
delay(100); | |
} | |
void lOn() { | |
if (leftCount % 2 == 0){ | |
lOff(); // I want this to blink when it's on | |
} | |
else { | |
for(uint16_t i=0; i<l_arrow.numPixels(); i++) { | |
l_arrow.setPixelColor(i, l_arrow.Color(255,0,0)); | |
} | |
l_arrow.show(); | |
} | |
} | |
void lOff() { | |
for(uint16_t i=0; i<l_arrow.numPixels(); i++) { | |
l_arrow.setPixelColor(i, l_arrow.Color(0,0,0)); | |
} | |
l_arrow.show(); | |
} | |
void rOn() { | |
if (rightCount % 2 == 0){ | |
rOff(); //I want this to blink when it's on | |
} | |
else { | |
for(uint16_t i=0; i<r_arrow.numPixels(); i++) { | |
r_arrow.setPixelColor(i, r_arrow.Color(255,0,0)); | |
} | |
r_arrow.show(); | |
} | |
} | |
void rOff() { | |
for(uint16_t i=0; i<r_arrow.numPixels(); i++) { | |
r_arrow.setPixelColor(i, r_arrow.Color(0,0,0)); | |
} | |
r_arrow.show(); | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment