Conversió d’analògic a digital (sèrie de lectura analògica): conceptes bàsics d’Arduino

Proveu El Nostre Instrument Per Eliminar Problemes





En aquests conceptes bàsics d’Arduino intentem entendre el procediment d’implementació del codi en què un senyal analògic extern s’alimenta a l’entrada analògica Arduino i es tradueix o es converteix en una lectura digital proporcional corresponent. Aquí fem servir una resistència variable en forma de pot com a font de senyal analògica.

Sèrie de lectura analògica

En aquest exemple aprenem el mètode de lectura d'una entrada analògica d'un dispositiu extern com un potenciòmetre, que és un dispositiu electromecànic dissenyat per implementar una resistència variable en un circuit mitjançant un funcionament manual.



Es pot utilitzar un Arduino per mesurar la magnitud de la tensió que surt d’un potenciòmetre per tal de llegir i identificar la seva resistència variable. Això es pot fer alimentant el voltatge al port d'entrada analògic Arduino com a valor analògic.

Aquí veurem com s’aplica l’anterior després d’establir una comunicació en sèrie a través de l’Arduino i l’ordinador enllaçat.



Es requereix maquinari

Tauler Arduino

Potenciòmetre de 10 quilos

Funcionament del circuit

Tal com es mostra al diagrama anterior, connecteu els tres cables que surten de l'olla als ports Arduino.

El fil d’un dels cables externs de l’olla s’assigna amb el terra o la línia negativa del tauler.

L’altre cable extern extrem lliure lliure es connecta amb el + 5V de la placa.

El que queda és el cable central de l'olla, que es finalitza amb l'entrada analògica de la placa Arduino.

Quan es gira l’eix del pot, la resistència a través del conductor central i el terminal exterior canvien de més alt a més baix i viceversa en funció de quin costat s’acosti el braç lliscant.

Per exemple, quan el braç lliscant es gira cap al cable de + 5V, el cable central s’acosta a 5V i tendeix a adquirir tot el valor quan toca el cable assignat de 5V. De la mateixa manera, quan l’eix lliscant es mou cap al cable de terra, el cable central tendeix a assolir un potencial zero.

La tensió d'alimentació que varia linealment per sobre del cable central de l'olla és llegida per l'entrada analògica arduino per interpretar-la en una resistència de l'olla que correspon a la seva variació.

L'Arduino inclou un circuit de convertidor analògic-digital intern que interpreta eficaçment el moviment anterior del pot i el converteix en números entre 0 i 1023.

Una posició particular sobre l’eix del pot provoca que Arduino tradueixi un nombre proporcional entre 0 i 1023 i, per als valors finals de 5V i zero volts, les interpretacions són òbviament 0 i 1023.

Al programa esmentat, la funció de configuració només ha de ser activada per iniciar comunicacions en sèrie, la velocitat és de 9600 bits de dades per segon, a través de la vostra placa Arduino i l'ordinador.

L'ordre esperat té la forma següent:

Serial.begin (9600)

Posteriorment, al bucle principal del vostre codi, apliquem una variable per tal de fixar el valor de resistència (que seria el que es discuteix entre 0 i 1023, només adequat per a un tipus de dades int) rebut dels cables potencials:

int sensorValue = analogRead (A0)

Per concloure, imprimiu aquesta informació a la finestra de sèrie com a valor decimal (DEC). Podeu utilitzar l'ordre Serial.println () per implementar-lo a l'última línia de codi:

Serial.println (sensorValue, DEC)

Després d'això, sempre que s'iniciï Serial Monitor al domini de desenvolupament d'Arduino (es fa clic al botó que hi ha immediatament a la part dreta del botó 'Puja' a la capçalera del programa).

veuríem una cadena consistent de dígits entre 0-1023, que correspon a la posició de rotació variable de l’eix del pot.

Si aturem la rotació de l’eix del pot en algun instant, es mostrarà el número instantani corresponent a la pantalla de l’Arduino, això tornaria a canviar proporcionalment a mesura que anem canviant la posició de l’eix del pot.

El codi

/ *
AnalogReadSerial
Llegeix una entrada analògica al pin 0, imprimeix el resultat al monitor sèrie.
Connecteu el pin central d’un potenciòmetre al pin A0 i els pins externs a + 5V i a terra.

Aquest codi d'exemple és de domini públic.
* /

// la rutina de configuració s'executa una vegada quan premeu reiniciar:
configuració nul·la () {
// inicialitzar la comunicació serial a 9600 bits per segon:
Serial.begin (9600)
}

// la rutina del bucle es repeteix una vegada i una altra per sempre:
bucle buit () {
// llegiu l'entrada del pin analògic 0:
int sensorValue = analogRead (A0)
// imprimeix el valor que has llegit:
Serial.println (sensorValue)
delay (1) // delay entre les lectures per obtenir estabilitat
}




Anterior: Supervisió de l'estat d'un commutador (sèrie de lectura digital) - Fonaments bàsics d'Arduino Següent: Circuit regulador de tensió ajustable a la xarxa d’1,25 V a 120 V