Pages: [1]   Go Down
Author Topic: Consejo en un código, Flip Flop tipo T  (Read 1138 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Newbie
*
Karma: 0
Posts: 7
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hola, estoy tratando de implementar un flip flop tipo T, es mi primer código en arduino, he programado en c++ antes asi que traté de asociarlo, pero no funciona, el led se queda ahi titilando, alguna idea ????

acá el código http://pastebin.com/BGhBMCjs
Logged

Donostia
Offline Offline
God Member
*****
Karma: 0
Posts: 740
elektronikadonbosco
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Pedazo código que has escrito para un simple toggle  smiley-grin

yo creo que hay un problema con la lectura del pulsador, sin el esquema eléctrico no se exactamente como tienes montado la lectura del botón. Si el programa solo consiste en cambiar el estado de una salida según un pulsador, el programa tiene que estar leyendo todo el rato el estado de ese pulsador. MIs alumnos suelen hacerlo así
Code:
Main(){
if ((digitalRead(3) == HIGH))
  {
    delay(20);
    if ((digitalRead(3) == LOW))
    {
    }
  }
}

No está muy optimizado pero es efectivo y fácil de comprender. Respecto al delay(20) es para evitar rebotes que genera el pulsador al pulsarse.

Yo creo que es más optimo usar un while en vez de 2 if, de esta manera está dentro del while hasta que se pulsa el botón.

Por otra parte para un toggle miraría Bitwise NOT (~) porque al fin y al cabo lo que tienes que hacer es cambiar de estado 2 salidas cuando se pulse el botón. No lo he probado pero de esta manera debería de salir un código minusculo. Salu2 y suerte
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 7
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Pedazo código que has escrito para un simple toggle  smiley-grin

yo creo que hay un problema con la lectura del pulsador, sin el esquema eléctrico no se exactamente como tienes montado la lectura del botón. Si el programa solo consiste en cambiar el estado de una salida según un pulsador, el programa tiene que estar leyendo todo el rato el estado de ese pulsador. MIs alumnos suelen hacerlo así
Code:
Main(){
if ((digitalRead(3) == HIGH))
  {
    delay(20);
    if ((digitalRead(3) == LOW))
    {
    }
  }
}

No está muy optimizado pero es efectivo y fácil de comprender. Respecto al delay(20) es para evitar rebotes que genera el pulsador al pulsarse.

Yo creo que es más optimo usar un while en vez de 2 if, de esta manera está dentro del while hasta que se pulsa el botón.

Por otra parte para un toggle miraría Bitwise NOT (~) porque al fin y al cabo lo que tienes que hacer es cambiar de estado 2 salidas cuando se pulse el botón. No lo he probado pero de esta manera debería de salir un código minusculo. Salu2 y suerte

Muchas gracias por tus consejos, la verdad no mire ningun tutorial, me tiré al agua e iba creando tantas variables como creia que hacian falta, voy a ver si logro terminarlo smiley
Logged

Pages: [1]   Go Up
Jump to: