Stap 3: code!!
#include "OneButton.h"
De acties ik ca doen...
typedef enum {}
ACTION_NONE, / / niets doen.
ACTION_ON, / / set LED "ON"
ACTION_SLOW, / / knipperen van LED "SLOW"
ACTION_FAST / / knipperen van LED "FAST"
}
MyActions;
Opstelling van een nieuwe OneButton op pin A1.
OneButton button(A1, true);
MyActions nextAction = ACTION_NONE; geen actie bij het starten van
code verzoekinstellingen hier eenmaal wilt laten uitvoeren:
VOID Setup {}
de standaard leidde op pin 13 inschakelen.
pinMode (13, OUTPUT); Hiermee stelt u de digitale pen als uitvoer
een koppeling met de myClickFunction functie worden opgeroepen een click-gebeurtenis.
button.attachClick(myClickFunction);
koppelen van de doubleclick-functie moet worden aangeroepen voor een gebeurtenis doubleclick.
button.attachDoubleClick(myDoubleClickFunction);
} / / setup
belangrijkste code hier herhaald laten uitvoeren:
void loop {}
niet-ondertekende lang = millis();
Blijf kijken de drukknop:
button.Tick();
U kunt de uitvoering van andere code hier of gewoon wachten een tijdje
Als (nextAction == ACTION_NONE) {}
niets te doen.
digitalWrite (13, laag);
} else if (nextAction == ACTION_ON) {}
LED inschakelen
digitalWrite (13, hoge);
} else if (nextAction == ACTION_SLOW) {}
doen een langzaam knipperend
Als (nu 1000% < 500) {}
digitalWrite (13, laag);
} else {}
digitalWrite (13, hoge);
} / / Als
} else if (nextAction == ACTION_FAST) {}
Doe een snel knipperend
Als (nu % 200 < 100) {}
digitalWrite (13, laag);
} else {}
digitalWrite (13, hoge);
} / / Als
} / / Als
} / / loop
deze functie wordt aangeroepen wanneer de knop werd ingedrukt 1 keer en hen enige tijd is verstreken.
ongeldig myClickFunction() {}
Als (nextAction == ACTION_NONE)
nextAction = ACTION_ON;
anders
nextAction = ACTION_NONE;
} / / myClickFunction
deze functie wordt aangeroepen wanneer de knop werd ingedrukt 2 keer in een kort tijdsbestek.
ongeldig myDoubleClickFunction() {}
Als (nextAction == ACTION_ON) {}
nextAction = ACTION_SLOW;
} else if (nextAction == ACTION_SLOW) {}
nextAction = ACTION_FAST;
} else if (nextAction == ACTION_FAST) {}
nextAction = ACTION_ON;
} / / Als
} / / myDoubleClickFunction
Einde