In 'C' NON esiste la sintasi che hai usato tu e quello che hai messo tra parentesi fa tutt'altro ...
Immagina analogico = 15 allora ...
if ( 10 <= analogico < 20 ) viene interpretato, partendo da destra a sinistra, comparo analogico con 20, se è minore ho TRUE altrimenti ho false, dopo di che comapro tale valore TRUE o FALSE con 10 ... dato che TRUE su Arduno è 1 e FALSE è 0, con 15 la prima condizione da TRUE la seconda (10 <= TRUE) che sarebbe (10 <= 1) è sempre falsa ;=
Devi usare gli operatori booleani per unire DUE confronti separati ...
if ( (10 <= analogico) && (analogico < 20) ) ... quindi due confronti e un AND che a sua volta confronta i risultati
Guglielmo
P.S.: vedo che nel tempo che io scrivevo tutta la "papparedella" hai avuto già risposte