Utilizzo pin0 e pin1 come digitali

Sto tentando di utilizzare i pin0 e pin1 come pin digitali per gestire dei fotoaccoppiatori. (ho bisogno di diversi pin digitali e volevo utilizzare anche questi 2).

Quando carico lo sketch mi da il seguente errore:

avrdude: stk500_getsync(): not in sync: resp=0x00

Se utilizzo qualsiasi altro pin digitale non ho problemi, carico lo sketch tranquillamente e tutto funziona correttamente.

Non possono essere utilizzati come tutti gli altri pin digitali o occorre dare qualche comando particolare?

Grazie

ciao

I pin 0 e 1 sono quelli usati per la comunicazione seriale di arduino. Si possono usare come pin digitali però tutto quello che ci attacchi andrà a "disturbare" la comunicazione seriale, da qui l'errore avrdude: stk500_getsync(): not in sync: resp=0x00.
una soluzione è quella di rendere "removibile" quello che colleghi ai pin (magari con un jumper) e di scollegarli quando devi caricare uno sketch.
Ti ricordo che anche i pin analogici possono essere usati come digitali.

ciao
pippo72

Puoi usare anche le entrate analogiche come pin digitali che hanno i numeri da 14 a 19.
Ciao Uwe

Quindi se ho ben capito, se scollego i fili prima di caricare lo sketch e li ricollego dopo, tutto funziona correttamente.
Ora ci provo
Grazie

NO - non ha funzionato,

Ho modificato le definizioni

#define xxx 0
#define xxx 1

ho scollegato i fili da questi piedini e caricato lo sketch ma non succede nulla

li ho riportati

#define xxx 9
#define xxx 10

ho scollegato i fili da questi piedini e caricato lo sketch e tutto funziona perfettamente.

ho rifatto la stessa prova scollegando i fili anche s non era necessario solo per fare gli stessi passaggi ma senza risultato

danlocat:
Quindi se ho ben capito, se scollego i fili prima di caricare lo sketch e li ricollego dopo, tutto funziona correttamente.

ho scollegato i fili da questi piedini e caricato lo sketch ma non succede nulla

che vuol dire che non succede nulla ?

non e' che poi usi la seriale o il serial monitor ?

Intendi dire se uso il Serial.begin etc?

si per il debug, provo a togliere anche questo, ma pensavo che il segnale uscisse solo attraverso la scheda USB -

Ok riprovo così :slight_smile:

si, ma il chip che gestisce l'USB e' collegato fisicamente ai pin 0 e 1
Quindi li puoi usare, ma devi disabilitare la seriale

come ti hanno consigliato, se hai porte nalogiche libere, usale, funzionano anche in digitale

Puoi usare anche i pin 0 e 1 per altri usi ma, ma se usi la seriale ricordati di mettere sempre un delay(2000) prima del Serial.begin() così da dare modo all'IDE di poter riuscire a comunicare con la scheda PRIMA che il tuo sketch occupi la linea seriale.

Ringrazio e mi scuso per il tempo trascorso ma mi sono dovuto dedicare ad altre attività :frowning:

Ho provato a caricare lo sketch scollegando i fili al pin 0 e 1 e a ricollegarli successivamente - Funziona tutto correttamente.

Ora provo von il delay 2000 consigliato, ma male che vada metto un interruttore su questi collegamenti per scollegarli quando carico lo sketch e riattivarli quando deve girare il programma .

Il delay serve principalmente se spedisci dati al computer, per evitare che lo sketch, appena partito, ti occupi la seriale e ti impedisca di aprire la connessione dal PC.
Se invece hai qualcosa collegato materialmente a quei 2 pin, ti conviene inserire un paio di jumper subito dopo i pin in modo che quando devi caricare lo sketch nuovo ti basta aprire questi ponticelli, senza dover smontare tutto.

Grazie :slight_smile:

Ho optato per i jumpers