//---------------------------------------
//Klasse Ampel
//---------------------------------------
class Ampel
{
public:
bool rotAn;
bool gelbAn;
bool gruenAn;
public:
Ampel();
void schalten();
void anzeigen();
};
Ampel::Ampel()
{
pinMode(2, OUTPUT);
pinMode(3, OUTPUT);
pinMode(4, OUTPUT);
rotAn = true;
gelbAn = false;
gruenAn = false;
}
void Ampel::schalten()
{
if (rotAn == true && gelbAn == false)
{
gelbAn = true;
}
else if (rotAn == true && gelbAn == true)
{
rotAn = false;
gelbAn = false;
gruenAn = true;
}
else if (gruenAn == true)
{
gruenAn = false;
gelbAn = true;
}
else if (rotAn == false && gelbAn == true)
{
gelbAn = false;
rotAn = true;
}
}
void Ampel::anzeigen()
{
digitalWrite(2, rotAn);
digitalWrite(3, gelbAn);
digitalWrite(4, gruenAn);
}
//---------------------------------------
//Arduino-Methoden
//---------------------------------------
Ampel* ampel;
void setup()
{
ampel = new Ampel();
}
void loop()
{
ampel->anzeigen();
delay(2000);
ampel->schalten();
}