I'm a newbie in arduino, I am want to make a function to add 1 to a variable once(like a pulse) and then add 1 every milisecond after 3 seconds using millis(); function.
`if (digitalRead(12)== LOW)
{
buttonPressTime=millis();
if(buttonPressTime==5)
{
number=number+1;
}
if(buttonPressTime>3000)
{
number=number+1;
}`
I don't know what went wrong. please help
here is the entire code--
bool num_array[10][7]=
{
//{a,b,c,d,e,f,g},//0
{0,1,1,1,1,1,1},//0
{0,0,0,0,1,1,0},//1
{1,0,1,1,0,1,1},//2
{1,0,0,1,1,1,1},//3
{1,1,0,0,1,1,0},//4
{1,1,0,1,1,0,1},//5
{1,1,1,1,1,0,1},//6
{0,0,0,0,1,1,1},//7
{1,1,1,1,1,1,1},//8
{1,1,0,1,1,1,1} //9
};
byte time = 5;
byte number;
unsigned long buttonPressTime;
void setup() {
for (byte i=2;i<=12;i++)
{
pinMode(i,OUTPUT);
}
pinMode(11,INPUT_PULLUP);
pinMode(12,INPUT_PULLUP);
}
void loop() {
if (digitalRead(12)== LOW)
{
number=number+1;
delay(200);
}
if (digitalRead(11)== LOW)
{
number=number-1;
delay(200);
}
seven_segment(number);
delay(1);
}
void seven_segment(int number)
{
byte ones;
byte tens;
if(number < 100 )
{
ones=number%10;
tens=(number-ones)/10;
}
choose_segments(tens);
pick_digit(1);
delay(time);
choose_segments(ones);
pick_digit(2);
delay(time);
}
void choose_segments(int num)
{
for(byte j = 0; j <= 6; j++)
{
digitalWrite(j+2,num_array[num][j]);
}
}
void pick_digit(int digit)
{
switch(digit)
{
case 1:
digitalWrite(9,HIGH);
delay(time);
digitalWrite(9,LOW);
break;
case 2:
digitalWrite(10,HIGH);
delay(time);
digitalWrite(10,LOW);
break;
}
}




