Arduino, Tutoriales, YouTube

#6 – Botones en Arduino y comandos IF / ELSE

En este SEXTO capítulo aprenderemos a utilizar los botones y tambien los comandos IF y ELSE.

https://www.youtube.com/watch?v=orbNupI92KU

En este punto debes tener el siguiente circuito:

Código del capítulo gratis:

void setup() {
  pinMode(2, OUTPUT);
  pinMode(13, INPUT);
}
void loop() {
  int estadoboton = digitalRead(2);
  if (estadoboton == 1) {
    delay(1000);
    digitalWrite(13, HIGH);
  } else {
    delay(1000);
    digitalWrite(13, LOW);
  }
}

Material para el curso:



Guia de materiales

Transcripción del capítulo:

Bienvenidos Chicas chicos al capítulo número seis.

Mi nombre es Edgar Pons y estáis como ya sabéis en el curso de Arduino. Hoy voy a poner botones.

Vamos a controlar con software externo con un botón y que el Arduino pueda leer el estado de ese botón y hacer cosas. Vamos a utilizar un como este de aquí nuestro Arduino de confianza y luego un pulsador puede ser de este tipo que es un pulsador pequeñito que cuando lo pulsas deja pasar la electricidad entre estos dos patitas tiene posición, vale tenéis que mirar porque tiene posición o sea, no es lo mismo si lo colocamos, así que si lo colocamos así.

También podéis tener uno de estos que lo que hace es dejar pasar si os fijáis aquí pone N C N O y C Vale

NO es normalmente abierto y N C es normalmente cerrado, así que. Hasta el normalmente abierto nunca pasará electricidad y desde el hasta el NC siempre pasará la electricidad menos cuando lo pulses que cambian.

Que es esto de aquí funciona de la siguiente forma. esto sirve para conectar componentes entre sí, lo que haremos nosotros será conectar, por ejemplo, una resistencia, un Led, un un pulsador y lo que hará es que en vez de tener que soldar los componentes soldar las patitas. Por ejemplo, si queremos conectar el Led a la resistencia, tenemos que soldar las patitas, pues si estamos haciendo experimentos si estamos haciendo pruebas, no vamos a estar soldando y desoldando todo el rato, con lo que por eso tenemos la la lo que hace es. Los pines entre sí y funciona de la siguiente manera imaginemos que tenemos esta de aquí. todos funcionan de la misma forma.

En entonces tienes dos filas en la parte superior, dos filas en la parte inferior y luego una serie de pines por aquí, en medio separados por una línea. el funcionamiento es todos estos pines de aquí están conectados entre sí, todos estos están conectados, entre sí, estos entre sí. Esto es entre sí y los del medio están conectados en vertical. Imaginaros que nosotros queremos colocar un Led a una resistencia ponemos el Led aquí y una patita la conectamos en este de aquí y la otra patita.

Por ejemplo, la ponemos aquí. Esta patita de aquí estará conectada a todos estos pines y la patita de abajo estará conectada a todos estos pines de aquí. Así que si queremos colocar la resistencia la tenemos que colocar, pues partiendo de este pin. A donde queramos, por ejemplo, aquí abajo Esto parece complicado, pero es muy fácil. vamos a ver el ejemplo de este. De aquí ah los cables. Por ejemplo, este cable azul, este cable rojo, este cable negro, estos son cables que conectan diferentes puntos estos cables de aquí. Por ejemplo, el azul sería como si cogiésemos un cable de estos y lo conectas de un punto a otro. lo que estamos haciendo lo que vemos aquí es que el de cinco voltios este de aquí está conectado con un cable a este punto de aquí, esto está pasando los cinco voltios el Arduino. A la placa, entonces, como hemos dicho, todos estos puntos están conectados entre sí, entonces por todos estos puntos pasan cinco voltios. lo que pasa en esta es que aquí tenemos un cable que también va a la parte de arriba.

La parte de arriba también tiene cinco voltios. Eso también tiene cinco voltios y lo mismo pasa con el Con el o con los cero voltios. Aquí tenemos una línea recta, un cable que va a la parte de abajo y todo esto tiene cero voltios. Otro cablecito todo eso tiene cero voltios. si os fijáis lo que estamos haciendo al final es conectar este punto de aquí de la resistencia pasa por aquí, pasa por aquí. pasa por aquí y la estamos conectando GNB, como hemos dicho que todas las verticales se están conectando entre sí vemos que la resistencia y este punto también están conectados y este punto y este también están conectados, pero este y este no están conectados. Que hay esta línea intermedia, este circuito, lo que hace es conectar el pin, dos del Arduino a este punto del pulsador le pone una resistencia y se va lo ves y por otro lado le da cinco voltios a este punto.

