La tua funzione "scrivi" fa cose diverse dal scrivere, cioè gli fai aprire il file e non controlli più con if se dataFile è valido.
Crea funzioni che fanno solo una tipologia di cose.
Se ti piace come nome di funzione "scrivi" usalo ma perché non specificare anche dove scrive, cioè scrive in sd o in eeprom o altrove.
Quindi prova ad inserire nella funzione scrivi solo i dataFile.print ecc.
Ricorda anche che dentro i case non è cosa buona dichiarare le variabili, si può fare ma non è consigliato e per farlo serve un blocco di codice delimitato da {}.
Inoltre fallo funzionare e poi introduci una modifica alla volta, perché così sai quale modifica compromette il funzionamento.
Ciao.