User Tools

Site Tools


Writing /var/lib/dokuwiki/data/meta/teaching/ie0624/actividad_arduino_timers_ints.meta failed
teaching:ie0624:actividad_arduino_timers_ints

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
teaching:ie0624:actividad_arduino_timers_ints [2017/04/05 23:13] – [Parte 3. Interrupción con señal externa como fuente (utilizando un botón)] adminteaching:ie0624:actividad_arduino_timers_ints [2022/09/20 00:08] (current) – external edit 127.0.0.1
Line 44: Line 44:
   * Ensamble el siguiente circuito en una protoboard   * Ensamble el siguiente circuito en una protoboard
  
-{{ :teaching:ie0624:rebote1.png?nolink |}}+{{ :teaching:ie0624:rebote1.png?nolink&400 |}}
  
-  * Utilizando un osciloscopio capture el comportamiento de la señal de salida cuando se presiona y se libera el botón. La señal presenta ruido muy extremo, asegúrese de configurar el osciloscopio en modo "trigger" (disparo) primero para señal creciente y luego para señal decreciente con un periodo de tiempo suficientemente bajo para observar el "rebote" de la señal del botón. 1) Cuántos rebotes presenta la señal al presionar el botón y cuántos rebotes presenta la señal al liberar el botón. (Haga tres experimentos y calcule el promedio)+  * Utilizando un osciloscopio capture el comportamiento de la señal de salida cuando se presiona y se libera el botón. La señal presenta ruido muy extremo, asegúrese de configurar el osciloscopio en modo "trigger" (disparo) primero para señal creciente y luego para señal decreciente con un periodo de tiempo suficientemente bajo para observar el "rebote" de la señal del botón. **1) Cuántos rebotes presenta la señal al presionar el botón y cuántos rebotes presenta la señal al liberar el botón.** (Haga tres experimentos y calcule el promedio)
  
 === Circuito de botón con eliminación de rebote analógico === === Circuito de botón con eliminación de rebote analógico ===
Line 53: Line 53:
   * Ensamble el siguiente circuito en una protoboard   * Ensamble el siguiente circuito en una protoboard
  
-{{ :teaching:ie0624:rebote2.png?nolink |}}+{{ :teaching:ie0624:rebote2.png?nolink&400 |}}
  
-  * Utilizando un osciloscopio capture el comportamiento de la señal de salida cuando se presiona y se libera el botón. Asegúrese de configurar el osciloscopio en modo "trigger" (disparo) primero para señal creciente y luego para señal decreciente con el mismo periodo de tiempo utilizado con el circuito anterior. 2) Cuántos rebotes presenta la señal al presionar el botón y cuántos rebotes presenta la señal al liberar el botón. (Haga tres experimentos y calcule el promedio) 3) Comente en qué maneras difiere la forma de la señal en este circuito con respecto al anterior. 4) Comente en qué manera difiere la forma de los "rebotes" o "ruido" con el circuito anterior.+  * Utilizando un osciloscopio capture el comportamiento de la señal de salida cuando se presiona y se libera el botón. Asegúrese de configurar el osciloscopio en modo "trigger" (disparo) primero para señal creciente y luego para señal decreciente con el mismo periodo de tiempo utilizado con el circuito anterior. **2) Cuántos rebotes presenta la señal al presionar el botón y cuántos rebotes presenta la señal al liberar el botón**. (Haga tres experimentos y calcule el promedio) **3) Comente en qué maneras difiere la forma de la señal en este circuito con respecto al anterior. 4) Comente en qué manera difiere la forma de los "rebotes" o "ruido" con el circuito anterior.**
  
 === Circuito de botón para Arduino === === Circuito de botón para Arduino ===
Line 62: Line 62:
   * Ejecute el programa arduino y cree un archivo nuevo con el siguiente programa:   * Ejecute el programa arduino y cree un archivo nuevo con el siguiente programa:
  
 +<code c>
   void setup(){   void setup(){
     //configure pin2 as an input and enable the internal pull-up resistor     //configure pin2 as an input and enable the internal pull-up resistor
Line 84: Line 85:
     }     }
   }   }
 +</code>
  
   * Guarde dicho archivo con el nombre boton_con_rebotes   * Guarde dicho archivo con el nombre boton_con_rebotes
   * Conecte el botón al arduino de acuerdo al siguiente circuito:   * Conecte el botón al arduino de acuerdo al siguiente circuito:
  
-{{ :teaching:ie0624:rebote3.png?nolink |}}+{{ :teaching:ie0624:rebote3.png?nolink&400 |}}
  
   * Cargue y ejecute el programa en el arduino   * Cargue y ejecute el programa en el arduino
