💡 Cómo hacer un Botón INTERRUPTOR (Toggle Button) con Arduino 【 2021 】 - Capítulo #28🔋

Поделиться
HTML-код
  • Опубликовано: 24 дек 2024

Комментарии • 66

  • @ronaldulatevargas1179
    @ronaldulatevargas1179 5 месяцев назад +2

    Además de que eres un genio con la programación explicas tan bien que cualquiera podría entender, te felicito por esa virtud 😊

  • @DavidMartinez-jj9uv
    @DavidMartinez-jj9uv Год назад +2

    FELICITACIONES!!! ES EL VIDEO MÁS REAL Y HUMANO QUE HE VISTO!!! 👏👏👏👏👏👏👏

  • @KatiikeRyncez
    @KatiikeRyncez Год назад +2

    Gracias por compartir tu conocimiento en este video. Utilize un código distinto, en el que, con un while, retengo el estado de la variable mientras el botón sigue pulsado.
    int const bled = 7, btn = A5; //Constantes de pines
    int lede; //Estado del led
    void setup() {
    pinMode(bled, OUTPUT);
    pinMode(btn, INPUT);
    }
    void loop() {
    if (digitalRead(btn) == 1 && lede == 0) { //si el boton esta puslado y el led apagado...
    while (digitalRead(btn) == 1) { //Mientras el boton sigua pulsado
    lede = 1;
    digitalWrite(bled, lede); //Led encendido
    }
    } else if (digitalRead(btn) == 1 && lede == 1) { //si el boton esta pulsado y el led encedido...
    while (digitalRead(btn) == 1) { //Mientras el boton sigua pulsado
    lede = 0;
    digitalWrite(bled, lede); //Led apagado
    }
    }
    delay(10);
    }

  • @frankomartinez5211
    @frankomartinez5211 Год назад +1

    Buen video, contigo si aprendo y entiendo, no como el profe que tengo "enseñando" esto de mala manera

  • @alexardao1201
    @alexardao1201 Год назад +1

    Muy buen vídeo, intenté hacer ese tipo de interruptor por mi cuenta y no fui capaz, y gracias a tu vídeo lo he conseguido, muchas gracias💪🏻

  • @ianisaacaguilarramirez980
    @ianisaacaguilarramirez980 9 месяцев назад

    tu video me ayudara a titularme como técnico en informática, solo agregue más código, muchas gracias 👏👏

  • @rishiarjona3574
    @rishiarjona3574 3 года назад +7

    Gracias por la clase crack, gracias a ti estoy aprendiendo mucho, saludos y un abrazo.

  • @luisedwinpaz6448
    @luisedwinpaz6448 3 года назад +3

    buena explicación funcional, me hizo pensar un rato y me salio esto
    int a,b;
    void setup()
    {
    pinMode(7,OUTPUT);
    pinMode(A0,INPUT);
    }
    void loop()
    {
    a=digitalRead(A0);
    delay(100);
    if(b==0){
    if(a==0)
    b=1;
    digitalWrite(7,1);
    }
    else{
    if(a==0)
    b=0;
    digitalWrite(7,0);
    }
    }

    • @jujopm.8-p
      @jujopm.8-p 2 года назад

      Me costó entenderlo con a y b ;-)
      En el primer IF:
      - si el led está apagado
      y el botón pulsado --> enciendes el led y cambias b
      - sino está encendido
      y el botón pulsado --> apagas el led y cambias b.
      Creo que no funciona bien, porque te faltan {} para los 2 IF.
      El profe lo hace de otra manera:
      En el primer IF comprueba que acabamos de pulsar el botón, y en el segundo, comprueba el estado del led y lo enciende/apaga.

  • @marcofrencia7760
    @marcofrencia7760 Год назад +1

    @Johann Perez E, Buenos dias hermano, una consulta se podria simular la accion de pulsar un boton mediante un servomotor?

  • @darwinrodriguez8643
    @darwinrodriguez8643 Год назад +1

    Ahora ya se como hace el boton de panico para mi proyecto 👌👌

  • @reneramirezhuerta7906
    @reneramirezhuerta7906 Год назад

    tan facil y tan complejo, hay que seguir las ordenes para entender, soy electronico y generalmente no hago diagramas de flujo ni pruebas de escritorio, para entender esto y los controladores pid digitales y ls filtros digitales es muy importante hacer todo ese show y otros mas, gracias.

  • @hvasquez8185
    @hvasquez8185 2 месяца назад

    muy buena explicación

  • @victorcampos6866
    @victorcampos6866 2 года назад

    realmente legendario felicitacios por muy buen materual

  • @naiqueniturralde9389
    @naiqueniturralde9389 2 месяца назад

    Buenas tardes! Johan gracias por tus videos, estoy terminando el primer año de Tecnicatura en Desarrollo de Software, queremos conectar una cámara OV7670 a un Arduino Mega, y verlo por una pantalla Pantalla Lcd Display Touch 2.4 320x240 Arduino 65k Color Sd. NECESITAMOS AYUDA! Cualquier dato nos es de ayuda, no encontre videos de este contenido y queria daber si podrias ayudarnos con alguna informacion. Muchas gracias!

  • @franklinherrera3425
    @franklinherrera3425 2 года назад +5

    Hola Johann, tengo otra forma de Hacerlo:
    int buttonPin = 4;
    int ledPin = 2;
    int buttonRed;
    int contador😁😁😁😁 = 0;
    void setup() {
    // put your setup code here, to run once:
    pinMode(buttonPin, INPUT);
    pinMode(ledPin, OUTPUT);
    Serial.begin(9600);
    }
    void loop() {
    // put your main code here, to run repeatedly:
    buttonRed = digitalRead(buttonPin);
    Serial.println(buttonRed);
    //delay(100);
    if (buttonRed == 0 && contador == 0) {
    // if (contador == 0) {
    digitalWrite(ledPin, 1);
    contador = 1;
    buttonRed = 1;
    delay(200);
    }
    if (buttonRed == 0 && contador == 1){
    digitalWrite(ledPin, 0);
    contador = 0;
    delay(200);
    }

  • @pinojump
    @pinojump Год назад +2

    Una duda, ¿por qué pones en este video el buttonPin en el A0 (analogico) y en el anterior video lo pones en un pin digital? Veo que funciona igualmente con pindigital

    • @dennissamuel8998
      @dennissamuel8998 2 месяца назад

      La diferencia es que el pin analógico es capaz de leer o emitir señales de 0v a 5v mientras por otro lado los pines digitales son capases de enviar o recibir 0 o 1 (osea hay o no hay)

  • @josepheduardojimenezmedran1270
    @josepheduardojimenezmedran1270 3 года назад +1

    muy buenas tus clases me encantan sigue así

    • @JohannPerezE
      @JohannPerezE  3 года назад +1

      Gracias por el comentario. Un abrazo :D

  • @Asimov10
    @Asimov10 2 года назад +1

    Pregunta seria, porque inicializamos el monitor serial, sino se utilizo. Yo coloque los estados de los buttonNew Y buttonOld por el monitor y así veo cuando cambia. Aprendí mucho con el video.

    • @jujopm.8-p
      @jujopm.8-p 2 года назад +2

      Tienes razón, así es más fácil entenderlo.
      En el primer IF detectamos el momento justo en que pulsamos el botón, y en el segundo IF apagamos/encendemos el led según estaba.
      1 1
      0 1 (Pulsado Aquí)
      0 0
      1 0 (Soltado Aquí)
      1 1
      Y no tengo el kit 😥

    • @gadgcrixitech2404
      @gadgcrixitech2404 2 года назад +2

      @juan jose :-D x2 jajja toca usar tinkercad 👌

  • @baruchspinoza3592
    @baruchspinoza3592 2 года назад

    Sigo sus vídeos con entusiasmo. ¿Podrías aclarar cuál es el valor de resistencia que debemos utilizar? Gracias.

  • @PJO_304
    @PJO_304 Год назад

    muy bueno tus videos. sabes que quiero hacer algo muy parecido. es en vez de poner un led quiero poder controlar un motor paso a paso de 220v (los que tienen las estufas que giran) . pero quiero sumarle un relay para poder controlarlo... como podria hacer eso... gracias

  • @dilansantiagobarbosasalina3087
    @dilansantiagobarbosasalina3087 2 года назад +1

    hola es que al momento de hacer la ultima parte de "buttonOld=buttonNew;" me sale que esta mal. Eres un buen profe muchas gracias.

  • @josepheduardojimenezmedran1270
    @josepheduardojimenezmedran1270 3 года назад +1

    hola soy nuevo tengo una pregunta para manipular arduino no se ocupa algo como guantes, tapetes oalgun brazalete ?

    • @JohannPerezE
      @JohannPerezE  3 года назад +3

      Hola Joseph. Pues todo dispositivo electrónico es susceptible de que le generemos un daño con nuestra energía estática. Yo personalmente de todas las tarjetas que toco, sobo, acaricio y les doy cariño, nunca he dañado ninguna entonces no suelo preocuparme por eso 😅

  • @geixonniculita326
    @geixonniculita326 Год назад +1

    Hola Johann.
    Queria pedirte ayuda porque en el codigo que has hecho al compilarlo me da error en la primera funcion en el void loop donde pone buttonNew = digitalRead(buttonPin); y me dice que buttonPin no ha sido declarado in this scope. ¿Cual seria la solucion?. Gracias

    • @AlanGg100
      @AlanGg100 Год назад

      Lo solucionaste?

    • @geixonniculita326
      @geixonniculita326 Год назад

      No lo solucione, ayuda

    • @AlbaroTorrez6661
      @AlbaroTorrez6661 Год назад

      int LedPin = 2;
      int PulsadorPin = 4;
      int EstadoLed = 0;
      int EstadoPulsador;
      int NuevoEstadoPulsador;
      int dt = 100;
      void setup(){
      pinMode(LedPin,OUTPUT);
      pinMode(PulsadorPin,INPUT);
      Serial.begin(9600);
      }
      void loop(){
      NuevoEstadoPulsador = digitalRead(PulsadorPin);
      Serial.println(NuevoEstadoPulsador);
      delay(dt);

      if(NuevoEstadoPulsador == 0){
      EstadoLed =! EstadoLed;
      }
      if(EstadoLed == 1){
      digitalWrite(LedPin,1);
      }
      else{
      digitalWrite(LedPin,0);
      }

      EstadoPulsador = NuevoEstadoPulsador;
      }
      Hola, amigo, revisa este Código y me dices, analízalo bien. Esta es otra solución que le pude dar.

    • @geixonniculita326
      @geixonniculita326 Год назад

      @@AlbaroTorrez6661 Muchas gracias, si me funciono

    • @geixonniculita326
      @geixonniculita326 Год назад

      @@AlbaroTorrez6661 He probado otra vez el codigo pero al apretar el boton no se queda apagado o encendido, es decir, esta todo el rato encendido y solo se apaga si mantengo el boton apretado. que funcion tengo que poner para que se encienda o se apague solo cuando apreto el boton?

  • @desarrollou71x72
    @desarrollou71x72 2 года назад

    Hola!... buenos tus videos, agradecido..
    Una duda, vi que para el led conectaste el pin digital y no los 5v... tengo entendido que los pines digitales entregan tambien 5v... se puede hacer el mismo procedimiento para el boton?,, es decir, conectar otro pin digital al boton en vez de 5v ?... saludos y gracias nuevamente.

  • @miguelD888
    @miguelD888 3 года назад

    Gracias por el video 😊

  • @FacundoFredes03
    @FacundoFredes03 21 день назад

    Tenia el codigo tal cual y no me funcionaba le pregunte a la ia y me modifico la entrada del pin a pinMode(buttonPin,IMPUT_PULLUP) debe ser por que tengo la version 2.3.4

  • @Jarvis_mc
    @Jarvis_mc 4 месяца назад

    yo quiero hacer un codigo, veo los primeros videos de encender el led, me falta el boton, entro al video, veo Serial.begin(9600); justo lo que me faltaba!!!😀😀😀😀

  • @erickzepeda7223
    @erickzepeda7223 Год назад +2

    Ayuda, alguien cree que se le puedan agregar mas leds??????

  • @sr.mluosviec
    @sr.mluosviec Год назад +1

    Encontre otra manera de hacerlo:
    int pinLed = 8;
    int pinV = A0;
    int v;
    bool pushButton;
    int stateButton = 0;
    void setup() {
    Serial.begin(9600);
    pinMode(pinLed, OUTPUT);
    pinMode(pinV, INPUT);
    }
    void loop() {
    v = digitalRead(pinV);
    if(v == 0){
    pushButton = true;
    }
    if(pushButton){
    if(stateButton == 1){
    stateButton = 0;
    digitalWrite(pinLed, stateButton);
    }else{
    stateButton = 1;
    digitalWrite(pinLed, stateButton);
    }
    pushButton = false;
    }
    Serial.println(stateButton);
    delay(300);
    }

  • @castilloproject
    @castilloproject Год назад

    Como puedo prender y apagar un arduino nano que esta conectado a un cargador lipo con un pulsador de estos?

  • @julioacerocaballero9910
    @julioacerocaballero9910 2 года назад +1

    graciasssssss

  • @baruchspinoza3592
    @baruchspinoza3592 2 года назад +8

    😭 No entiendo por qué tantas variables. Buttonold?

  • @dilansantiagobarbosasalina3087

    Necesito ayuda por favor al apagar la luz no me funciona me pueden ayudar por favor.

  • @AlbaroTorrez6661
    @AlbaroTorrez6661 Год назад +1

    Hola, compañeros, aquí les dejo mi solución.
    int led=8;
    int button=2;
    int buttonVal;
    int val1=1;
    int val2;
    void setup () {
    pinMode(led,OUTPUT);
    pinMode(button,INPUT);
    Serial.begin(9600);
    }
    void loop () {
    buttonVal=digitalRead(button);
    Serial.println(buttonVal);
    delay(100);

    if(val1==1 && buttonVal==0){
    digitalWrite(led,1);
    val1=0;
    }
    else if (val1==0 && buttonVal==0) {
    digitalWrite(led,0);
    val1=1;
    }
    }

    • @AlbaroTorrez6661
      @AlbaroTorrez6661 Год назад

      con un delay (150) funciona mejor. Cualquier modificación me dejan Saber. Estamos aprendiendo.

  • @lucassilvero9026
    @lucassilvero9026 Месяц назад

    Buen video pero tengo una duda espero alguien me pueda ayudar , yo quiero colocar 2 botones pulsadores en el manubrio de una bici debido a que mi proyecto son luces de giro con Arduino y matriz led en el vídeo los botones van directo al protoboard , como puedo ponerlo en el manubrio?

    • @ricardopc90
      @ricardopc90 Месяц назад

      Busca cualquier botón que se ajuste a dónde lo vas a colocar, no necesariamente tiene que ser el push como el del vídeo, solo fíjate si es N/O o N/C

    • @ricardopc90
      @ricardopc90 Месяц назад

      O puedes comprar uno ya hecho y solo lo conectas a tu placa, los puedes buscar como interruptor para bicicleta eléctrica, estos ya se ajustan al manubrio y tienen botones para luz, direccionales, claxon y encendido, apagado.

  • @anieveascoestudiante1300
    @anieveascoestudiante1300 2 года назад

    hola te encontre un error en tu codigo el serial.begin(9600) no era necesario

  • @josepjover10
    @josepjover10 9 месяцев назад

    Un truquito para no tener que hacer el "if (ledState == 0){}else{}"
    Solo hay que poner:
    ledState=abs(ledState -1);

  • @Gs_danielCruz
    @Gs_danielCruz Месяц назад

    ami medio error por que ?

  • @victorivanbasiliovazquez8723
    @victorivanbasiliovazquez8723 3 года назад

    Oye disculpa que te comente tarde pero por que será que en mi caso arduino no funcione con "&&" y ese problema al parecer es de siempre 💔por cierto excelente curso, eres un gran mentor 👍

    • @JohannPerezE
      @JohannPerezE  3 года назад +1

      Hola. He visto errores con el && cuando lo combinamos con otros operadores lógicos y no usamos paréntesis. Por ejemplo: if (( (a == 1) || b == 1)) && (c == 1)). Si quieres deja un código corto que te genere el error y cuando pueda le echo un ojo. Saludos

    • @victorivanbasiliovazquez8723
      @victorivanbasiliovazquez8723 3 года назад +1

      @@JohannPerezE ok muchas gracias, de hecho la práctica que se realizó en el video no funcionó por lo mismo del & & pero lo checo y ya lo comentó va, muchas gracias por contestar 👍

    • @victorivanbasiliovazquez8723
      @victorivanbasiliovazquez8723 3 года назад

      @@JohannPerezE oyeeee si era eso, graciassss😅😅😅

  • @edward-f8c
    @edward-f8c Год назад

    int LedPin = 7;
    int buttonPin = A0;
    int ledState = 0;
    int buttonOld = 1;
    int buttonNew;
    int dt = 100;
    void setup() {
    Serial.begin(9600);
    pinMode(LedPin, OUTPUT);
    pinMode(buttonPin, INPUT);
    }
    void loop() {
    buttonNew = digitalRead(buttonPin);
    delay(dt);
    if(buttonNew == 0 && buttonOld == 1){
    if (ledState == 0){
    digitalWrite(LedPin, 1);
    ledState = 1;
    }
    else{
    digitalWrite (LedPin,0);
    ledState = 0;
    }
    }
    buttonOld=buttonNew;
    }

  • @detecciongoldito7674
    @detecciongoldito7674 2 года назад

    amigo miro tus videos me gustaria como hacer simulador de ckp y cmp o algun codigo de como hacerlo te agradeceria

  • @gianlucafiordabressan4035
    @gianlucafiordabressan4035 Год назад +1

    gracias bro me ayudo a hacer un robot que me hace un pete

  • @albeirocuesta1
    @albeirocuesta1 16 дней назад

    comentario

  • @videoszolution5380
    @videoszolution5380 Год назад

    Tanta caspa,, solo se necesita esto..
    void setup()
    {
    pinMode(13, OUTPUT);
    pinMode(2,INPUT);
    }
    void loop()
    {
    if ( digitalRead(2)==HIGH )
    {
    digitalWrite(13, !digitalRead(13));
    delay(200);
    }
    }

  • @oscarvalenzuela262
    @oscarvalenzuela262 Год назад

    complicado,, hay un programa con pic el cual queda sencillo!!!