Circuito RC - Misura con Arduino (pin compromessi?)

Salve a tutti,
sono Lorenzo, newbie di Arduino e del mondo elettronico in generale.
Ho acquistato da qualche giorno una scheda Arduino UNO e sto facendo i primi test, dopo aver letto guide online e diversi esempi di codice.
In particolare, volevo testare la carica di un capacitore, fornendo una tensione di 5V ad un pin (12), e misurando tramite un pin analogico (A0) la tensione al capo positivo del condensatore.
Il circuito assemblato è un classico RC: pin di alimentazione in serie ad una resistenza da 10K ohm, a sua volta in serie al capacitore (elettrolitico da 100uF) collegato a massa tramite il GND di Arduino.
Questo è il codice utilizzato:

const int chargePin = 12;
const int analogPin = 0;

float TensioneCap;

void setup() {
  delay(5000); //Ritardo iniziale, per avere tempo di aprire il terminale.
  pinMode(chargePin, OUTPUT);
  digitalWrite(chargePin, HIGH); //il pin di alimentazione del capacitore
  
  Serial.begin(9600);  
}

void loop() {
  delay(100);
  TensioneCap = (float) ((analogRead(analogPin)*5)/1024); //La tensione in Volt
  Serial.println(TensioneCap);
}

In effetti al primo run, ho visto il capacitore caricarsi, portandosi da una tensione di 1V, ad una di 4V (precedentemente avevo usato le variabili int, quindi con troncamento). Dopo ho commesso un gravissimo errore: togliere l'alimentazione staccando l'USB.
In teoria questo porta ad una scarica velocissima del condensatore, con costante di tempo molto bassa.
Questa scarica può bruciare i pin di Arduino? Provando a ridare alimentazione al circuito, mi sono reso conto che non veniva più trasmesso niente nella seriale e quindi ho subito pensato ad una compromissione della porta analogica A0. Però se faccio girare altri sketch, l'A0 funziona, anche se la trasmissione dei dati non inizia istantaneamente, ma dopo qualche manciata di secondi, nonostante nessun delay!
Vi ringrazio in anticipo.

E questo cos'è??

delay(5000); //Ritardo iniziale, per avere tempo di aprire il terminale.

Quando apri il terminale Arduino si resetta e lo sketch parte da zero.
Quindi aspetta 5 secondi (da quando hai aperto il terminale) e poi esegue il resto.
Se togli il delay lo sketch prosegue subito con le altre operazioni.

PaoloP:
E questo cos'è??

delay(5000); //Ritardo iniziale, per avere tempo di aprire il terminale.

Quando apri il terminale Arduino si resetta e lo sketch parte da zero.
Quindi aspetta 5 secondi (da quando hai aperto il terminale) e poi esegue il resto.
Se togli il delay lo sketch prosegue subito con le altre operazioni.

Va bene. In questo modo si dà modo all'utente di aprire il monitor seriale. Se l'Arduino inizia a spedire a raffica e satura il buffer seriale, non si può più aprire la comunicazione con la scheda né si può più fare l'upload dello sketch. E' una misura anti-blocco, se ne è parlato tanto. Magari può abbassare il delay a 2 secondi ma quando si scrive sulla seriale è sempre bene metterlo.

Quindi posso stare tranquillo, non ho fuso nessun pin? (Ho fatto nuovamente la prova, facendo lampeggiare un led e misurando la tensione all'anodo con gli stessi pin usati prima).
Inoltre vi chiedo una piccola cosa: Ogni volta che modifico il circuito tolgo sempre l'alimentazione da usb. Potrei cambiare componenti lasciando Arduino ON? (Magari togliendo i fili che alimentano il circuito). So che potrà apparire come una domanda stupida, però potrebbe essermi molto utile per il futuro!

Non è una pratica consigliata.
Io stacco sempre l'alimentazione.

Ok, grazie mille!
Per quanto riguarda i pin, con il test che ho fatto posso escluderne la rottura?
In teoria se alimentano correttamente e il pin analogico legge, direi di si. Mi confermate?

lorit777:
Ok, grazie mille!
Per quanto riguarda i pin, con il test che ho fatto posso escluderne la rottura?
In teoria se alimentano correttamente e il pin analogico legge, direi di si. Mi confermate?

Se il pin lavora correttamente, non hai bruciato nulla.

PaoloP:
Non è una pratica consigliata.
Io stacco sempre l'alimentazione.

Concordo.