improve clicking behavior - no delay()
This commit is contained in:
@ -20,10 +20,7 @@ Adafruit_RGBLCDShield lcd = Adafruit_RGBLCDShield();
|
|||||||
#define WHITE 0x7
|
#define WHITE 0x7
|
||||||
|
|
||||||
|
|
||||||
bool doClicking = false;
|
unsigned long lcdTimeout = 1500;
|
||||||
bool isOn = false;
|
|
||||||
|
|
||||||
unsigned long lcdTimeout = 1000;
|
|
||||||
unsigned long lcdLastSet = 0;
|
unsigned long lcdLastSet = 0;
|
||||||
|
|
||||||
unsigned long debounceDelay = 50;
|
unsigned long debounceDelay = 50;
|
||||||
@ -37,6 +34,11 @@ typedef struct
|
|||||||
|
|
||||||
DebounceButton up, down, left, right, select;
|
DebounceButton up, down, left, right, select;
|
||||||
|
|
||||||
|
bool doClicking = false;
|
||||||
|
unsigned long lastClickTime = 0;
|
||||||
|
int clickColor = 0;
|
||||||
|
|
||||||
|
|
||||||
void setup() {
|
void setup() {
|
||||||
Serial.begin(9600);
|
Serial.begin(9600);
|
||||||
|
|
||||||
@ -46,9 +48,10 @@ void setup() {
|
|||||||
Mouse.begin();
|
Mouse.begin();
|
||||||
Keyboard.begin();
|
Keyboard.begin();
|
||||||
|
|
||||||
Serial.println("AutoClicker3000");
|
lcd.print("AutoClicker 3000");
|
||||||
lcd.print("AutoClicker3000");
|
lcd.setCursor(0, 1);
|
||||||
lcd.setBacklight(WHITE);
|
lcd.print("For Jasper");
|
||||||
|
lcd.setBacklight(YELLOW);
|
||||||
|
|
||||||
lcdLastSet = millis();
|
lcdLastSet = millis();
|
||||||
}
|
}
|
||||||
@ -67,7 +70,6 @@ bool triggered(DebounceButton &b) {
|
|||||||
|
|
||||||
int clickDelay = 100; // millis
|
int clickDelay = 100; // millis
|
||||||
int delayChange = 10; // millis
|
int delayChange = 10; // millis
|
||||||
char modeName[] = "Roblox ";
|
|
||||||
|
|
||||||
void loop() {
|
void loop() {
|
||||||
uint8_t buttons = lcd.readButtons();
|
uint8_t buttons = lcd.readButtons();
|
||||||
@ -127,15 +129,16 @@ void loop() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (doClicking) {
|
if (doClicking) {
|
||||||
if (isOn) {
|
unsigned long time = millis();
|
||||||
lcd.setBacklight(RED);
|
if ((unsigned long)(time - lastClickTime) >= clickDelay) {
|
||||||
|
if (clickColor == RED) {
|
||||||
|
clickColor = WHITE;
|
||||||
|
} else {
|
||||||
|
clickColor = RED;
|
||||||
|
}
|
||||||
|
lcd.setBacklight(clickColor);
|
||||||
Mouse.click(MOUSE_LEFT);
|
Mouse.click(MOUSE_LEFT);
|
||||||
isOn = false;
|
lastClickTime = time;
|
||||||
delay(clickDelay);
|
|
||||||
} else {
|
|
||||||
lcd.setBacklight(WHITE);
|
|
||||||
isOn = true;
|
|
||||||
delay(clickDelay);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -145,6 +148,4 @@ void loop() {
|
|||||||
lcd.print(" ");
|
lcd.print(" ");
|
||||||
lcdLastSet = 0;
|
lcdLastSet = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
// delay(3);
|
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user