fr0ster, Megakoteyka, хватит уже придираться к человеку. Ну с первого-второго поста непонятно было чего хочет, ну ладно, но с третьего то дошло же, наверное, о чем речь идет. Да, хотелка весьма "нестандартная", но вполне забавная. BTW, битбанг тут не поможет. Чтение даташита на ATmega32U4 приводит к мысли, что на оригинальной Arduino Micro реализовать желаемое вряд ли получится, нужна модифицированная железка.
Никто не придирается. Все разжевали уже, а толку ноль. К нестандартной хотелке неплохо было бы приложить желание хоть немного разобраться в предмете, а вместо этого мы видим поток хамства.
Unixon, спасибо ! извините за глупость, но не сработает, потому что импульс короткий ?... 1 проблема - заставить ардуину послать команду в порт 2 проблема - длина импульса ... как "размазать" сигнал без использования дополнительных компонентов на стороне светодиода ... вот тут да... или ещё что-то упускаю ?
Neon Mind, можете пояснить что именно вы имеете в ввиду? Я лично так и не понял. Вы хотите узнать как передавать нужную вам последовательность байтов через USB порт? Хотите узнать как сделать устройство которое будет зажигать светоиды после того как ему будет отправлено через USB нужная вам последовательность байтов? P.S. Критиковать знания человека, который имеет прямое отношение к программированию космических аппаратов, вы уверены что вам не следует извиниться?
Festour, уверен... надо было или почь или пройти мимо, а не ввинчивать "бред" и "зачем" без объяснений... тем более не знания критикую, а динозавровую непробиваемость и нежелание читать ... не совсем верно вы поняли ... сейчас нарисую ... строго не судите) вопрос: что нужно сделать, чтоб иметь возможность подключать вот так вот светодиод (сейчас хотя бы один) ...и возможно ли это впринципе
Festour et al., ТС интересуется, можно ли управлять выводами контроллера D+ D-, предназначенными для работы с шиной USB, как обычными GPIO, коих по периметру платы тьма. Да вот же ж беда то какая! Они не выведены на единственный супер-крутой-компактный разъем microUSB, а те, что выведены - "D-" и "D+" - не имеют прямого управления или второй функции, как многие другие GPIO. Вон, RESET и тот, какой бы он важный ни был, можно фьюзами забодать и превратить его в обычный GPIO, а тут ни в какую. Драма, однако. Ответ - нет, нельзя, для этого в чипе ATmega32U4 много чего не предусмотрено, зато для работы с USB предусмотрено много чего другого, что в таком перпендикулярном взгляде на использование выводов МК ну никак не помогает.
Unixon, ещё раз спасибо ) хоть мне и нужно только GPO, но наверное действительно не стоит это того ... значит надо искать супер-компактный разъем ...
Прошу топик стартера прощения за оффтоп! Но свои 5 копеек я обязан вставить. Я далек от мысли оспаривать или подвергать сомнению тот факт, что МегакотЭ программирует (и вполне успешно) какие-то там космические аппараты, но вот манера его пояснений и разъяснений - оставляет желать лучшего. У меня у самого не раз возникало желание ему нахамить (вроде даже и хамил )
При отправке в порт числа светодиод очень быстро (настолько, что незаметно будет) моргнет несколько раз и потухнет. А для экономии ног используются сдвиговые регистры. Если так уж важно использовать именно этот разъем, можно отпаять от него контроллер USB и вместо него кинуть перемычки с GPIO. Но прошивать придется программатором по SPI.
Для решения задачи, поднятой в данной теме существует только одно гарантированное решение, требующее физической модификации платы arduino. Необходимо выпаять USB разъем (по крайней мере в UNO от припаян так, что к ножкам иначе не подобраться), и между платой и разъемом поставить переключатели, позволяющие выбирать, к чему подключен разъем - к последовательному порту платы с преобразователем (для прошивки и прочей связи с ПК) или к управляемым пинам. Т.е. от каждого переключателя провод к прежней точке подключения разъема, к соответствующему управляемому пину и к самому разъему. Тогда получится управлять аж тремя светодиодами (земля и три сигнальных в режиме подключения к пинам). Если оставлять старое подключение. то на USB имеется четыре контакта. +5V - скорее всего с платы ничего не приходит (проверять лень). В любом случае не управляется. Преобразователь USB-serial не позволит. GND - земля, она и в африке земля. Мало того, что управляемость аналогичная, так еще и к земле припаян, т.е вечный 0. RX - по определению с платы не управляется, преобразователь не попустит. TX - тут можно попробовать что-то выжать, причем никакой гарантии на получение хоть какого-нибудь положительного результата никто не даст, а желающих проверять, похоже, не предвидится (я однозначно пас). А конкретно можно попробовать, манипулируя содержимым передаваемой в последовательный порт посылки устроить что-то, весьма и весьма отдаленно напоминающее ШИМ. В итоге в лучшем случае имеем управление только одним светодиодом, в худшем - ни одним (считаю более вероятным последнее).
А что мешает тогда просто взять ЮСБ-коннектор и соединить с выводами ардуино? Все едино это не будет протокол ЮСБ, всего лишь использование разьема.
Мешает условие задачи - использовать именно "родной" USB ардуины ("не хочется транжирить место в корпусе ещё одним разъемом") для прямого подключения светодиодов. Задача представляется мне весьма надуманной, но как поставлена, так поставлена, и нормальных решений она просто не имеет.
Имхо, предлагаемый переключатель ничем не отличается от "транжирить место в корпусе еще одним разъемом" )) Решений нет
Подсказываю еще одно решение: изготовить модифицированный вариант этой ардуины со всеми необходимыми изменениями. Т.е. реализовать на плате такого же формата еще и переключение функции USB разъема некоторой цепью (в простейшем случае - перемычками).
Все же несколько отличается. Совсем не обязательно делать тумблеры (после перепрочтения моего текста они, кстати, мне и представились) Можно сваять интеллектуальный электронный переключатель, который булет в случае подачи внешнего питания 9V переключать на режим "светодиод", а при отсутствии оного - на "USB". Детали переключателя вполне можно приткнуть где-то так, чтобы не выходили за габариты выступающих элементов платы. Впрочем, я бы все равно не назвал это полноценным решением проблемы. Как мне кажется, не стоит овчинка выделки. И разработка модифицированной платы того не стоит. Затраты не оправдываются. Уж лучше взять Mini и припаять USB разъем любого типа сразу к нужным управляемым контактам. И задача совмещения функций USB разъема на ардуине сразу сама собой отпадет.
Я так понял задача такова: Нужно включать и выключать светодиод от родного порта USB. Я не уверен но попробуй постоянно слать SerialPrintln а к порту USB попробуй подключить светодиод шунтированный конденсатором, думаю он смажет высокую частоту импульсов. PS это всего лишь теория, сам не пробовал.
С нештатным использованием USB есть одна проблема: USB очень очень сильно не любит, когда на линии между концами висит что-либо и портит сигнал, контроллеры не будут всеми силами преодолевать помехи, они просто отвалятся и будт ждать пока проблема не исчезнет.