koszi a gratulaciokat

idokozben megjott a kilencedik lecke, benne a gombbal
a hatralevo idot nem binarisan jelzi ki, hanem a nyolc leddel siman, 'sorosan'
pl. ha beallitod 5 percre, akkor az elso 4 led folyamatosan eg, az otodik villog, es igy megy szepen lefele. mikor 0-hoz er, akkor meg 5x1mp-et sipol
persze igy csak max 8 percrol tud visszaszamolni, de tanulgatni ez is eleg, aztan majd idovel ugyis akarok csinalni egy normalisat, 7 szegmenses, 2 vagy 4 digites kijelzovel, gombokkal vagy potmeterrel
na de a kapcsoloval egybol felhasznalobaratabb lesz, azt mar a Zasszony is fogja tudni hasznalni
a hangszorot a 11-es labra kotottem, ott ugy tunik nincs utban, ha megis, akkor pillanatok alatt le tudom szedni
ez a funyiros km-szamlalo nagyon jo, de az en tudasomtol meg nagyon messze van, pedig nem is jonne rosszul, az en udvarom is Qrva nagy
MOD: itt a forras. nem tul szep, de mukodik
Kód: Egész kijelölése
const byte speakerpin = 11;
unsigned long target = 0;
enum states {WAITING, COUNTING, ALARM} state = WAITING;
void setup()
{
Serial.begin(9600);
pinMode(speakerpin, OUTPUT);
for (int i=0; i<8; ++i)
{
pinMode(i, OUTPUT);
digitalWrite(i,LOW);
}
}
void loop()
{
switch (state)
{
case WAITING:
if (Serial.available())
{
int mins = Serial.read() - '0';
if (mins > 0 && mins < 9)
{
target = millis() + mins * 60000;
state = COUNTING;
Serial.print("starting timer with ");
Serial.print(mins);
Serial.println(" minutes");
Serial.end();
}
else
Serial.println("Number must be between 1 and 8 minutes!");
}
break;
case COUNTING:
{
int mins = (target - millis())/60000;
for (int i=0; i<8; ++i)
digitalWrite(i, i+1 <= mins);
digitalWrite(mins, (millis()%2000) > 1000);
if (millis() > target)
state = ALARM;
}
break;
case ALARM:
for (int i=0; i<8; ++i)
digitalWrite(i, HIGH);
for (int i=0; i<5; ++i)
{
while (millis() - target < 2000)
{
digitalWrite(speakerpin, HIGH);
delayMicroseconds(500);
digitalWrite(speakerpin, LOW);
delayMicroseconds(500);
}
delay(1000);
target = millis();
}
for (int i=0; i<8; ++i)
digitalWrite(i, LOW);
state = WAITING;
Serial.begin(9600);
break;
}
}
de nem akarom szetoffolni a topicot (bar mar keso

), inkabb keresek egy 'kezdo' temat (lattam van is egy, bar mar nagyon regota alszik), lenne ugyis par nagyon amator kerdesem...