-  * Conecte el osciloscopio al pin D13 del Arduino. Utilizando el osciloscopio capture el comportamiento de la señal de salida cuando se presiona y se libera el botón. Asegúrese de configurar el osciloscopio en modo "trigger" (disparo) primero para señal creciente y luego para señal decreciente con el mismo periodo de tiempo utilizado con el circuito anterior. 5) Comente las diferencias con respecto a los experimentos anteriores. 6) Se presentan rebotes?+  * Conecte el osciloscopio al pin D13 del Arduino. Utilizando el osciloscopio capture el comportamiento de la señal de salida cuando se presiona y se libera el botón. Asegúrese de configurar el osciloscopio en modo "trigger" (disparo) primero para señal creciente y luego para señal decreciente con el mismo periodo de tiempo utilizado con el circuito anterior. **5) Comente las diferencias con respecto a los experimentos anteriores. 6) Se presentan rebotes?**
   * Modifique el programa anterior para eliminar los rebotes por software. Para esto debe leer dos veces la entrada del botón, entre la primera lectura y la segunda lectura debe "esperar" (con delay) un tiempo prudencial para asegurarse que ya han ocurrido todos los rebotes. Si ambos valores coinciden entonces puede cambiar el estado del LED.   * Modifique el programa anterior para eliminar los rebotes por software. Para esto debe leer dos veces la entrada del botón, entre la primera lectura y la segunda lectura debe "esperar" (con delay) un tiempo prudencial para asegurarse que ya han ocurrido todos los rebotes. Si ambos valores coinciden entonces puede cambiar el estado del LED.
   * Corrobore que los rebotes han sido eliminados utilizando el osciloscopio.    * Corrobore que los rebotes han sido eliminados utilizando el osciloscopio. 
Line 104: Line 105:
   * Ejecute el siguiente programa:   * Ejecute el siguiente programa:
  
 +<code c>
   #define ledPin 13   #define ledPin 13
      
Line 139: Line 140:
          
   }   }
 +</code>
  
- +  * **7) Calcule utilizando la hoja de fabricante la frecuencia de parpadeo del LED** 
-  * 7) Calcule utilizando la hoja de fabricante la frecuencia de parpadeo del LED +  * **8) Calcule utilizando la hoja de fabricante el tiempo que el pin D13 (LED) se encuentra en bajo y en alto.**
-  * 8) Calcule utilizando la hoja de fabricante el tiempo que el pin D13 (LED) se encuentra en bajo y en alto. +
   * Agregue al pin D12 un LED con una resistencia en serie conectados a Vcc5V.   * Agregue al pin D12 un LED con una resistencia en serie conectados a Vcc5V.
   * Modifique el programa anterior para encender y apagar el LED del pin D12 utilizando la rutina "loop" de arduino y el comando "delay(1000)"   * Modifique el programa anterior para encender y apagar el LED del pin D12 utilizando la rutina "loop" de arduino y el comando "delay(1000)"
Line 153: Line 154:
   * Ejecute el siguiente programa:   * Ejecute el siguiente programa:
  
 +<code c>
   #define ledPin = 13;   #define ledPin = 13;
   #define interruptPin 2   #define interruptPin 2
Line 169: Line 171:
     digitalWrite(ledPin, digitalRead(ledPin) ^ 1);     digitalWrite(ledPin, digitalRead(ledPin) ^ 1);
   }   }
- +</code> 
-  * 9) Cuándo el LED cambia de estado? Cuando presiona el botón o cuando lo libera?+  * **9) Cuándo el LED cambia de estado? Cuando presiona el botón o cuando lo libera?**
   * Modifique el programa anterior para cambiar el estado del LED (toggle) cuando lo presiona y cuando lo libera.   * Modifique el programa anterior para cambiar el estado del LED (toggle) cuando lo presiona y cuando lo libera.
-  * Examine la señal D13 con el osciloscopio. Si encuentra rebotes, modifique el programa anterior para eliminarlos.+  * Examine la señal D13 con el osciloscopio. Modifique el programa anterior para eliminar los rebotes.
  
 ==== Parte 4. Programa problema (dos blinking simultáneos con variación de frecuencia utilizando interrupción externa) ==== ==== Parte 4. Programa problema (dos blinking simultáneos con variación de frecuencia utilizando interrupción externa) ====
teaching/ie0624/actividad_arduino_timers_ints.1491433992.txt.gz · Last modified: 2022/09/20 00:08 (external edit)