Premessa: ho un background informatico e di progettazione elettronica ne so ben poco, quindi per favore, siate clementi anche se scriverò baggianate.
Sto provando a:
Collegare un estremità di una resistenza al Pin 13
Collegare l' altra estremità al pin A3
Far girare questo sketch:
int analogPin = A3; // potentiometer wiper (middle terminal) connected to analog pin 3
// outside leads to ground and +5V
int val = 0; // variable to store the value read
// the setup function runs once when you press reset or power the board
void setup() {
// initialize digital pin LED_BUILTIN as an output.
pinMode(LED_BUILTIN, OUTPUT);
Serial.begin(9600);
digitalWrite(LED_BUILTIN, HIGH); // turn the LED on (HIGH is the voltage level)
}
// the loop function runs over and over again forever
void loop() {
//digitalWrite(LED_BUILTIN, HIGH); // turn the LED on (HIGH is the voltage level)
delay(50); // wait for a second
val = analogRead(analogPin); // read the input pin
Serial.println(val); // debug value
}
Quello che ottengo ha una forma sinusoidale con derivata sinusoidale:
Il grafico somiglia molto a rumore che si presenta quando il pin A3 non è collegato.
Parli di resistenza, ma presumo si tratti di un potenziometro, cioè una resistenza variabile da 0÷X, dove X è il valore in ohm misurato tra terminare 1 e 3.
Quell'esempio dovrebbe visualizzare un valore nel range 0÷1023 a secondo della posizione del cursore. Però è richiesto collegare anche il GND al potenziometro.
Se non è un potenziometro ed è una resistenza qual'è il suo valore?
Ciao! La tua risposta mi ha fatto effettivamente nascere un sospetto. Effettivamente avevo collegato male sulla breadboard e il circuito era aperto.
Però la domanda a questo punto e valida: perchè vedo ondeggiare se A3 non è collegato? Mi sarei aspettato di vedere 0 costante.
Altra domanda, come si studia un circuito del genere? (Ho usato effettivamente una resistenza e non un potenziometro. Ho provato resistenze di diversa dimensione e sembra non cambiare nulla.
Se L' uscita del pin 13 è 5V (giusto? o 3.3? ), quanto vale la caduta di tensione ai capi della resistenza? Per rispondere mi serve il potenziale di A3. Che potenziale devo considerare per questo pin? Quanto vale la corrente? E' una costante fissata dalla scheda o è da calcolare?
Si, ho letto la presentazione e si sei confuso. Però ti fai le giuste domande.
Prova gli estremi. Cioè zero resistenza (filo) e val avrà valore 1023 (tutti i 10 bit di risoluzione accesi). L'altro estremo è resistenza infinita e lo hai già verificato.
Il motivo di quel segnale è derivato dalla impedenza del circuito di ingresso. Tutti i circuiti sono afflitti dalla impedenza. L'impedenza è una resistenza che varia in base alla frequenza. Il circuito di ingresso A3 in questo caso ha resistenza alta (circa 100kOhm) per una frequenza del segnale nel range 1 ÷ 15000 Hz. La resistenza si riduce via via nel confronti della frequenza > 15000Hz.
Una impedenza di ingresso più alta possibile è desiderata poiché assorbe minore corrente dal circuito di uscita a cui è stata collegata. Mentre per i circuiti di uscita è desiderabile una impedenza la più bassa possibile < 100Ohm.
L'unico problema dei circuiti ad alta impedenza è che se lasciati liberi (senza un potenziale di riferimento) amplificano di tutto, incluse le emissioni elettromagnetiche spurie emesse da tutti i dispositivi elettrici. Quella onda molto probabilmente è una sinusoide a 50Hz, questa è la frequenza della rete a 230AC che hai nelle prese di casa.
L'uscita di un pin sulla UNO è di 5V (HIGH) perché la MCU lavora con questa tensione. Per altre MCU invece è 3.3 (HIGH). Per la corrente continua (cioè frequenza 0Hz) puoi immaginarti il pin A3 connesso con una resistenza di 100Kohm verso GND. Quindi se colleghi pin 13 e pin A3 attraverso una resistenza da 100KOhm abbiamo un partitore di tensione con rapporto 0.5 e 5V x 0.5 = 2.5V e val si aggira attorno a 511. Se non fosse per le emissioni spurie che sono a frequenza variabile. Si può abbassare l'impedenza tramite un condensatore tra A3 e GND, ad esempio 100nF (nano Farad) e l'onda dovrebbe diminuire di ampiezza.
A questo livello arduino è quasi di intralcio, servirebbe prima prendere confidenza con le leggi fondamentali della elettronica. Fare qualche esperimento pratico con la legge di Ohm quindi resistenza e diodo LED.
Non capisco, perché parli di pin 13? Se ti occorre il pin con uscita 5V c'è il pin 5V che è persino serigrafato, come tutti gli altri. Il pin 13 (D13) è quello del LED interno (LED_BUILTIN) marcato "L", accanto proprio al pin 13). Anche messo a HIGH, usare l'uscita del pin D13 come riferimento non è corretto (i pin digitali tra l'altro non possono erogare molta corrente) e non è affidabile, non solo perché non hai specificato il valore della resistenza che hai provato a mettere, ma soprattutto perché a te serve un partitore e non una semplice resistenza verso 5V (e persino nello sketch che hai postato è scritto come collegare il potenziometro). Ti serve un riferimento a 5V? Usa il pin 5V!
Quindi lascia perdere il LED_BUILTIN ed il pin 13, prenditi un potenziometro e collegalo come scritto nella prima riga dello sketch, e funzionerà.
Quindi per i pin di ingresso considero 100KOhm verso GND e per i pin di uscita una resistenza tendente a 0 ( ma che c' è) verso l' alimentazione?
Definizione di impedenza inoltre se non ricordo male era concetto analogo alla resistenza ma nel dominio dei fasori ( ovvero AC ), giusto?
PS: ma quindi se collego direttamente uscita con entrata, a causa dell' alta impedenza sull' entrata, il circuito è ancora funzionante e non rischio di bruciare nulla, giusto?
Uso il PIN13 perchè non ho un potenziometro e con l' esempio volevo imparare a pilotare correttamente un pin piuttosto che fare tutto sull' alimentazione
No, in serie alla uscita. Certo se l'uscita è HIGH possiamo disegnarla connessa tra vcc e il pin. Se è LOW la R la disegniamo tra GND e il pin. Ma in verità per i circuiti di uscita si impone una resistenza serie.
mmm...non farei questa affermazione legata alla impedenza, ma si è certamente possibile collegare uscita con un ingresso. Così pure due o più ingressi connessi ad una uscita. Mentre più uscite connesse assieme è meglio evitarle causa guasti, sebbene per alcune MCU questa tecnica di collegare più uscite assieme è stata usata e ampiamente documentata nei fogli tecnici dei produttori. Si faceva questa cosa per raddoppiare la capacità di erogare corrente. Ad esempio se un pin può al massimo erogare 8mA due pin ne possono erogare 16 e tre pin 24mA. Ma con arduino non si fa più questa cosa.
Circa, nel senso che quello è l'ordine di grandezza, ma non un valore su cui fare un preciso affidamento. Se poi all'ingresso viene attivata la resistenza di pull-up interna, allora diventano circa 20k..50k verso il positivo.
e per i pin di uscita una resistenza tendente a 0 ( ma che c' è) verso l' alimentazione?
Una resistenza (in serie) che diventa via via più grande mano a mano che ci si avvicina ai limiti di corrente dall'uscita, fino a circa 120Ω per un ArduinoUno con l'uscita in cortocircuito. Qui ho scritto una muccata... bisognerebbe misurare l'effettiva corrente di cortocircuito... avevo pensato ai 40mA ammessi, ma con quella corrente l'uscita è ancora alta.
Definizione di impedenza inoltre se non ricordo male era concetto analogo alla resistenza ma nel dominio dei fasori ( ovvero AC ), giusto?
Giusto, ogni volta che compare una reattanza (induttiva o capacitiva) dovuta alla variazione di tensione e corrente, la resistenza diventa un'impedenza, ma qui possiamo considerarle sinonimi.
se collego direttamente uscita con entrata, a causa dell' alta impedenza sull' entrata, il circuito è ancora funzionante e non rischio di bruciare nulla, giusto?
Ni. Le cose si bruciano superando la corrente, la tensione, o la temperatura, entro cui sono dichiarate funzionanti dal costruttore. Sicuramente un'uscita a bassa impedenza si collega senza problemi ad un ingresso ad alta impedenza, a patto che anche le tensioni fornite e accettate siano compatibili. Ogni ingresso ha anche dei diodi collegati verso GND e verso Vcc. Se si forniscono ad un ingresso tensioni negative rispetto a GND o superiori a Vcc, i diodi entrano in conduzione come dei cortocircuiti, e gli esiti possono andare dal semplice malfunzionamento al disastroso