Показать сообщение отдельно
Старый 14.11.2016, 14:16   #700
oleg707
Гуру
 
Аватар для oleg707
 
Регистрация: 16.04.2014
Возраст: 40
Город: Gdynia
Регион: другой - для добавления сообщить ab
Сообщений: 2,548
oleg707 has a reputation beyond reputeoleg707 has a reputation beyond reputeoleg707 has a reputation beyond reputeoleg707 has a reputation beyond reputeoleg707 has a reputation beyond reputeoleg707 has a reputation beyond reputeoleg707 has a reputation beyond reputeoleg707 has a reputation beyond reputeoleg707 has a reputation beyond reputeoleg707 has a reputation beyond repute
По умолчанию

Цитата:
Сообщение от Angels13 Посмотреть сообщение
Добавил в большой скетч из сообщения 307 команды для remote. Просто в конце добавил
.....

if(data>=release_button - button_release_range && data<=release_button + button_release_range && flag == 3 || data>=release_button - button_release_range && data<=release_button + button_release_range && flag == 5 || data>=release_button - button_release_range && data<=release_button + button_release_range && flag == 6)
{
flag = 0;
}
if (data==789) Keyboard.write(218); //стрелка вверх
if (data==405) Keyboard.write(217); //стрелка вниз
if (data==848) Keyboard.write(177); //ESC
}

Все работает - только очень быстро. Буквально мгновенно. Тоесть жмешь вниз и например страница броузера уже внизу. Если постараться нажать быстрее то можно успеть остановить на середине. Жму ESC и он последовательно выходит до конца.
Как можно замедлить?
Как вариант замедлить можно, добавив опрос кнопок раз в какоетовремя
либо после каждого if (data==***) { Keyboard.write(```); delay (300);}

Пример выполнения операции раз в какоетовремя
PHP код:
/* Blink And Print Without Delay
 2013
 by alxarduino @gmail.com
  http:/ /alxarduino.blogspot.com/2013/09/BlinkAndPrintWithoutDelay.html
 */
  
#define LED_PIN  13      // номер выхода,подключенного к светодиоду
#define  BLINK_INTERVAL  5000UL  // интервал между включение/выключением светодиода (5 секунд)
#define PRINT_INTERVAL 1000UL  // периодичность вывода времени в Serial (1 cекунда)
#define SERIAL_SPEED 9600 // скорость работы Serial
  
void setup() {
  
// задаем режим выхода для порта, подключенного к светодиоду
  
pinMode(LED_PINOUTPUT);      
   
  
// задаем скорость работы ком-порта
  
Serial.begin(SERIAL_SPEED);
   
   
}
  
void loop()
{
  
blinkLed(BLINK_INTERVAL);  // мигаем
  
printTime(PRINT_INTERVAL); // выводим время
}
 
// мигает диодом с периодичностью interval
void blinkLed(unsigned long interval ){
  static 
unsigned long prevTime 0// время когда последний раз переключали диод
  
if(millis() - prevTime interval ) {
    
prevTime millis();  // 
    
digitalWrite(LED_PIN,!digitalRead(LED_PIN)); 
  }
}
 
// выводит в Serial время с периодичностью interval
void printTime(unsigned long interval){
  static 
unsigned long prevTime=0;
  if(
millis()-prevTime>interval){
    
prevTime=millis();
     
    
Serial.print("Current time:");
    
Serial.println(millis());
 
  }

oleg707 вне форума   Ответить с цитированием