Условот "IF", како што го имаш напишано
if (GP5) // ako e nula
}
е исполнет доколку вредноста на GP5 е различна од '0'. Значи доколку сакаш условот да биде исполнет во случај кога GP5 e '0', тогаш треба да напишеш:
if (GP5 == 0)
ili
if (!PG5)
каде знакот " ! " е знак за негација.
Исто така, сите команди кои сакаш да се извршат доколку е исполнет условот, се стават во загради:
if (uslov) {
komanda1;
komanda2;
.
.
komandaN;
} else {
komanda1;
komanda2;
.
.
komandaN;
}
освен доколку имаш само една команда.
Кај тебе после else-от ќе се изврши само првиот ред, односно функцијата за доцнење, додека:
GPIO.GP2=0; // izlezen gp2 stavi na nula t.e iskluci rele
ќе се извршува во секој случај, односно, без оглед на условот. Ова значи дека секогаш релето ќе ти се исклучува. Затоа и овој ред треба да го ставеш во заградите кои припаѓаат на else делот.