So I'm new (to the forums, and the study of robotics), and am working on writing a code that adds count to a variable that will in turn change the display of a 7-segment display based on 4 buttons each representing a bit in a 4-bit setup
so here's what I have so far:
// Zane
// 7-Segment binary button
// set up
void setup()
{
// 7-segment dispaly
pinMode(2, OUTPUT);
pinMode(3, OUTPUT);
pinMode(4, OUTPUT);
pinMode(5, OUTPUT);
pinMode(6, OUTPUT);
pinMode(7, OUTPUT);
pinMode(8, OUTPUT);
pinMode(9, OUTPUT);
// buttons
pinMode(10, INPUT);
pinMode(11, INPUT);
pinMode(12, INPUT);
pinMode(13, INPUT);
digitalWrite(9, 1); // start with the "dot" off
}
void loop()
{
// set each binary button to 0 for 0
int binary_3 = 0;
if (binary_3 > 1)
{
binary_3 =0
}
int binary_2 = 0;
if (binary_2 > 1)
{
binary_2 =0
}
int binary_1 = 0;
if (binary_1 > 1)
{
binary_1 =0
}
int binary_0 = 0;
if (binary_0 > 1)
{
binary_0 =0
}
// =====================================
// Button Press area.
// Press binary button and adds 1
// since conditions set before, if the button goes over 1, reset
//
// ======================================
// Create light up sequence
// Zero
if (binary_3 == 0 && binary_2 == 0 && binary_1 == 0 && binary_0 == 0)
{
digitalWrite(2, 0);
digitalWrite(3, 0);
digitalWrite(4, 0);
digitalWrite(5, 0);
digitalWrite(6, 0);
digitalWrite(7, 0);
digitalWrite(8, 1);
delay(1000);
}
// One
if (binary_3 == 0 && binary_2 == 0 && binary_1 == 0 && binary_0 == 1)
{
digitalWrite(2, 1);
digitalWrite(3, 0);
digitalWrite(4, 0);
digitalWrite(5, 1);
digitalWrite(6, 1);
digitalWrite(7, 1);
digitalWrite(8, 1);
delay(1000);
}
// Two
if (binary_3 == 0 && binary_2 == 0 && binary_1 == 1 && binary_0 == 0)
{
digitalWrite(2, 0);
digitalWrite(3, 0);
digitalWrite(4, 1);
digitalWrite(5, 0);
digitalWrite(6, 0);
digitalWrite(7, 1);
digitalWrite(8, 0);
delay(1000);
}
// Three
if (binary_3 == 0 && binary_2 == 0 && binary_1 == 1 && binary_0 == 1)
{
digitalWrite(2, 0);
digitalWrite(3, 0);
digitalWrite(4, 0);
digitalWrite(5, 0);
digitalWrite(6, 1);
digitalWrite(7, 1);
digitalWrite(8, 0);
delay(1000);
}
// Four
if (binary_3 == 0 && binary_2 == 1 && binary_1 == 0 && binary_0 == 0)
{
digitalWrite(2, 1);
digitalWrite(3, 0);
digitalWrite(4, 0);
digitalWrite(5, 1);
digitalWrite(6, 1);
digitalWrite(7, 0);
digitalWrite(8, 0);
delay(1000);
}
// Five
if (binary_3 == 0 && binary_2 == 1 && binary_1 == 0 && binary_0 == 1)
{
digitalWrite(2, 0);
digitalWrite(3, 1);
digitalWrite(4, 0);
digitalWrite(5, 0);
digitalWrite(6, 1);
digitalWrite(7, 0);
digitalWrite(8, 0);
delay(1000);
}
// Six
if (binary_3 == 0 && binary_2 == 1 && binary_1 == 1 && binary_0 == 0)
{
digitalWrite(2, 0);
digitalWrite(3, 1);
digitalWrite(4, 0);
digitalWrite(5, 0);
digitalWrite(6, 0);
digitalWrite(7, 0);
digitalWrite(8, 0);
delay(1000);
}
// Seven
if (binary_3 == 0 && binary_2 == 1 && binary_1 == 1 && binary_0 == 1)
{
digitalWrite(2, 0);
digitalWrite(3, 0);
digitalWrite(4, 0);
digitalWrite(5, 1);
digitalWrite(6, 1);
digitalWrite(7, 1);
digitalWrite(8, 1);
delay(1000);
}
// Eight
if (binary_3 == 1 && binary_2 == 0 && binary_1 == 0 && binary_0 == 0)
{
digitalWrite(2, 0);
digitalWrite(3, 0);
digitalWrite(4, 0);
digitalWrite(5, 0);
digitalWrite(6, 0);
digitalWrite(7, 0);
digitalWrite(8, 0);
delay(1000);
}
// Nine
if (binary_3 == 1 && binary_2 == 0 && binary_1 == 0 && binary_0 == 0)
{
digitalWrite(2, 0);
digitalWrite(3, 0);
digitalWrite(4, 0);
digitalWrite(5, 1);
digitalWrite(6, 1);
digitalWrite(7, 0);
digitalWrite(8, 0);
delay(1000);
}
}
I do know that I'm going to need to have a delay after the button press for debouncing, but how am I making sure the button (which is set as active high) to read being pressed in the right time?