Si esto lo sacamos sin el lo que estamos haciendo es cogemos tierra. Le ponemos una resistencia y le ponemos un pulsador y esto a los cinco voltios. Tiene esta resistencia de aquí por aquí no tiene ninguna resistencia. entonces la electricidad tenderá a ir su mayor parte al punto al pin, dos entonces lo que tenemos aquí es que el pin dos cuando el pulsador está levantado, detecta GNB detecta cero voltios y cuando el pulsador está apretado que estaría cerrando esto pasarían los cinco voltios y el pin dos detecta cinco voltios.

Entonces, con este, con este pequeño diagrama que ahora lo montaremos en la lo que está pasando es que le estamos introduciendo electricidad o no al pin número dos vale. Vamos a ver cómo programar todo esto en Arduino y cómo recibir la información por el pin de que hemos apretado el botón o no hemos apretado el botón vamos a ver lo primero que vamos a hacer, va a ser agregar Arduino, Vamos Archivo Nuevo. Ves el Arduino ya te crea un programa con el y con el look creado. esto lo eliminamos. Lo eliminamos recordar que son comentarios en la parte de lo que vamos a hacer. va a ser definir que pines y si esos pines son de entrada y de salida, nosotros vamos a utilizar el pin número dos. le vamos a decir que es que es que vamos a querer leer la electricidad que está pasando por ese pin entonces. Que tenemos que poner con la M mayúscula el número de pin dos y si es o en nuestro caso es cerramos punto y coma perfecto y luego qué queremos hacer también lo que queremos hacer es que cuando pulses ese botón se encienda el Led, entonces en este en estos arduinos, el número trece está conectado al Led este de aquí. entonces si sale voltaje por el trece, iluminará el Led de De la Entonces nosotros podemos utilizar el trece, como entonces el trece coma porque le estamos diciendo que por aquí tiene que salir voltaje. lo vamos a utilizar para que salga la información perfecto.

Ya tenemos definidos, pues los pines que vamos a utilizar aquí podemos poner más el cuatro, el siete, el imputado vale depende de nuestro proyecto. Esta es la parte que solo se ejecuta recordad la primera vez del Y luego el se va repitiendo y qué queremos lo primero que queremos hacer es que lea que lea el pin dos qué está pasando en el pin. dos hay información, hay voltaje, no hay voltaje, entonces ese para leer se utiliza digital. Y el PIN, en nuestro caso, el dos y cerramos sí dale. Me había equivocado Ah. esto va a leer si hay cinco voltios si hay cero voltios, pero esto lo tenemos que guardar en un sitio y para eso existen las vallas. una variable es un sitio donde se guarda la información. Entonces esa información puede ser de muchos tipos diferentes. Pueden ser números enteros, uno cinco siete de tal, entonces esa variable será de un tipo o puede tener coma tres coma, cinco coma, siete cero, Coma, Uno, entonces esa variable será el tipo.

Pero esto no os preocupéis, ya lo vamos a ver más adelante durante el curso, pero pensá que cuando queréis una variable tenéis que decirle de qué tipo es en nuestro caso no os preocupeis. por eso es una variable de tipo INT. Entonces esta información la tenemos que decir que la guardo en un sitio, entonces le vamos a poner uno igual y aquí delante la variable le vamos a decir que la variable sea igual a dos, entonces va a guardar ese valor dentro de la variable, qué variable le ponemos, pues ponemos estado botón vale.

Dices que estado botón sea igual a digita el dos vale, pero os he dicho que tenéis que decir qué tipo de variable es y lo ponéis delante de la variable. En este caso es es entero cuando utilicéis números enteros que no necesiten, comas ponéis variables tipo OK estado, botón igual a digita el esto cuando el programa pase por este punto va a guardar el valor de del en la variable estado botón perfecto.

