|     Inicio    |   |         |  |   FOROS      |  |      |      
   Elastix - VoIP B4A (Basic4Android) App inventor 2 PHP - MySQL
  Estación meteorológica B4J (Basic4Java) ADB Shell - Android Arduino
  AutoIt (Programación) Visual Basic Script (VBS) FireBase (BD autoactualizable) NodeMCU como Arduino
  Teleco - Emisora de A.M. Visual Basic Cosas de Windows Webs interesantes
T Búsqueda en este sitio:


.

Arduino en español
Circuitos con Arduino - Juan Antonio Villalpando

-- Tutorial de iniciación a Arduino --

Volver al índice del tutorial

___________________________

5.- Potenciómetro.

Si queremos introducir distintos niveles de tensión, no podemos utilizar los terminales 0 al 13, ya que son Entrada/Salidas DIGITALES,

se utilizan los A0 a A5, las denominadas ENTRADAS ANALÓGICAS.

Al mover el potenciómetro, obtenemos valores comprendido entre 0 y 1023. Los observamos en el Serial Monitor.

Si queremos que los niveles extremos estén comprendidos entre 0 y 1, hacemos un cambio de base, para verlo descomentamos estas líneas.

deceroauno = valor / 1023;
Serial.println(deceroauno);

Fíjate cómo se declara la entrada ANALÓGICA A2.

int P2 = A2; // Termina en punto y coma.

Aunque a veces puedes verlo así...

#define P2 A2 // Aquí no termina en punto y coma.
int
P2;

Código
/*
  Juan A. Villalpando
  kio4.com
 */
 
int P2 = A2; // ANALOG IN: A2, va al terminal intermedio del potenciómetro.
float valor = 0; float deceroauno; void setup() { // Los terminales ANALOG IN no hay que configurarlos porque siempre son de entrada. Serial.begin(9600); } void loop() { valor = analogRead(P2); Serial.println(valor); // deceroauno = valor / 1023; // Serial.println(deceroauno); // valor = map(valor, 0, 1023, 48, 2468); // Serial.println(valor); delay(20); }

En ANALÓGICO (A0, A1, A2, A3, A4, A5)

IMPORTANTE: analogRead(P2); para leer el terminal 2 analógico. Importante que lo recuerdes.

En DIGITAL (2.... 13)

IMPORTANTE: digitalWrite(pin13, HIGH); para escribir en el terminal 13 digital. Importante que lo recuerdes.

IMPORTANTE: digitalRead(pin2); para leer el terminal 2 digital. Importante que lo recuerdes.

_________________

- Mapear.

- Se observa que podemos obtener 1024 niveles distintos, independientemente del potenciómetro que pongamos. Un potenciómetro de 10 es idóneo para la amplia mayoría de aplicaciones.

- En el ejemplo anterior hemos visto como la gama de valores de 0 a 1023 la transformamos de 0 a 1.

- Esto se puede hacer con un comando llamado map.

- Supongamos que obtenemos valores de 0 a 1023 y queremos que esos valores cambien su base de 48 a 2468, por ejemplo.

Función map.

y = map(valor, minimo, maximo, cambiominimo, cambiomaximo);

Siempre se mantendrán 1024 niveles de tensión aunque cambiemos los extremos.

Activa estas líneas en el código anterior y observa el Serial Monitor.

valor = map(valor, 0, 1023, 48, 2468);
Serial.println(valor);

¿Dónde nos puede servir la función map?

- Lo vermos más adelante. Imagínate que tenemos una LDR (Resistencia Variable con la Luz), cuando le llega poca luz presenta 54.000 óhmios y cuando recibe mucha luz presenta 720 óhmios. Queremos que cuando tenga su valor mínimo 720 óhmios presente un cero 0 y cuando tenga su valor máximo de 54.000 óhmios presente 100.

Haríamos algo así:

valor = map(valor, 720, 54000, 0, 100);

________________________________

 

- Mi correo:
juana1991@yahoo.com
- KIO4.COM - Política de cookies. Textos e imágenes propiedad del autor:
© Juan A. Villalpando
No se permite la copia de información ni imágenes.
Usamos cookies propias y de terceros que entre otras cosas recogen datos sobre sus hábitos de navegación y realizan análisis de uso de nuestro sitio.
Si continúa navegando consideramos que acepta su uso. Acepto    Más información