Doppio controllo separato

Bravo! :slight_smile:
Qualche nota:

  1. se usi LOW, HIGH, false, true per coerenza devi usare una variabile di tipo bool, pur essendo associati nell'ambiente di Arduino a LOW e false il valore 0 e a HIGH e true il valore 1.

  2. LOW e HIGH solitamente si usano per fare confronti con digitalRead o per assegnare uno stato con digitalWrite; negli altri casi si usano false e true, ma funziona comunque:
    Interchanging HIGH/LOW with true/false - #7 by system

  3. per convenzione, le costanti hanno nomi maiuscoli:
    const byte PIN_LED1=12; const byte PIN_LED2=8;

  4. le variabili int sono a 16 bit, ma per piccoli valori tra 0 e 255 o tra -127 e +127 puoi usare byte e char. Più chiaramente puoi usare
    int8_t
    uint8_t
    int16_t
    uint16_t
    int32_t
    uint32_t
    che sono con segno o senza segno (u=unsigned, senza segno) a 8, 16 o 32 bit.

  5. evita l'oggetto String, che frammenta la memoria. Se non vuoi usare le stringhe classiche del C, è stata inventata la libreria SafeString:
    Classe "SafeString" una valida alternativa alla pessima "String" ...