Ya tenemos la variable guardada en este punto ya ya tendríamos estado de botón si es cinco o es cero, dependiendo de si tiene cinco voltios o cero voltios. Qué podemos hacer con eso, pues vamos a hacer que si son cinco voltios se enciendan Led, este sí el concepto este de si pasa esto haz eso en programación se utiliza el vale. Si pasa lo que está dentro del paréntesis ejecuta esta otra cosa, abrimos el y al se cierra el veis es que aquí también se ponen los cuadraditos estos que hemos comentado antes aquí le estamos diciendo que si se cumple lo que pase dentro del paréntesis se ejecutará lo dentro del entonces, tú le dices sí estado botón. Es igual a uno ejecuta lo que hay dentro qué pasa que este igual tú le estás diciendo aquí que este botón sea igual a uno le estás diciendo que cambie la variable aquí. si quieres hacer una comparación tienes que poner dos iguales si pones dos iguales, lo que están haciendo es una es validando. si estado botón es igual a uno no que estado botón sea uno para eso pones los dos iguales. esto es muy importante y aquí hay mucho error. chicos chicas, aquí hay mucho.

Entonces, si este botón es igual a uno qué vamos a hacer, vamos a encender el Led acordados del ejercicio anterior digital escribimos en el pin trece. Punto Coma. Si el estado de botones uno se encenderá el Led y qué hacemos, pues copiamos todo esto y le ponemos aquí si el estado de botón es igual a cero. o sea, si no está pulsado es igual a U. Ahora tenemos un programa que lee el estado del botón si es uno si es alto, encenderá el Led. si es bajo no se encenderá el Led perfecto. esto lo podemos simplificar un poco. Por ejemplo, si estos dos botones es igual a uno que haga esto y si no el concepto y si no se llama, entonces podemos poner estos dos botones uno.

Abrimos el laboratorio Si puede ser cero, porque si no es no es cero, entonces si no pues esto lo ponemos aquí adentro. Aquí tenemos una versión más simplificada del programa que teníamos hace un momento que es si el estado es apretado, se enciende el Led. si no se apaga, el Led lo guardamos y Ahora vamos a proceder a montar el hardware en la en el Arduino. vale le falto un poco el ordenador pongo la Cámara, Uy entra una ??? en el ojo. vamos a colocar los cables.

Seguramente habéis recibido cables de muchos tipos, pero os recomiendo que cuando coloques cuando coloques el voltaje cero, el utilicéis, los negros y cuando utilicéis voltaje de cinco o tres utilizáis, los rojos es como un estándar y así todo el mundo cuando vea vuestro diseño, va a entender dónde está el voltaje y dónde está el OK. entonces conectamos el ND siempre recordad tener la placa desconectada cuando hagáis los montajes colocamos el lo colocamos por ejemplo. Está conectando el con toda esta tira con toda esta tira de aquí arriba. aquí vamos a conectar la resistencia. el siguiente punto es conectar la resistencia colocamos la resistencia la conectamos a unos pines, pues más allá porque esto está conectado en vertical, entonces, mientras no esté en la misma vertical, no está en el mismo.

Luego conectamos el pulsador. una patita de estas la que pone de Common ponemos la En la misma vertical que toque con la resistencia Y luego colocamos, los cinco voltios nos conectamos desde este punto a otra patita de la del pulsador. Normalmente normalmente abierto, así solo pasará solo conectará de los cinco voltios al cuando apreté el botón OK Y luego con otro con otro cable conectaremos desde la resistencia desde esta batita de aquí al número dos que le hemos dicho en el programa que es nuestro. Este es nuestro, entonces esto ya lo podemos conectar al ordenador y cargamos nuestro programa Vamos aquí le damos a cargar. Si es que lo hemos hecho bien. Va subiendo subiendo subiendo y como podéis ver ahora si pulsamos este botón se tendría que encender el Led veis. hemos pulsado este botón por el número dos por el pin. dos recibe que hay cinco voltios, entonces envía la señal o sea lo que está pasando. Ahora es nosotros apretamos este botón cerramos el circuito por el Pin dos le está entrando a cinco voltios. entonces el estado de botón es uno cuando suelto el estado de botón. Veis aquí el Led que se enciende cuando pulso qué podemos hacer podemos hacer una cosa divertida. lo que podemos hacer es ponerle un.

Cuando el botón sea uno se espere un segundo y encienda el Led cuando lo soltemos. Y apaga el Led. Esto lo que va a hacer es cuando sea uno cuando nosotros hayamos pulsado el botón se va a esperar un segundo y luego va a encender el Led cuando lo quitemos cuando no estemos pulsando, se va a esperar un segundo y luego va a desaprende el Led.

