Devi studiare le basi del linguaggio che è fortemente tipizzato.
Hai due variabili con lo stesso nome ma tipi differenti:
// variabile globale di tipo intero senza segno (1 byte)
uint8_t secondario=0 ;
Mentre qui la variabile è locale e cessa di esistere fuori dal blocco
di codice in cui è dichiarata. Il blocco di codice è { tuo codice }.
if (vIn > 14){
PORTD |= (1<<PD7); //Pin 7(PD7) HIGH rele +led rosso
String secondario = "12/24 V";
}
Come vedi qui dichiari secondario di tipo String, ma come detto
questa volta è in ambito locale. Tutte le variabili locali esistono solo
all'interno del blocco di codice in cui sono dichiarate.
Studia:
- l'ambito di visibilità delle variabili, globale, locale.
- I tipi di variabile.
Secondo me basta dichiarare globale: String secondario; e poi:
if (vIn > 14){
PORTD |= (1<<PD7); //Pin 7(PD7) HIGH rele +led rosso
secondario = "12/24 V";
Ciao.