Questo non va per due motivi:
-
dentro i case non si possono dichiarare variabili locali, quindi usa variabili globali o locali dichiarate prima dello switch.
-
Supponiamo che Ora = 1000, millis() restituisce pure 1000 e quindi cicla finché
l'espressione (1000 < 1000 + 1000) è vera. Vera lo sarà sempre anche quando Ora = 2000 e millis() restituisce 2000.
Ok il tentativo di usare millis() per bloccare il flusso del programma nello stesso identico modo
della funzione delay() non ha molto senso, tanto vale usare delay(1000).
Quando hai dei dubbi (e li dovresti avere spesso) stampa il valore delle variabili e di millis() ad esempio per vedere i valori in chiaro.
Ciao.