Questo sito utilizza cookies, anche di terze parti, per mostrare pubblicità e servizi in linea con il tuo account. Leggi l'informativa sui cookies.
Username: Password: oppure
Elettronica - AnalogRead valori casuali
Forum - Elettronica - AnalogRead valori casuali

Avatar
Thejuster (Admin)
Guru^2


Messaggi: 2005
Iscritto: 04/05/2008

Segnala al moderatore
Postato alle 22:06
Martedì, 21/07/2020
Buonasera, uso semplicemente questo codice per leggere i pin da A0 ad A3

su A0 è collegato un sensore e funziona bene
sugli altri pin per ora niente tutto vuoto.

il problema sta che quando leggo il valore sul pin A0 cambia, cambia anche il valore degli altri pin.
Non sò da cosa possa dipendere.

il codice è questo

Codice sorgente - presumibilmente C++

  1. int sens1 = analogRead(A0);
  2.   int sens2 = analogRead(A1);
  3.   int sens3 = analogRead(A2);
  4.   int sens4 = analogRead(A3);
  5.  
  6.  
  7.   Serial.print(sens1);
  8.   Serial.print("|");
  9.   Serial.print(sens2);
  10.   Serial.print("|");
  11.   Serial.print(sens3);
  12.   Serial.print("|");
  13.   Serial.println(sens4);




Normalmente dovrei avere tipo

388 - 0 - 0 - 0 giusto?

invece ho

388 - 382 - 375 - 372

anche se sopra a quei pin non è presente nulla.

può dipendere che per ottenere la lettura devo necessariamente collegarci qualcosa? e quindi ho questo bug?
o il codice del serial.print è sbagliato?


PM Quote
Avatar
Carlo (Member)
Guru


Messaggi: 662
Iscritto: 29/01/2018

Segnala al moderatore
Postato alle 15:25
Mercoledì, 22/07/2020
sembra che parli di Arduino...

L'impedenza degli ingressi analogici di ardiuno è di circa 10 Mohm, dei segnali spurii generati da cellulari, antenne trasmittenti, alimentatori swiching, motori elettrici e la rete elettrica potrebbero riuscire a caricare il condensatorino posto all'interno di arduino sugli ingressi analogici, anche se mi sembra improbabile.
Sempre che sui pin non utilizzati, non tieni collegato un cavetto che poi non è collegato a nulla, che farebbe da antenna.

Per verificare se il problema è di tipo interferenziale, collega sui pin inutilizzati delle resistenze da 300 ohm verso massa, avendo cura di effettuare collegamenti più corti possibile.

Se il problema scompare, hai capito il perché. :k:

Ultima modifica effettuata da Carlo il 22/07/2020 alle 21:17


in programmazione tutto è permesso
PM Quote
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 6069
Iscritto: 03/01/2010

Segnala al moderatore
Postato alle 9:27
Giovedì, 23/07/2020
Collega i pin che non ti servono tranquillamente a massa (se sono sempre e comunque ingressi), altrimenti ti rientra il segnale che stai misurando (e anche la frequenza di rete).

Puoi usare una resistenza da 330 o 470 ohm (valori standard) 1/4 w se i pin, in qualsiasi momento, possono essere anche di uscita.

Ultima modifica effettuata da nessuno il 23/07/2020 alle 9:29


Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti (uno dei padri fondatori del moderno Calcolo delle probabilità) chiamava il gioco del Lotto Tassa sulla stupidità.
PM Quote