Hey, please tell me if I am doing something wrong. There is my code which is supposed to control buttons.
#include <LiquidCrystal.h>
LiquidCrystal lcd(8, 9, 4, 5, 6, 7);
const int s0 = 2, s1 = 3, s2 = 10, s3 = 11, s4 = 12, buttonsPin=0;
// szczytywanie przyciskow
class Btn
{
public:
int analogRead_treshold=1000; //wartosc odczytu z pina analogowego dla konkretnego przycisku moze byc wyznaczona doswiadczalnie
int pin; //do ktorego pina sa podlaczone przyciski
int isPressed = 0;
Btn(int _analogRead_treshold, int _pin)
{
analogRead_treshold=_analogRead_treshold;
pin=_pin;
};
bool check() //funkcja przeladowana, sprawdza czy przycisk jest nacisniety - funkcja sama pobiera wartosc odczytu analogowego
{
if (analogRead(pin) > analogRead_treshold)
return true;
else
return false;
};
bool check(int _analogRead_input) //funckja przeladowana, sprawdza czy przycisk jest nacisniety - na podstawie wprowadzonego przy wywolaniu odczytu analogowego
{
if (_analogRead_input > analogRead_treshold)
return true;
else
return false;
}
int id()
{
return analogRead_treshold;
}
};
Btn enter(50, buttonsPin);
Btn back(195, buttonsPin);
Btn next(380, buttonsPin);
Btn prev(555, buttonsPin);
int read_btn()
{
int _analogRead = analogRead(buttonsPin);
int id;
if (_analogRead > 1000)
return 0;
else if (enter.check(_analogRead))
return enter.id;
else if (back.check(_analogRead))
return back.id;
else if (next.check(_analogRead))
return next.id;
else if (prev.check(_analogRead))
return prev.id;
}
void setup()
{
lcd.begin(16, 2);
lcd.setCursor(0,0);
lcd.print("MENU");
}
void loop()
{
}
And when it comes to
else if (enter.check(_analogRead))
return enter.id;
compiler says
“cannot convert ‘Btn::id’ from type ‘int (Btn::)()’ to type ‘int’”
What’s wrong?