Reloj binario con adafruit_neopixel

Buenas, así es se trata de un reloj binario y debe ser así porque es como me lo impuso el tutor, tras darle vueltas al tema de los pulsadores para programarlo me di cuenta que resultaría muy complicado aplicarlo asi que busque y adapte un programa que ya venia hecho pero que me parece mas practico, lo que ocurre que no se como hacer para que el arduino introduzca los pulsos para que realice el conteo.
Espero que este codigo sea mas facil de entender en caso contrario intentare aclarar lo que pueda.

#include <Adafruit_NeoPixel.h>
#define pixel_pin 6
#define pixel_count 20
Adafruit_NeoPixel strip= Adafruit_NeoPixel (20, 6, NEO_GRB + NEO_KHZ800);

int second;
int minute;
int hour;

void setup() 
{
   strip.begin();
   strip.show();
   test();
}

void loop()
{
 if (hour == 0)
 {
  hour = 24;
 }

  int hourUnit = hour % 10;
  int minuteUnit = minute % 10;
  int secondUnit = second % 10;
//SECONDS 0-9 (0000/1001)
  if(secondUnit == 1 || secondUnit == 3 || secondUnit == 5 || secondUnit == 7 || secondUnit == 9)
  {
    strip.setPixelColor(0,0,255,0);
    strip.show();
  }
  else
  {
    strip.setPixelColor(0,255,255,255);
    strip.show();
  }

  if(secondUnit == 2 || secondUnit == 3 || secondUnit == 6 || secondUnit == 7)
  {
    strip.setPixelColor(1,0,255,0);
    strip.show();
  }
  else
  {
    strip.setPixelColor(1,255,255,255);
    strip.show();
  }

  if(secondUnit == 4 || secondUnit == 5 || secondUnit == 6 || secondUnit == 7)
  {
    strip.setPixelColor(2,0,255,0);
    strip.show();
  }
  else
  {
    strip.setPixelColor(2,255,255,255);
    strip.show();
  }

  if(secondUnit == 8 || secondUnit == 9)
  {
    strip.setPixelColor(3,0,255,0);
    strip.show();
  }
  else
  {
    strip.setPixelColor(3,255,255,255);
    strip.show();
  }
//SECONDS 10-50 (000/101)

 if((second >= 10 && second < 20) || (second >= 30 && second < 40) || (second >= 50 && second < 60))
  {
    strip.setPixelColor(6,0,255,0);
    strip.show();
  }
  else
  {
    strip.setPixelColor(6,255,255,255);
    strip.show();
  }

  if(second >= 20 && second < 40)
  {
    strip.setPixelColor(5,0,255,0);
    strip.show();
  }
  else
  {
    strip.setPixelColor(5,255,255,255);
    strip.show();
  }

  if(second >= 40 && second < 60)
  {
    strip.setPixelColor(4,0,255,0);
    strip.show();
  }
  else
  {
    strip.setPixelColor(4,0,255,0);
    strip.show();

  }
 
 // MINUTE 0-9 (0000/1001)
 
 if(minuteUnit == 1 || minuteUnit == 3 || minuteUnit == 5 || minuteUnit == 7 || minuteUnit == 9)
  {
    strip.setPixelColor(7,255,255,0);
    strip.show();
  }
  else
  {
    strip.setPixelColor(7,255,255,255);
    strip.show();
  }

  if(minuteUnit == 2 || minuteUnit == 3 || minuteUnit == 6 || minuteUnit == 7)
  {
    strip.setPixelColor(8,255,255,0);
    strip.show();
  }
  else
  {
    strip.setPixelColor(8,255,255,255);
    strip.show();
  }

  if(minuteUnit == 4 || minuteUnit == 5 || minuteUnit == 6 || minuteUnit == 7)
  {
    strip.setPixelColor(9,255,255,0);
    strip.show();
  }
  else
  {
    strip.setPixelColor(9,255,255,255);
    strip.show();
  }

  if(minuteUnit == 8 || minuteUnit == 9)
  {
    strip.setPixelColor(10,255,255,0);
    strip.show();
  }
  else
  {
    strip.setPixelColor(10,255,255,255);
    strip.show();
  }

// MINUTE 10-50 (000-101)

if((minute >= 10 && minute < 20) || (minute >= 30 && minute < 40) || (minute >= 50 && minute < 60))
  {
    strip.setPixelColor(13,255,255,0);
    strip.show();
  }
  else
  {
    strip.setPixelColor(13,255,255,255);
    strip.show();
  }

  if(minute >= 20 && minute < 40)
  {
    strip.setPixelColor(12,255,255,0);
    strip.show();
  }
  else
  {
    strip.setPixelColor(12,255,255,255);
    strip.show();
  }

  if(minute >= 40 && minute < 60)
  {
    strip.setPixelColor(11,255,255,0);
    strip.show();
  }
  else
  {
    strip.setPixelColor(11,255,255,255);
    strip.show();
  }

//HOURS 0-9 (0000-1001)
if(hourUnit == 1 || hourUnit == 3 || hourUnit == 5 || hourUnit == 7 || hourUnit == 9)
  {
    strip.setPixelColor(14,255,0,255);
    strip.show();
  }
  else
  {
    strip.setPixelColor(14,255,255,255);
    strip.show();
  }

  if(hourUnit == 2 || hourUnit == 3 || hourUnit == 6 || hourUnit == 7)
  {
    strip.setPixelColor(15,255,0,255);
    strip.show();
  }
  else
  {
    strip.setPixelColor(15,255,255,255);
    strip.show();
  }

  if(hourUnit == 4 || hourUnit == 5 || hourUnit == 6 || hourUnit == 7)
  {
    strip.setPixelColor(16,255,0,255);
    strip.show();
  }
  else
  {
    strip.setPixelColor(16,255,255,255);
    strip.show();
  }

  if(hourUnit == 8 || hourUnit == 9)
  {
    strip.setPixelColor(17,255,0,255);
    strip.show();
  }
  else
  {
    strip.setPixelColor(17,255,255,255);
    strip.show();
  }
//HOURS 10-20 (00-10)

if(hour >= 10 && hour < 20)
  {
    strip.setPixelColor(19,255,0,255);
    strip.show();
  }
  else
  {
    strip.setPixelColor(19,255,255,255);
    strip.show();
  }

  if(hour >= 20 && hour <= 24)
  {
    strip.setPixelColor(18,255,0,255);
    strip.show();
  }
  else
  {
    strip.setPixelColor(18,255,255,255);
    strip.show();
  }

  if (second >= 60)
  {
    minute++;
    second = 0;
  }
  else
  {
    second++;
  }

  if(minute >= 60)
  {
    hour++;
    minute = 0;
  }
  else
  {
    minute++;
  }

  if(hour >= 24)
  {
    hour = 1;
  }
  else
  {
    hour++;
  }
  delay(250);
}
void test()
{
  strip.setPixelColor(0,255,255,255);
  strip.setPixelColor(1,255,255,255);
  strip.setPixelColor(2,255,255,255);
  strip.setPixelColor(3,255,255,255);
  strip.setPixelColor(4,255,255,255);
  strip.setPixelColor(5,255,255,255);
  strip.setPixelColor(6,255,255,255);
  strip.setPixelColor(7,255,255,255);
  strip.setPixelColor(8,255,255,255);
  strip.setPixelColor(9,255,255,255);
  strip.setPixelColor(10,255,255,255);
  strip.setPixelColor(11,255,255,255);
  strip.setPixelColor(12,255,255,255);
  strip.setPixelColor(13,255,255,255);
  strip.setPixelColor(14,255,255,255);
  strip.setPixelColor(15,255,255,255);
  strip.setPixelColor(16,255,255,255);
  strip.setPixelColor(17,255,255,255);
  strip.setPixelColor(18,255,255,255);
  strip.setPixelColor(19,255,255,255);
  strip.setPixelColor(20,255,255,255);
  strip.show(); 
}

Surbyte lei las normas del foro y me gustaria que me aclarases que hago exactamente mal cuando hago mi post para evitarlo, gracias de antemano!!.