CAP3 - (Software Parte 1) Boton y potenciómetro.

jmcadsl

Miembro Honorífico
17 Ene 2010
1.023
España
Provincia
Madrid
Bien, pues una vez que ya tenemos funcionando el botónm y el potenciometro vamos a ver el código que el controlador va a usar para sacarles partido.

El botón:
El botón cuando es pulsado deja pasar la tensión de 5V por lo que el valor de la lectura del pin digital o analógico donde lo hayamos conectado será 1023 (lectura analogica) o HIGH (lectura digital)
Pongo este sencillo código para ver como actua, lo voy comentando las lineas importantes:

Código:
//CAP3.1 Tutorial aTreef CBOX (Boton)
#include <Wire.h> 
#include <LiquidCrystal_I2C.h>// Debemos instalar la libreria LiquidCrystal_I2C en la carpeta "libraries" del arduino IDE

LiquidCrystal_I2C lcd(0x27,16,2);  // direccion i2c del LCD y columnas,lineas

byte pinboton=8; //declaramos que la variable pinboton es 8 porque es el pin donde lo hemos conectado

void setup()
{
  pinMode(pinboton, INPUT);//Inidcamos que es en puerto 8 lo utilizaremos como una entrada 

  lcd.init();//Inicializamos el LCD
  lcd.backlight();//Encendemos la luz
  lcd.print(" CAP3. BOTON");
  delay(2000);//Hacemos una pausa de 2 segundos
}

void loop()
{

if (digitalRead(pinboton)==HIGH)//Si la lectura del puerto 8 nos da una señal HIGH (5v) entonces esta el boton pulsado
    {
     lcd.setCursor(0,1);//Posicionamos cursor 
     lcd.print(" Boton  pulsado  ");
 
    }

else //Sino nos da HIGH es que no esta pulsado...
     {
     lcd.setCursor(0,1);//Posicionamos cursor 
     lcd.print("Boton no pulsado ");
     }

}

¡¡¡ Fácil verdad !!!

El potenciometro:
Ahora es el turno del potenciometro, aqui estamos obligados a colocarlo en un puerto analogico para poder hacer una lectura escalada , desde 0 hasta 1023 (que corresponderían con los 5v, es decir con el potenciometro a la minima resistencia)
El código:
Código:
//CAP3.2 Tutorial aTreef CBOX (Potenciometro)
#include <Wire.h> 
#include <LiquidCrystal_I2C.h>// Debemos instalar la libreria LiquidCrystal_I2C en la carpeta "libraries" del arduino IDE

LiquidCrystal_I2C lcd(0x27,16,2);  // direccion i2c del LCD y columnas,lineas

byte pinpot=A0; //declaramos que la variable pinpot es A0 porque es el pin Analógico 0 donde lo hemos conectado


void setup()
{
  pinMode(pinpot, INPUT);//Inidcamos que es el puerto analogico 0 lo utilizaremos como una entrada 

  lcd.init();//Inicializamos el LCD
  lcd.backlight();//Encendemos la luz
  lcd.print("CAP3. Potenciome");//Solo nos caben 16 caracteres!!
  delay(2000);//Hacemos una pausa de 2 segundos
}

void loop()
{
lcd.setCursor(0,1);//Posicionamos cursor 
lcd.print(analogRead (pinpot)); //aqui hacemos la lectura del puerto donde tenemos el potenciometro, a medida que lo vayamos girando veremos como el valor va cambiando desde 0 hasta 1023
delay(200);//Pausa de 0,2 segundo
lcd.setCursor(0,1);
lcd.print("    ");//Limpiamos la segunda linea del lcd para volver a escribir el dato y que no se sobrepongan los numeros
}

Bueno yo creo que hasta ahora esta todo muy facilito....¿alguna pregunta?
En el próximo capitulo utilizaremos la lectura del boton y potenciometro para manejarnos por un pequeño menu de ejemplo para que así cada uno pueda crearse sus menus a medida.

Un saludo.
 
Última edición:
10 Jun 2012
67
mataro
Provincia
barcelona
muchas gracias compañero por tener tanta paciencia con nosotros , espero que tengas tiempo para poner un pequeño video demostrativo las funciones y el manejo por los menus ( espero perdones mi impaciencia por verlo acabado )
 

jmcadsl

Miembro Honorífico
17 Ene 2010
1.023
España
Provincia
Madrid
  • Iniciador del tema
  • Moderador
  • #4
No hay de que compañeros....
La verdad es que es un "currillo" jejeje, pero si relamente es positivo continuaremos hasta el final!!

Saludos
Jorge
 
27 Dic 2008
154
españa
Provincia
madrid
Buenas Jorge,

te sigo a medida que vas colgando capítulos, ya que al igual que otros estoy introduciendome en el mundo ardu. Esto engancha como the walking dead:yb624[1]::yb624[1]:

Una pregunta, viendo el indice creado, en que capítulo conectas y programas el reloj??
 
8 Nov 2013
62
España
Provincia
Cadiz
Bien, pues una vez que ya tenemos funcionando el botónm y el potenciometro vamos a ver el código que el controlador va a usar para sacarles partido.