Vamos a ver si esto funciona vamos a ver apretamos, se espera un segundo se enciende y se mantiene encendido. si lo soltamos se va a esperar un segundo y se va a apagar. Porque hemos añadido el y bueno chicos. espero que os haya gustado mucho que hayas entendido cómo funciona la lectura de sensores digitales en este caso, pues cinco voltios.

Y ya vamos al siguiente capítulo, así que podéis ver el siguiente video. aquí arriba no olvidéis suscribiros darle like comentar y tenéis el código de este de este proyecto en la página web listo para si os lo queréis descargar, así que nos vemos en el siguiente capítulo. un abrazo chicos chau.

Back to list

2 thoughts on “#6 – Botones en Arduino y comandos IF / ELSE

  1. valerianoMicha dice:

    hola. soy muy nuevo en esto y tengo que hacer un ejercicio de clase que tiene dos partes: la primera consiste en escribir un codigo para sacar a la pantalla de mi arduino, la temperatura, la humeadad, la hora y la fecha, cosa que logre usando el siguiente codigo;//The DIY Life
    //Temperature & Pressure Example
    //25 July 2020

    #include “DHT.h” //Import the required libraries for the sensor and OLED display
    #include
    #include

    #define DHTPIN 3 //DHT Sensor Pin
    #define DHTTYPE DHT11 //DHT 11 Temperature & Humidity Sensor
    DHT dht(DHTPIN, DHTTYPE);

    int potPin = A0; //Set the potentiometer pin number
    int ledPin = 4; //Set the LED pin number
    int buzzerPin = 5; //Set the buzzer pin number

    U8X8_SSD1306_128X64_ALT0_HW_I2C u8x8(/* reset=*/ U8X8_PIN_NONE); //Create an object to control the OLED display

    int setPoint = 0; //Variable for the target temperature
    int alertRange = 5; //Range above or below the target to light up the LED
    int alarmRange = 10; //Range above or below the target to sound the alarm buzzer

    void setup(void)
    {
    pinMode(ledPin, OUTPUT); //Define the component pin modes
    pinMode(potPin, INPUT);
    pinMode(buzzerPin, OUTPUT);
    dht.begin(); //Connect to the DHT Sensor
    u8x8.begin(); //Connect to the OLED display
    u8x8.setPowerSave(0); //Set the display modes
    u8x8.setFlipMode(1);
    }

    void loop(void)
    {
    float temp, humi; //Create variables to store the temperature & humidity
    temp = dht.readTemperature(); //Read in the current temperature
    humi = dht.readHumidity(); //Read in the current humidity
    setPoint = map(analogRead(potPin),0,1023,0,50); //Read in the pot value and scale it to a temperature range of 0-50C

    if (temp >= setPoint+alertRange || temp = setPoint+alarmRange || temp <= setPoint-alarmRange) //If the temperature reading is above or below the alarm range, sound the buzzer
    {
    analogWrite(buzzerPin, 150);
    }
    else
    {
    analogWrite(buzzerPin, 0);
    }

    u8x8.setFont(u8x8_font_chroma48medium8_r); //Set the display font
    u8x8.setCursor(0, 33); //Set the cursor positions and display the text
    u8x8.print("T:");
    u8x8.print(int(temp));
    u8x8.print("C ");
    u8x8.print("H:");
    u8x8.print(int(humi));
    u8x8.print("%");
    u8x8.setCursor(0,50);
    u8x8.print("T Set: ");
    u8x8.print(setPoint);
    u8x8.print("C");
    u8x8.refreshDisplay();

    delay(200); //Wait 200 milliseconds between updates

    }
    PARA LA SEGUNDA PARTE, ME PIDEN QUE LE AGREGUE UN CODIGO AL MISMO PROYECTO, QUE ME PERMITA MOSTRAR LA FECHA, LA TEMPERATURA, LA HUMEDAD Y LA HORA POR SEPARADO, AL PULSAR EL BOTON. ES LO QUE SE ME ESTA DIFICULTANDO AHORA/

  2. miguel dice:

    En el vídeo si aparece bien el código, pero aquí en la web estan los pines dados de alta al revés. El pin 2 seria INPUT, que es el del botón y el 13 es OUTPUT

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *