arduino si riavvia da solo ... poca ram?

no, la print si occupa da sla della conversione, perchè è intelligente, in base a che tipo di variabile gli scrivi te la traduce automaticamente in stringa. Se invece della stringa volessi scrivere il valore "grezzo" dovresti usare una write

edit: lo \n è UN carattere che vuol dire a capo. Windows in effetti usa DUE caratteri, che sono \r seguito da uno \n, ma come vedi a te basta trovare lo \n

anche il # non ti serve, perchè quando finisce il file l'available ritorna 0