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

Tema en 'Tutorial Controlador' iniciado por jmcadsl, 14 Oct 2014.

  1. jmcadsl

    jmcadsl Miembro Honorífico

    Mensajes:
    852
    Registrado:
    17 Ene 2010
    Ubicación:
    España
    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:

    Insertar CODE, HTML o PHP:
    //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:
    Insertar CODE, HTML o PHP:
    //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: 15 Oct 2014
  2. mateo69

    mateo69

    Mensajes:
    58
    Registrado:
    10 Jun 2012
    Ubicación:
    mataro
    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 )
     
  3. jvsc87

    jvsc87

    Mensajes:
    183
    Registrado:
    11 Mar 2014
    Ubicación:
    Santa Cruz de Tenerife
    Millones de gracias, tutoriales asi no tienen precio!!!
     
  4. jmcadsl

    jmcadsl Miembro Honorífico

    Mensajes:
    852
    Registrado:
    17 Ene 2010
    Ubicación:
    España
    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
     
  5. lanchone

    lanchone

    Mensajes:
    16
    Registrado:
    31 Jul 2012
    Ubicación:
    Barcelona Capital
    Ni te se ocurra dejarlo a medias!!!!.

    Estoy seguro que poco a poco se irá enganchándo mas gente a este hilo.

    Saludos
     
  6. medina

    medina

    Mensajes:
    629
    Registrado:
    1 Jul 2009
    Ubicación:
    españa
    Estas son las labores que nos hacen crecer ..........:yb641[1]::yb641[1]::yb641[1]:tienes a uno mas en la cantera
     
  7. dem365

    dem365

    Mensajes:
    88
    Registrado:
    27 Dic 2008
    Ubicación:
    españa
    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. jmcadsl

    jmcadsl Miembro Honorífico

    Mensajes:
    852
    Registrado:
    17 Ene 2010
    Ubicación:
    España
    Buen apunte!!!
    Acabo de editar el índice, en el capitulo 4 trataremos el tema del reloj.

    Saludos
     
  9. jomco

    jomco

    Mensajes:
    62
    Registrado:
    8 Nov 2013
    Ubicación:
    España
    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]:
     
  10. jomco

    jomco

    Mensajes:
    62
    Registrado:
    8 Nov 2013
    Ubicación:
    España
    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.
     
  11. jmcadsl

    jmcadsl Miembro Honorífico

    Mensajes:
    852
    Registrado:
    17 Ene 2010
    Ubicación:
    España
    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
     
  12. djdevil666bcn

    djdevil666bcn

    Mensajes:
    299
    Registrado:
    29 Mar 2013
    Ubicación:
    Sant Andreu de la Barca
    Acuarios, electrónica y programación.... Es mi paraíso. Hablando de hobbys.


    Gran trabajo, y ánimos para llegar hasta el final.