En este SEPTIMO capítulo vemos como imprimir las variables en pantalla y algunos condicionales.
En este punto debes tener el siguiente circuito:
Código del capítulo:
void setup() {
Serial.begin(9600);
pinMode(2,INPUT); //Boton derecha
pinMode(3,INPUT); // Boton Izquierda
pinMode(13,OUTPUT); // LED
}
void loop() {
int estadoboton_D = digitalRead(2);
int estadoboton_I = digitalRead(3);
// Serial.print("Boton derecho: ");
Serial.println(estadoboton_D);
// Serial.print(" | Boton izquierdo: ");
Serial.println(estadoboton_I);
if (estadoboton_D == 1 != estadoboton_I == 1){
digitalWrite(13, HIGH);
} else {
digitalWrite(13, LOW);
}
delay(100);
}
Material para el curso:
Guia de materiales
Transcripción del capítulo:
Bienvenidos al curso de Arduino Capitulazo siete. Mi nombre es Edgar Pons, Recordad, supongo que nadie se habrá distraído. Estamos en el curso de Arduino, de este nivel cero, ¿OK? En el capítulo anterior vimos como controlar un Led a través de un botón, y hoy lo vamos a hacer un poco más complejo.
Hoy vamos a poner dos botones, y vamos a hacer que, si los dos están pulsados, se encienda el led, si uno está pulsado no se encienda, si el otro está pulsado no se encienda, vamos a jugar un poco con eso y al final del vídeo vamos a hacer un programita para ver en tiempo real por pantalla cuál es el estado de los dos botones.
Así que, vamos allá, sin más dilación, hoy vamos a hacer el circuito que veis aquí arriba. Este circuito se compone de dos botones que los tenéis aquí. Recordád que es importante la posición de los botones, tenéis que ponerlo, que las que la parte más ancha esté así. Antes teníamos solo el circuito este de aquí. Ahora, vamos a duplicarlo y hacer otro al lado. En este diagrama he puesto los cinco voltios en rojo, que son estos de aquí, quedan por aquí. Y el GND lo he puesto en gris para que se pueda ver un poco mejor. El botón uno, vamos a llamarle este botón uno y este botón dos, el botón uno irá al Pin tres, y el botón dos irá al Pin dos.
Básicamente es esto, tenéis que montar este diagrama de aquí. Os voy a colgar el diagrama también en la página web por si queréis descargarlos, verlo más grande, lo que queréis, lo tenéis ahí, junto con el código de este programa que también os lo podéis descargar, sino también podéis explicarlo vosotros, qué es lo que vamos a hacer en directo. Cogemos este digrama y lo montamos. Al final tendréis algo como esto. Voy a poner la cámara al circuito que ves aquí, es esto. Queda algo parecido es normal que en vuestros proyectos de arduino os queden en cajambres extremadamente grandes de de cables aquí veis otro proyecto que tenía, al final te quedan cosas como estas, no os preocupéis, siempre que mantengáis un orden con los colores de los cables, va a ser fácil leerlo al final, para saber dónde van los cinco voltios, tú vas a ver que todos los cables de color rojo son de cinco voltios. Si te ordenas por colores es muchísimo más fácil, yo recomiendo que no, coge cables aleatorios de colores y montarlo porque al final queda un batiburrillo que no sabes qué está pasando.
Tenemos aquí el código del ejercicio anterior, que si no lo habéis visto, lo tenéis en la descripción, o colgado por aquí arriba. Esto lo que hacía era, leía el ritmo de dos como y luego le daba estado botón el valor del pim en ese momento. Lo que vamos a hacer, como ahora tenemos aquí dos botones, si queréis podéis conectar el arduino, y veremos que si el botón que está vinculado al al número dos, se va a encender el led. ¿cómo? Porque ahora tiene el arduino cargado el programa de antes. Entonces, lo que vamos a hacer va a ser modificar este programa para que no se lo reciba el del Pin dos, sino que también reciba el del Pin tres. Entonces, lo que vamos a hacer va a ser, podemos directamente copiar, o sino, recordar la mayúscula, tres, también será un Perfecto, ahora tenemos el el pin dos y el pin tres.
Si queréis al lado podemos poner comentarios, recordá que con la doble barra, podemos poner comentarios, que sea, botón. Aquí hemos dicho que el tres es el botón uno, así que el doce apto en dos, o podemos poner derecha, y este es el botón ¿OK? Y esto es en Led.
Entonces, hemos definido a la parte inicial, en esta parte, cómo están distribuidos los leds, el dos y el tres, son de recepción de datos, y el trece es emisión. Empezamos el en el bucle, nosotros guardábamos el estado del botón, el digitalread() dos. Esto lo podemos copiar porque también nos interesa saber, en este punto, el estado del botón tres.
Entonces, aquí ponemos un tres tres. ¿qué pasa aquí? Se está guardando el estado del botón dos en el estado botón y seguidamente se está guardando el estado del botón del del Pin tres en el mismo, en la misma variable. Tenemos que poner otra variable, tenemos que cambiar el nombre de la variable, porque si no se está sobrescribiendo.
Podemos poner estado de botón para baja dos, con esto ya se aguardaría, pero para ser un poco más ordenados, vámonos a poner aquí pues el número derecha y y aquí, izquierda, Entrada botón D, es el estado de botón de la derecha, y este botón, y estado de botón de la izquierda. Entonces, vamos a hacer pulcros. Perfecto, estado de botón, esta variable ya no existe, porque la cambiamos, la acabamos de cambiar aquí arriba. Entonces, podemos copiarla y pegamos.
Este programa sigue siendo como la anterior. Entonces, este lo vamos a quitar porque ahora mismo queremos que se accione al momento, y ahora mismo, si cargamos esto, recordar tener el arduino enchufado, y lo que va a hacer, va a ser lo mismo que hacía antes, cuando tu pulsa en el botón se enciende el led, y si pulsas el otro botón, no hace nada. ¿por qué? Porque no le hemos dicho que haga nada. Se lo vamos a decir ahora. Entonces, ¿qué podemos hacer? pues podemos poner a continuación, copiamos todo esto ¿qué es lo que vamos aquí? Entonces tenemos arriba, si el botón de derecho, es uno, se encienda, sino, se apaga, y aquí ponemos la I botón izquierdo, uno, tal, si no se apaga. Vamos a cargar este este código, este código lo que hará es validar si el derecho está encendido, si la izquierda está encendido, y se iluminará correspondientemente. Voy a grabar vamos a ver qué pasa, pulsamos el derecho no pasa nada. Usamos el izquierdo, sí pasa. ¿qué está pasando aquí? ¿qué está pasando aquí? Vamos a ver.
Lo que ocurre es que Arduino, el Loop este, lo hace muy muy muy rápido. Entonces, lo que está pasando es que en la parte de aquí, el el programa empieza a leer de arriba a abajo. Entonces, nosotros apretábamos el botón derecho, tendría que estar la luz encendida, pero, después de encender la luz, rápidamente, veía que el botón derecho estaba apagado y la apagaba. Entonces, el led no se encendía nunca. Entonces, lo que podemos hacer es un si añadimos un dará tiempo al let a encenderse antes de seguir leyendo. Entonces, lo que podemos hacer ahora es ralentizar un poco el programa, lo que tenemos que hacer es, por ejemplo, aquí le añadimos un de cien milisegundos. Esto será suficiente para que nosotros si pulsamos este botón, se quede encendido cien milisegundos antes de que se siga ejecutando el otro. Y aquí al final también lo ponemos. Cien Entonces, con esto, el programa empezará a ejecutarse, mirar si está encendido o no, se encenderá o no, y luego mirará el otro botón lanzamos el programa vamos a ver ¿veis que se enciende y se apaga?
Esto es porque se enciende, espera cien milisegundos de encendido, luego ve que el botón, que el otro botón está apagado, se apaga cien milisegundos. Si pulsamos los dos, queda pasar, que va a estar encendido todo el rato. pero lo que nosotros realmente queremos es, si el botón izquierda está apretado, o el botón derecho está apretado, que se encienda el led. Por esto, existe una cosa que se llama el or, quiere decir A ¿OK? Entonces, el oro, entonces, lo ponemos aquí. Sí, el estado del botón derecho está apretado que son estas dos barras verticales. El estado del botón, copiamos, pegamos, izquierdo.
Es uno, enciende un, enciende el led. Esto es lo que le estoy diciendo es exactamente esto, o uno, o el otro. Me da igual, mientras uno sea positivo, mientras uno sea uno, yo voy a la acción. Vamos a probar, vamos a cargar el código y con esto lo que tendríamos que tener es un programa que tanto si apretas un botón, como si apretas el otro, se enciende ¿qué ocurre si aprieto los dos a la vez? ¿qué tan bien se enciende? ¿por qué es? Uno, o el otro ¿OK? ¿qué pasa si queremos que estén los dos apretados para que se encienda el led? Aquí hay una cosa que se llama ¿qué quiere decir? I, A, I B. Entonces, el A es esta cosa de aquí, dos esto lo que está diciendo es que tiene que cumplirse, lo primero, y lo segundo, que las dos cosas tienen que ser tú, que las dos cosas tienen que ser verdad. Entonces, si es verdad que el botón derecho es igual a uno y es verdad que el botón derecho que la izquierda y el derecho es igual a uno, entonces, se va a encender el led.
Vamos a probarlo, enviamos el código es como se está cargando, ¿vale? Entonces, pulso uno y no pasa nada, porque uno de los dos es cero, pero si aprieta los dos, se enciende el led. y así es como funciona un poco la lógica del programa. Al final, todo lo que hagáis en Arduino se va a basar en en consideraciones de estas, tendréis que validar si ciertos estados, son ciertos, o son falsos, y jugando con los Ans, los y luego también hay el más o igual. Por ejemplo, si queremos que el botón derecho o la el que te llega, tiene que ser menor que el de la izquierda Esto lo que va a hacer, va a hacer es que cuando el de la derecha sea cero, que no esté apretado, y el de la izquierda esté apretado, se va a encender el led, si lo ponemos al revés va a ser al revés. Lo que te está diciendo es, aquí lo que estás creando es una especie de operación matemática que te da da, ¿vale? Tenemos el positivo, el negativo, o sea, tenemos el mayor que menor que, y luego está el mayor, o igual que menor, o igual que, ¿OK? Y luego está él, no es igual, que sería exclamación igual.
Esto es lo que estás indicando es que todo esto va a ser correcto, va a ser cuando la primera variable no sea igual que la segunda. En este caso, cuando el botón derecho, sea diferente, está en un estado diferente que el botón izquierdo, por ejemplo, si uno está apretado y el otro no, se encendería el led en cualquiera de los dos casos. Si los dos son iguales, no se encendería. Así que vamos a subir este código y vamos a comprobar cómo funciona este programita. En este caso, como podemos ver, cuando uno esté apretado, cuando uno botón sea diferente al otro, se va a encender el led.
El botón derecho ahora está apretado y el izquierdo no, se enciende. Si hacemos al revés, también se enciende, pero si apretamos los dos, los dos son iguales, los dos son uno, entonces no se enciende. ahora vamos a ver una cosa también muy interesante que es, ¿tú quieres saber cuál es el estado de este botón? Si es uno, si es cero, o si es un numérico, por ejemplo, saber en qué valor se encuentra. Si ponemos un sensor de distancia, tú quieres saber en qué números, en qué número se encuentra actualmente ese sensor. Hay una cosa en Arduino que se llama el Print lo que te hace es imprimirte en pantalla los valores que tú quieres que te aparezcan. Entonces, si queremos imprimir un valor en pantalla, por ejemplo, queremos saber en qué estado se encuentra el botón derecho, pero no, no queremos hacerlo con y tal, queremos que nos salga por la pantalla, el número.
Lo que tenemos que hacer es poner en el Z, tenemos que iniciar el una cosa que se llama seria. Serian punto nueve seis cero cero, nueve seis cero cero es la velocidad. Esto no preocupéis. simplemente ponete esta línea y ya se verá. Y luego, donde querráis, donde queráis que os imprima, que os muestre el valor, tenéis que poner por ejemplo, ¿dónde lo podemos poner? Mira, podemos poner después de que lea el el estado, haremos que nos lo muestre, sería el y luego la variable que queremos que nos muestre en este caso, pues, esta de aquí estado botón, ¿vale? Vamos a ejecutar esto subiendo, subiendo, subiendo subiendo, subiendo, subido, ¿vale? Veis que no aparece nada, porque tenéis que sacar la pantalla. Vamos a herramientas, monitor serie, y aquí nos sale esto.
Esto es el valor del botón que nos está saliendo por pantalla Entonces, si nosotros pulsamos el botón, vemos que cambia a uno lo soltamos, apretamos, soltamos, apretamos, soltamos, esto es muy interesante, porque así puedes ver qué está pasando con tu programa. Edgar, me está saliendo toda un un número detrás de otro. Lo que puedes hacer es LN, lo que le estás diciendo con el LN es que te haga una nueva línea, entonces si ejecutamos esto, y abrimos lo que te va a sacar, es un número detrás de otro. Entonces, si pulsamos, ves que cambia ¿qué podemos hacer con esto? Con esto podemos hacer muchas cosas, ya veréis. Vale, estos números sueltos no les están indicando mucha cosa, pero lo que podemos hacer es, nosotros copiamos esto copiar, lo pegamos aquí, y aquí en vez del estado del botón, vamos a poner entre comillas, a un botón derecho, dos puntos, a ver qué nos saca, ¿vale? Nos está poniendo, botón derecho, es cero. Vale, pero me sale debajo, yo lo quiero que me aparezca al lado. Entonces, lo que podemos hacer es quitarle la línea a este, que en el primer caso no haga un salto de línea, sino que lo haga en el segundo.
Y nos sale por pantalla esto. Vale, pero en el cero, me gustaría que hubiese un espacio. Entonces, dejamos aquí un espacio y perfecto. Entonces, lo pulsamos. Veis que forma más elegante de saber en qué estado se encuentra. Ahora lo que podemos hacer es duplicarlo y ponemos aquí, izquierdo y aquí la I, uy. Tenemos botón derecho, botón derecho, botón izquierdo, botón izquierdo, ¿vale? Le vamos a quitar la LN aquí, aquí dejamos unos espacios, ponemos una barrita, son espacios. Si os fijáis, imprimirá botón derecho, seguidamente imprimirá el estado del botón derecho, seguidamente, botón izquierdo, y el valor del izquierdo, y saltará de línea. Entonces, con esto, tenemos una especie de de mini interfaz vemos el estado de los dos botones, ¿veis? Aquí tenemos el botón derecho y el botón izquierdo, y así lo expulsamos Podés ver en pantalla el estado de los diferentes botones. Esto es muy útil, por ejemplo, cuando tenéis muchas variables, cuando tenéis muchos pines que entran, muchos pines que salen, y no sabes en qué estado se encuentra cada cosa de que estás poniendo.
Bueno, espero que les haya gustado mucho este capítulo, en el hemos visto como imprimir por pantalla a valores, que esto lo vais a utilizar infinitamente. Ya veréis, esto sirve para saber qué carajo está pasando con vuestro programa, por qué falla, qué está pasando dentro. Esto siempre se utiliza. Recordás que podéis este código en la web Edgar Fonz punto com, allí os lo podréis descargar, también los esquemas para que montáis el circuito, y un poquito de descripción, así que os espero por ahí para que os lo bajáis. Recordá darle al y suscribiros al canal si os está gustando, recomendarlo lo típico. Realmente me ayuda mucho si dais el y nos vemos en el siguiente capítulo que aparecerá por aquí, en unos instantes. Y nada, los espero por aquí.
Espero que os esté gustando. Déjanme en los comentarios, les está sirviendo, que echáis de menos. Si algo no ha quedado claro, también lo puedes escribir por ahí, y lo comenta y nada, nos vemos por aquí.
Espero que os esté gustando. Un abrazo.