Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- const int incrPin = 2;
- const int decrPin = 4;
- const int ledPin = 13;
- int ledState = LOW;
- int changeSpd = 500;
- int changeStep = 0;
- int prevTime = 0;
- int incrButtonState;
- int decrButtonState;
- int lastIncrButtonState = LOW;
- int lastDecrButtonState = LOW;
- unsigned long lastIncrDebounceTime = 0;
- unsigned long lastDecrDebounceTime = 0;
- unsigned long debounceDelay = 50;
- void setup() {
- Serial.begin(9600);
- Serial.println("init");
- prevTime = millis();
- pinMode(incrPin, INPUT);
- pinMode(decrPin, INPUT);
- pinMode(ledPin, OUTPUT);
- digitalWrite(ledPin, ledState);
- }
- void loop() {
- int incrState = digitalRead(incrPin);
- int decrState = digitalRead(decrPin);
- if (incrState != lastIncrButtonState) {
- lastIncrDebounceTime = millis();
- }
- if (decrState != lastDecrButtonState) {
- lastDecrDebounceTime = millis();
- }
- //Serial.println("Current " + String(incrState) + ", Last: " + String(lastIncrButtonState));
- // Serial.println("Tick: " + String(changeStep));
- Serial.println(String(changeSpd));
- if ((millis() - lastIncrDebounceTime) > debounceDelay) {
- if (incrState != incrButtonState) {
- incrButtonState = incrState;
- if (incrState == HIGH) {
- handleIncr();
- }
- }
- }
- if ((millis() - lastDecrDebounceTime) > debounceDelay) {
- if (decrState != decrButtonState) {
- decrButtonState = decrState;
- if (decrState == HIGH) {
- handleDecr();
- }
- }
- }
- lastIncrButtonState = incrState;
- lastDecrButtonState = decrState;
- //Change the light state
- changeStep += (millis() - prevTime);
- prevTime = millis();
- if (changeStep >= changeSpd) {
- ledState = (ledState == 0) ? 1 : 0;
- digitalWrite(ledPin, ledState);
- changeStep = 0;
- }
- }
- void handleIncr() {
- Serial.println("incr");
- changeSpd += 50;
- }
- void handleDecr() {
- Serial.println("decr");
- changeSpd -= 50;
- }
Advertisement
Add Comment
Please, Sign In to add comment