Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <Servo.h>
- #include <Adafruit_NeoPixel.h>
- #define RESET 7
- #define SENSE_A 2
- #define SENSE_B 3
- #define FAN_A 10
- #define FAN_B 11
- #define DISPLAY 6
- #define N_LEDS 64
- #define PLACE_A 0
- #define PLACE_B 39
- #define MAX_SIGNAL 2000
- #define MIN_SIGNAL 700
- Adafruit_NeoPixel strip = Adafruit_NeoPixel(N_LEDS, DISPLAY, NEO_GRB + NEO_KHZ800);
- Servo fanA, fanB;
- int fanOnTimeA = 0;
- int fanOnTimeB = 0;
- bool goalAOn = false;
- bool goalBOn = false;
- bool goalA = false;
- bool goalB = false;
- int scoreA = 0;
- int scoreB = 0;
- int prevA = 0;
- int prevB = 0;
- int prevReset, currReset;
- const bool zero[24] = {false, false, true, true, true, true, true, false,
- false, false, true, false, false, false, true, false,
- false, false, true, true, true, true, true, false};
- const bool one[24] = {false, false, true, true, true, true, true, false,
- false, false, false, false, false, false, false, false,
- false, false, false, false, false, false, false, false};
- const bool two[24] = {false, false, true, true, true, false, true, false,
- false, false, true, false, true, false, true, false,
- false, false, true, false, true, true, true, false};
- const bool three[24] = {false, false, true, true, true, true, true, false,
- false, false, true, false, true, false, true, false,
- false, false, true, false, true, false, true, false};
- const bool four[24] = {false, false, true, true, true, true, true, false,
- false, false, false, false, true, false, false, false,
- false, false, true, true, true, false, false, false};
- const bool five[24] = {false, false, true, false, true, true, true, false,
- false, false, true, false, true, false, true, false,
- false, false, true, true, true, false, true, false};
- const bool six[24] = {false, false, true, false, true, true, true, false,
- false, false, true, false, true, false, true, false,
- false, false, true, true, true, true, true, false};
- const bool seven[24] = {false, false, true, true, true, true, true, false,
- false, false, true, false, false, false, false, false,
- false, false, true, false, false, false, false, false};
- const bool eight[24] = {false, false, true, true, true, true, true, false,
- false, false, true, false, true, false, true, false,
- false, false, true, true, true, true, true, false};
- const bool nine[24] = {false, false, true, true, true, true, true, false,
- false, false, true, false, true, false, true, false,
- false, false, true, true, true, false, true, false};
- const bool numbers[10] = {&zero, &one, &two, &three, &four, &five, &six, &seven, &eight, &nine};
- /*
- void setNumberA(int sA, uint32_t color){
- /*
- int a = 0;
- for (int i = 0; i < 24; i++) {
- if (i >= 0 && i <= 7) a = 7 - i;
- else if (i >= 8 && i <= 15) a = 7 - i + 8;
- else if (i >= 16 && i <= 23) a = 7 - i + 16;
- if (number[i]) strip.setPixelColor(a, color);
- else strip.setPixelColor(a, strip.Color(0,0,0));
- }
- strip.show();
- int a = 0;
- for (int i = 0; i < 24; i++) {
- if (i >= 0 && i <= 7) a = 7 - i;
- else if (i >= 8 && i <= 15) a = 7 - i + 8;
- else if (i >= 16 && i <= 23) a = 7 - i + 16;
- if (numbers[sA][i]==) strip.setPixelColor(a, color);
- else strip.setPixelColor(a, strip.Color(0,0,0));
- }
- strip.show();
- }
- void setNumberB(int sB, uint32_t color){
- int a = 0;
- for (int i = 0; i < 24; i++) {
- if (i >= 40 && i <= 7) a = 7 - i + 40;
- else if (i >= 48 && i <= 55) a = 7 - i + 48;
- else if (i >= 56 && i <= 63) a = 7 - i + 56;
- if (numbers[sB][i]) strip.setPixelColor(a, color);
- else strip.setPixelColor(a, strip.Color(0,0,0));
- }
- strip.show();
- }*/
- void senseGoalA() {
- if (!goalAOn) goalAOn = true;
- return;
- }
- void senseGoalB() {
- if (!goalBOn) goalBOn = true;
- return;
- }
- void setup() {
- pinMode(RESET, INPUT_PULLUP);
- pinMode(SENSE_A, INPUT);
- pinMode(SENSE_B, INPUT);
- Serial.begin(9600);
- fanA.attach(FAN_A);
- fanB.attach(FAN_B);
- fanA.writeMicroseconds(MAX_SIGNAL);
- fanB.writeMicroseconds(MAX_SIGNAL);
- Serial.println("MAXON");
- delay(3000);
- fanA.writeMicroseconds(MIN_SIGNAL);
- fanB.writeMicroseconds(MIN_SIGNAL);
- Serial.println("MAXOFF");
- strip.begin();
- strip.setBrightness(150);
- attachInterrupt(digitalPinToInterrupt(SENSE_A), senseGoalA, RISING);
- attachInterrupt(digitalPinToInterrupt(SENSE_B), senseGoalB, RISING);
- fanA.writeMicroseconds(MIN_SIGNAL+300);
- fanB.writeMicroseconds(MIN_SIGNAL+300);
- delay(3000);
- }
- void loop() {
- if (goalAOn && !goalA) {
- goalA = true;
- goalAOn = false;
- fanA.writeMicroseconds(MAX_SIGNAL-900);
- scoreA += 1;
- fanOnTimeA = millis();
- } else if (goalA && (millis() - fanOnTimeA >= 4000)) {
- goalA = false;
- fanOnTimeA = 0;
- fanA.writeMicroseconds(MIN_SIGNAL+100);
- }
- if (goalBOn && !goalB) {
- goalB = true;
- goalBOn = false;
- fanB.writeMicroseconds(MAX_SIGNAL-900);
- scoreB += 1;
- fanOnTimeB = millis();
- } else if (goalB && (millis() - fanOnTimeB >= 4000)) {
- goalB = false;
- fanOnTimeB = 0;
- fanB.writeMicroseconds(MIN_SIGNAL+100);
- }
- if (prevA != scoreA) {
- //setNumberA(scoreA, strip.Color(255, 0, 0));
- prevA = scoreA;
- }
- if (prevB != scoreB) {
- //setNumberB(scoreB, strip.Color(0, 0, 255));
- prevB = scoreB;
- }
- currReset = digitalRead(RESET);
- if (currReset != prevReset && prevReset == true) {
- scoreA = 0;
- scoreB = 0;
- prevReset = currReset;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement