При подключении платы Digispark к USB компьютера, она определяется как компьютерная мышь.
Принцип работы заключается в том, что при нажатии на кнопку эмитируется нажатие левой кнопки мыши в бесконечном цикле с рандомной задержкой между кликами. За задержку отвечает переменная “j” и она имеет два параметра, это значения 200 и 3000. В нашем случае величина задержки будет генерироваться в пределах от 200 миллисекунд до 3000 миллисекунд.
Остановить цикл можно повторным нажатием на кнопку, или отсоединением платы от компьютера.
Переменная “j” помечена комментарием //НАСТРОЙКА! Настройте её на свое усмотрение и загрузите скетч на плату.
Как прошить плату Digispark на базе микроконтроллера ATtiny 85 смотрите по этой ссылке www.kolotushkin.com/Как прошить плату Digispark на базе микроконтроллера ATtiny 85
или по этой www.youtube.com/Как прошить плату Digispark на базе микроконтроллера ATtiny 85
//Начало скетча
#include "DigiMouse.h"
const int buttonPin = 1;
int buttonState = 0;
int i = 0;//переменная для цикла while
int j = random (200, 3000);//НАСТРОЙКА!
void setup() {
pinMode(buttonPin, INPUT);//определяем переменную buttonPin как вход
DigiMouse.begin();
}
void loop() {
buttonState = digitalRead(buttonPin);//проверка состояния кнопки
if (buttonState == HIGH) {
delay(500);
//если кнопка нажата, то сделать паузу на 500 мс и перейти к while
while (i < 1) {
unsigned long currentTime; //Переменная текущего времени
if (millis() - currentTime > j)
{ currentTime = millis();
j = random (200, 3000);//НАСТРОЙКА!
DigiMouse.setButtons(1 << 0); //нажать на левую кнопку мыши
//DigiMouse.setButtons(2<<0);//нажать на правую кнопку мыши
DigiMouse.delay(50);//Задержка 50 миллисекунд
DigiMouse.setButtons(0);//отпустить все кнопки
DigiMouse.delay(50);//Задержка 50 миллисекунд
}
buttonState = digitalRead(buttonPin); //проверка состояния кнопки
if (buttonState == HIGH) {
delay(500); // Если кнопка нажата, то сделать паузу на 500 мс и выйти из цикла
break;
}
}
}
}
//Конец скетча
//Дополнительные команды
DigiMouse.moveX(20); //переместить курсор вправо на 20 пикселей
DigiMouse.moveX(-20); //переместить курсор влево на 20 пикселей
DigiMouse.moveY(20); //переместить курсор вниз на 20 пикселей
DigiMouse.moveY(-20); //переместить курсор вверх на 20 пикселей
DigiMouse.scroll(10); //крутить колесико вперед на 10
DigiMouse.scroll(10); //крутить колесико назад на 10
В конце скетча имеются Дополнительные команды! На тот случай если вы захотите добавить функции к устройству.
После загрузки припаяйте кнопку к контактам P1 и 5V, как показано на этой схеме.
О том как сделать такую же кнопку смотрите статью “Кнопка Лентяйка для World of Tanks” по этой ссылке www.kolotushkin.com/Кнопка Лентяйка для World of Tanks