Comparazione di stringa letta da un array

Esatto, in C le stringhe non si possono comparare direttamente, perché sono vettori di caratteri. Inoltre, il nome di un vettore è di fatto un puntatore al suo inizio. Quindi, in sostanza, le stringhe si manipolano tramite puntatori.

Per confrontarle si usa strcmp(), come già suggerito, che prende come argomenti i puntatori alle due stringhe e confronta i loro contenuti.

Con un semplice if (a!=b) confronti i puntatori, per cui l'if sarà sempre vero, a meno che a e b non puntino esattamente alla stessa stringa.

Nota, infine, che se invece usi la classe String (cosa sconsigliatissima in un ambiente ristretto come Arduino), invece il confronto diretto è perfettamente lecito, in quanto la classe definisce gli operatori di confronto.

PS: Se una delle stringhe sta in flash, devi usare strcmp_P() e metterla al secondo posto.