El botón:
El botón cuando es pulsado deja pasar la tensión de 5V por lo que el valor de la lectura del pin digital o analógico donde lo hayamos conectado será 1023 (lectura analogica) o HIGH (lectura digital)
Pongo este sencillo código para ver como actua, lo voy comentando las lineas importantes:

Código:
//CAP3.1 Tutorial aTreef CBOX (Boton)
#include <Wire.h> 
#include <LiquidCrystal_I2C.h>// Debemos instalar la libreria LiquidCrystal_I2C en la carpeta "libraries" del arduino IDE

LiquidCrystal_I2C lcd(0x27,16,2);  // direccion i2c del LCD y columnas,lineas

byte pinboton=8; //declaramos que la variable pinboton es 8 porque es el pin donde lo hemos conectado

void setup()
{
  pinMode(pinboton, INPUT);//Inidcamos que es en puerto 8 lo utilizaremos como una entrada 

  lcd.init();//Inicializamos el LCD
  lcd.backlight();//Encendemos la luz
  lcd.print(" CAP3. BOTON");
  delay(2000);//Hacemos una pausa de 2 segundos
}

void loop()
{

if (digitalRead(pinboton)==HIGH)//Si la lectura del puerto 8 nos da una señal HIGH (5v) entonces esta el boton pulsado
    {
     lcd.setCursor(0,1);//Posicionamos cursor 
     lcd.print(" Boton  pulsado  ");
 
    }

else //Sino nos da HIGH es que no esta pulsado...
     {
     lcd.setCursor(0,1);//Posicionamos cursor 
     lcd.print("Boton no pulsado ");
     }

}

¡¡¡ Fácil verdad !!!

El potenciometro:
Ahora es el turno del potenciometro, aqui estamos obligados a colocarlo en un puerto analogico para poder hacer una lectura escalada , desde 0 hasta 1023 (que corresponderían con los 5v, es decir con el potenciometro a la minima resistencia)
El código:
Código:
//CAP3.2 Tutorial aTreef CBOX (Potenciometro)
#include <Wire.h> 
#include <LiquidCrystal_I2C.h>// Debemos instalar la libreria LiquidCrystal_I2C en la carpeta "libraries" del arduino IDE

LiquidCrystal_I2C lcd(0x27,16,2);  // direccion i2c del LCD y columnas,lineas

byte pinpot=A0; //declaramos que la variable pinpot es A0 porque es el pin Analógico 0 donde lo hemos conectado


void setup()
{
  pinMode(pinpot, INPUT);//Inidcamos que es el puerto analogico 0 lo utilizaremos como una entrada 

  lcd.init();//Inicializamos el LCD
  lcd.backlight();//Encendemos la luz
  lcd.print("CAP3. Potenciome");//Solo nos caben 16 caracteres!!
  delay(2000);//Hacemos una pausa de 2 segundos
}

void loop()
{
lcd.setCursor(0,1);//Posicionamos cursor 
lcd.print(analogRead (pinpot)); //aqui hacemos la lectura del puerto donde tenemos el potenciometro, a medida que lo vayamos girando veremos como el valor va cambiando desde 0 hasta 1023
delay(200);//Pausa de 0,2 segundo
lcd.setCursor(0,1);
lcd.print("    ");//Limpiamos la segunda linea del lcd para volver a escribir el dato y que no se sobrepongan los numeros
}

Bueno yo creo que hasta ahora esta todo muy facilito....¿alguna pregunta?
En el próximo capitulo utilizaremos la lectura del boton y potenciometro para manejarnos por un pequeño menu de ejemplo para que así cada uno pueda crearse sus menus a medida.

Un saludo.

yo no me entero de na .... tan torpe soy??? de soldar y todo eso no tengo problema pero esto de codificar las funciones....:yb668[1]:
 
8 Nov 2013
62
España
Provincia
Cadiz
Hola Jorge Nueva duda.

He programado el boton y el potenciometro.

En cuanto al boto le meto el codigo y lo cargo y me pote Cap3. Boton y a los 2 segundos me pone boton no pulsado y al ratito cambia a boton pulsado y a los dos segundo pone boton no pulsado, asi sucesibamente. es esto correcto??? Por mas que miro el programa no veo que tenga que cambiar de boton no pulsado a pulsado.

En cuanto al potenciometro pone Cap3. Potenciometro y a los dos segundos me pone 899 y lo giro y no hace nada
Creo que esto esta mal no.
 

jmcadsl

Miembro Honorífico
17 Ene 2010
1.023
España
Provincia
Madrid
  • Iniciador del tema
  • Moderador
  • #11
Hola Jomco.
Debes tener algo mal conectado....puedes hacer esta prueba....
Carga el.programa y en vez del cableado del botón coge solo un cable que salga del pin digital...enciende la.placa y ahora cada vez que toques con la punta de ese cable la.parte metálica del conector usb de la placa debe poner boton pulsado.

Prueba y me cuentas
 
Arriba