как определить, что подключен USB

vde69
Offline
Зарегистрирован: 10.01.2016

хочу код разделить на выполнение при включённом питании от USB, пример:


if (OnUSB()==true){
  Serial.print("=debug.GetParamProc="); 
  Serial.print(" NumParam: "); Serial.print(NumParam); 
  Serial.print(", Term: "); Serial.print(Term); 
  Serial.print(", i1: "); Serial.print(i1); 
  Serial.print(", i2: "); Serial.print(i2);
}
else {
  tone(beepCTRL, 500, 1000);
} 

 

 

 

dimax
dimax аватар
Offline
Зарегистрирован: 25.12.2013

vde69, например припаять перемычку с разъёма usb (+5v) на один из входов МК

vde69
Offline
Зарегистрирован: 10.01.2016

как-то не кошеро...

было-бы класно если-бы был альтернативный монитор порта который умел-бы отправлять что-то в автомате, например

1. в процедуре "setup" ардуинка отправляет на комп "LogLevel=" и ждет 0.5 сек

2.  монитор получает эту команду и отправляет обратно "LogLevel=3"

3. ардуинка получает эту команду и записывает уровень требуемого логирования в переменную, если ответа нет - значит уровень = 0

далее исходя из уровня выводит ту или иную детализацию

Logik
Offline
Зарегистрирован: 05.08.2014

vde69 пишет:
 как-то не кошеро...

эт точно, да и не по корану.

vde69 пишет:
было-бы класно если-бы был альтернативный монитор порта 

Не думаю что это выход. Альтернатив монитору много, можна наверно и с таким извратом найти.  Но не всегда в ПК ардуину тыкают. Надо более универсально. А это и составляет проблему, т.к. реализации USB на разных моделях дохрена разная. На некоторых USB вобще нет, я про минипро. Вот как раз для минипро я хочу эту задачку попробовать решить так - между Rx и Tx поставлю резистор достаточно большой. На Tx установлю 0, и проверю Rx. Если там стал 0 - не подключены. Если 1 значить её нам дали извне и мы подключены. Отпишусь как попробую. Мне это надо для проверки связи между двумя ардуинами, чтоб вывести диагностику при ошибке обмена.