ayuda con IF

Hola amigos, soy nuevo en esto y estoy haciendo un programa que consiste en 3 pulsadores (arriba, abajo y ok) para subir o bajar el valor de una variable, mientras tanto, poder verla en el visualizador led si es que mi comparación de IF está bien hecha, el tema es que la prenda llegó al valor antes de dar, OK, espero que haya explicado bien y pueda ayudarme.
adjunto mi programa

#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#include <LiquidCrystal.h>
LiquidCrystal_I2C lcd(0x27,20,4);

int conta= 50;

void setup() {
lcd.begin(20,4); //indico lcd 20*4
lcd.backlight(); //activo luz
lcd.init(); // activo pantalla
lcd.clear();
Serial.begin(9600);
pinMode(6,INPUT);
//sensors.begin();
}

void loop () {
primera();
elok ();
// aca antes de setear se me dispara solo el led al pasar conta= 55 :confused:
if(conta> 55){
digitalWrite(3, HIGH);
}
if(conta< 55){
digitalWrite(3, LOW);
}
}

void primera(){
lcd.setCursor(0,0);
lcd.print("Valor");
lcd.setCursor(5,1);
lcd.print(conta);
if( digitalRead(6)== HIGH){
delay(10);
if (digitalRead(6)==LOW){

conta= 1+conta; }
}
if( digitalRead(7)== HIGH){
delay(10);
if (digitalRead(7)==LOW){

conta--; }
}
}
//---------------------------------//
void elok (){
if (digitalRead(8)==HIGH){
delay(10);
if (digitalRead(8)==LOW){
lcd.setCursor(5,2);
lcd.print("ACEPTADA");
}
}
}