У любого механического контакта есть дребезг. Вопрос только в продолжительности. У цифрового холла внутри компаратор вроде как и он выдает сигнал нормально. Если только магнит около него не трясётся.
У цифрового Холла есть гистерезис. У аналогового - есть ОУ на выходе, соотв. время-импульсная характеристика. У герконов нет ничего, кроме их механической инерции, но и она неплоха.
Да я, каюсь, уже забыл начальные условия. Я дал код, который отрабатывает любое быстрое нажатие-отжатие, при этом отрабатывает дребезг. Его можно запустить с любой скоростью, 100мс было у меня, но это был тренажёр-имитатор довольно медленных процессов. Можно 50, можно 10, можно 1.
Только понял, что вы имели в виду опрос раз в 10 мкс. Вы ведь знаете, что самое тренированное ухо не услышит задержку менее 20мс? Большинство и 100мс не услышит, конечно. Тогда я брал бы за основу опрос раз в 1мс, алгоритм вполне справится.
Вы ведь знаете, что самое тренированное ухо не услышит задержку менее 20мс? Большинство и 100мс не услышит, конечно. Тогда я брал бы за основу опрос раз в 1мс, алгоритм вполне справится.
1. Насколько мне известно, это не так (по поводу 20 мс). Честно говоря, хотелось бы пруф.
2. Но самое главное - речь идет не о задержке (которая вполне допустимо моржет быть единицы мс), а об измерении скорости нажатия на клавишу. Что к задержке - вообще никаким боком.
Оценки я привел. Если считаете, что достаточно 1 мс, аргументируйте.
1. Насколько мне известно, это не так (по поводу 20 мс). Честно говоря, хотелось бы пруф.
2. Но самое главное - речь идет не о задержке (которая вполне допустимо моржет быть единицы мс), а об измерении скорости нажатия на клавишу. Что к задержке - вообще никаким боком.
Оценки я привел. Если считаете, что достаточно 1 мс, аргументируйте.
1. Пруф не найду, давно это было, речь шла о задержке в цифровых гитарных эффектах, и может я сам даже пробовал тогда, не вспомнить. Вспоминаются драйверы AISIO в этой связи почему-то.
2. Нет, скорее вы правы, а я не прав. Я забыл о чём в теме речь. Хотя мне кажется, реакция в 1мс - достаточна. В моём синтезаторе, насколько я понял - только две скорости атаки, но он и стоил недорого. (Нет, четыре)
Музыка - это ж психофизика, тут эмпирически надо. Считаю, что измерительский подход здесь не работает.
1. Обидно. Ведь наверняка есть какие-то биофизические исследования по этому вопросу. Но как-то кроме кустарщины мне ничего не попадалось. Пока исхожу из того, что задержка не должна превышать 7 мс.
2. Протокол MIDI подразумевает для этой величины 127 уровней. Получается, в идеале около 0.5 дБ.
Эмпирически... слух у всех людей разный. Так что нужна статистика. А в этой статистике интересны крайние (а не средние) величины. А тут только подбор методики проведения эксперимента, чтобы он был чувствителен именно к крайним величинам, неочевиден.
1. Обидно. Ведь наверняка есть какие-то биофизические исследования по этому вопросу.
Я тогда читал гитарные форумы, а там, сами понимаете, врядли существует что-либо объективное, кроме что "гитары делают из дерева и струн". И помню, кто-то проверял с разной задержкой из нормальных музыкантов. Получалось, что порог чувствительности около 20мс. Т.е. человек играет струну, и слышит задержку звука, на 20мс уже не слышали.
И слух здесь совсем ни причём. А время реакции. Ну, например, у меня геймерская реакция - около 250-300мс. У профессионального геймера - 100-150мс. То есть тут не порядки и даже не разы.
Эффект предшествования появляется, если последующие фронты волны прибывают между 2 мс и приблизительно на 50 мс позже, чем первый фронт волны. Этот диапазон - иждивенец сигнала. Для речи эффект предшествования исчезает для задержек выше 50 мс, но для музыки эффект предшествования может также появиться для задержек приблизительно 100 мс.
В экспериментах свинцовой задержки с двумя щелчками эффекты локализации включают аспекты подведения итогов локализации, господства локализации и подавления дискриминации задержки. Последние два, как обычно полагают, являются аспектами эффекта предшествования:
Подведение итогов локализации: для временных задержек ниже 2 мс слушатели только чувствуют один звук; его направление между местоположениями звуков лидерства и задержки. Заявление на подведение итогов локализации является стереофонией интенсивности, где два громкоговорителя испускают тот же самый сигнал с разными уровнями, заканчивающимися в локализованном звуковом направлении между обоими громкоговорителями. Локализованное направление зависит от различия в уровне между громкоговорителями.
Господство локализации: для задержек между 2 и 5 мс слушатели также чувствуют один звук; его местоположение определено местоположением ведущего звука.
Подавление дискриминации задержки: для коротких временных задержек слушатели менее способны к различению местоположения отстающего звука.
Для временных задержек выше 50 мс (для речи) или приблизительно 100 мс (для музыки) отсроченный звук воспринят как эхо сначала прибывающего звука.
2Logic: "Задержка так же неисчерпаема, как и атом"...
Вообще-то в предыдущем обсуждении подразумевалась задержка между нажатием на клавишу и началом звучания, а не временной интервал между двумя звуками.
2Schwarz: насчет 100-150 мс - мне эти цифры кажутся несколько подозрительными. На следующей неделе поинтересуюсь у специалиста, занимающегося как раз оценкой скорости реакции в зависимости от психоэмоционального состояния человека (не так давно писал для него программу, измеряющую как раз скорость такой реакции). Насколько я понял, 250-300 мс - это как раз нормальная величина, которая может увеличиваться в неблагоприятных обстоятельствах (утомление, наркотическое и алкогольное опьянение и т.п), но не имеющая предпосылок к уменьшению.
Пришел по Вашей ссылке из ветки об "использовании аналоговых входов в качестве цифровых". Спасибо за скетч. Задача состояла в правильной последовательности включения и выключения двигателя и тормоза поворотного устройства антенны. При нажатии любой из клавиш управления вращением в одну или другую сторону сначала должен включиться электромагнит, механически разблокирующий поворотный механизм, а затем уже включиться двигатель. При отпускании клавиши все должно работать в обратной последовательности. Нажатие может иметь диапазон от кратковременного до минуты с небольшим, а задержка включения-выключения ну не более 0,5 секунды, я думаю. В пульте управления такая последовательность включения обеспечивается конструктивным расположением микропереключателей, то есть при нажатии сначала происходит срабатывание электромагнита, а при дальнейшем нажатии срабатывает микропереключатель двигателя. То есть, опять же механическим путем. В качестве датчика азимута применен потенциометр, а в качестве устройства отображения - микроамперметр, у которого на фоне шкалы нанесена проекция земного шара с центром в Японии (поворотка японская где-то 80-х годов выпуска), а отклонение стрелки указывает текущий азимут. Естественно использовать в таком виде невозможно, поэтому мы ее сразу перевели на Ардуино. Сын написал программу расчета и отображения азимута, а также калибровки по азимуту в полевых условиях. Управление вращением через Ардуино не реализовывалось. Сейчас он и слышать не хочет про программный код, так как устает от него на работе, да еще дополнительно работает вечером, поэтому решил взяться сам. Набросал вчера алгоритм, а потом в голову пришла мысль о том, что клавиши ведь уже обеспечивают необходимую последовательность работы, поэтому, если их перенести с непосредственного управления тормозом и двигателем (я это сделал на твердотельном реле) на вход Ардуино, то тогда все сведется к простому управлению выходами.
Для чего все это нужно? Существует проект американского радиолюбителя "Ардуино- контроллер поворотного устройства" https://github.com/k3ng/k3ng_rotator_controller , предоставляющий широкие возможности для управления по азимуту и углу места (элевации), подключения дополнительных устройств, шаговых двигателей, компасов, GPS, часов, связи с компьютером и т д. В данном случае меня интересовало только управление по азимуму от встроенного потенциометра и связь по USB с программой, которая может управлять вращением или автоматически осуществлять поворот на нужного корреспондента. Все это там реализовано, но скетч очень труден для понимания. В нем свыше 14000 строк + порядка 30 закладок/библиотек (когда открываешь в Arduino IDE, даже все не вмещаются на закладках), из которых используются несколько в зависимости от железа и хотелок. Включение необходимой опции осуществляется путем снятия комментов в строке, а отключение, наоборот, закомментированием. Кстати, мне не удалось там заставить правильно осуществлять задержку. Она почему то срабатывает только при выключении и найти это место в скетче я не смог.
Имея в наличии три поворотки, одна стационарная и две для выездов на соревнования, я их все перевел на Ардуино. Но две не имеют тормоза и с ними все проще. Однако, на случай отказа скетча американца (на возможные сбои Ардуино от сигнала передатчика) предусмотрел возможность перепрограммирования контроллера на скетч, написанный сыном и который прошел проверку в реальных условиях. Для этого пришлось "подогнать железо" под схему американца, чтобы ничего не пришлось перепаивать. А у него датчик азимута на А0, элевация на А1 (я ее не исползую, поэтому порт задействован под клавиатуру, аналогичную шилду с кнопками - используется в ПО сына для калибровки, установки требуемого азимута и сохранения данных в EEPROM), А2 и А3 для управления вращением, кнопки на землю. Поэтому пришлось включать подтягивающие резисторы digitalWrite(16, HIGH); digitalWrite(17, HIGH); А чтобы не определять нажата клавиша или нет по аналоговому значению и задал вопрос на форуме, так как состояние цифрового пина определяется проще. LOW или HIGH. Так что для управления электромагнитом тормоза можно будет задействовать А4. Прошу сильно не пинать за столь подробное описание. Мне уже 69 и изучать С++ не так уж легко. Из опыта, только давно чуть-чуть ассемблер PDP-11 и еще немного для ПИКов.
R3EZ, зачем себя мучить.Если человек может внятно составить техническое задание и описать его в виде блок-схеиы, то перевести эту блок-схему в скетч Ардуины не сложно, как минимум с помощью цифрового автомата с лямда функцией. Но народ деградировал до того что не то-то изучить Си, но и даже составить блок-схему ему это, как выйти в космос с балкона.
R3EZ, зачем себя мучить.Если человек может внятно составить техническое задание и описать его в виде блок-схеиы, то перевести эту блок-схему в скетч Ардуины не сложно, как минимум с помощью цифрового автомата с лямда функцией. Но народ деградировал до того что не то-то изучить Си, но и даже составить блок-схему ему это, как выйти в космос с балкона.
Ребята, не забывайте, что это только часть программы. А надо еще постоянно определять азимут и отображать изменение его на LCD. Delay() здесь не прокатит, иначе будут пропуски. Значит нужно использовать millis() чтобы не было тормозов. Можно пойти комбинированным путем: при смене ПО использовать аппаратное переключение клавиш управления вращением с аналоговых входов на входы твердотельных реле управления. Тем более, что они также замыкаются на землю. Всего то скоммутириовать три провода. Пока обдумываю наиболее приемлемый вариант.
Ребята, не забывайте, что это только часть программы. А надо еще постоянно определять азимут и отображать изменение его на LCD. Delay() здесь не прокатит, иначе будут пропуски. Значит нужно использовать millis() чтобы не было тормозов. Можно пойти комбинированным путем: при смене ПО использовать аппаратное переключение клавиш управления вращением с аналоговых входов на входы твердотельных реле управления. Тем более, что они также замыкаются на землю. Всего то скоммутириовать три провода. Пока обдумываю наиболее приемлемый вариант.
Посмотрел. Подобное есть и у DT0ITC https://www.youtube.com/watch?v=JSVVbKjGE1E, даже скетч имеется. Но я не увидел в нем поддержку эмуляции интерфейса YAESU GS232B. А из-за этого и затевался весь этот сыр-бор. Именно нужен интерфейс YAESU GS232, который обеспечивает софт K3NG. И работает безупречно. Для моих потребностей хватит и NANO, хотя все сделано на UNO, а в распоряжении есть все от NANO до MEGA, кроме 3,2" дисплея. Определять азимут и вращать двигатель дело нехитрое. Куда сложнее организовать интерфейс GS232, а у K3NG это сделано и работает отлично. Но эта тема другого форума и другого сайта.
To: MYFRIEND
Спасибо за предложение, но пока продумываю вариант аппаратного перехода управления в обход Ардуино, хотя алгоритм набросал. Для меня это аппаратно сделать проще, чем программно, хотя понимаю что не рационально. Извините, уже старый. Вопрос на форуме задал, чтобы сразу ответили грамотные люди, хотя это несложно было проверить практически. Но, как всегда бывает на форумах, налетели тролли, поэтому нет желания дальше продолжать эту тему.
сделал модель в Ares такой кнопки с адресным светодиодом WS2812B из геймерских клавиатур,
кто будет делать свою клавиатуру, держите кому нужно мою модель https://yadi.sk/d/BfFLFAmjp3ioWg за ошибки не несу ответственность, если найдете исправляйте сами, модели не тестировались ещё у китайцев на заводе, дырку в модели что бы сделать дырку перенести на слой board edge
как добавить писал тут, проще простого в отличие от других способов, http://arduino.ru/forum/apparatnye-voprosy/pomekhi-v-upravlenii-svetodiodnoi-lentoi-ws2812b#comment-429554 и там есть модель светодиода WS2812B сделал сам кому нужно выше есть плакат WS2812B все делал сам нигде ничего нет точно, ничего не нашол, сделал сам все что не нашол, держите, сэкономите много человекосасов, даже если потом пригодится, берите пока дают
такие кнопки дешевле выйдут не на развес, а в сборе с клавиатурой ZERO, выйдет дешевле чем кнопки отдельно, там стоят не RGB светодиоды, а китайцы пишут RGB клавиатура, а разноцветные одноцветные светодиоды, по китайским меркам RGB, но нет. На развес такие кнопки дороже, используют в механических клавиатурах. Почитайте кому нужно в гугл механические клавиатуры для геймеров. Там диоды стоят на всех кнопках в ZERO и одновременные нажатия таких клавиатур возможно неограничены ничем. Кто хочет RGB клавиатуру проще сделать самому, а не из одноцветных китайских светодиодов ZERO например, брал на запчасти вытащить кнопки, вышло дешевле чем кнопки отдельно.
Открывайте новую тему, GS232 на ардуино nano, может помогут...
Зачем? У меня из трех повороток только одна имеет электромагнитный тормоз. Остальные уже перевел на софт K3NG. Только вот с управлением тормозом у него что-то не то.
так и есть, вы просто смотрите матрицу кнопок и выводите состояние после прочтения.
как вариант (ИМХО самый понятный и простой для понимания) создать матрицу значений переменных строка 06 и после строки 57 проверять чего туда записано и выводить в порт только нужное. У вас простой опросник, думаю даже не вы его писали, иначе этого вопроса бы небыло.
Спасибо за ответ.Извените не силен в програмировании если не трудно дабавте пожалуйста в скетч. Спасибо.
мне не трудно, но это не решит ваших проблем, а нянькаться у меня нет интереса. Было дело делал железку вместе с другим коллегой - помогали друг-другу.
В вашем случае получится не помошь а сделать вместо вас - это долго т.к. вы потом зададите новый вопрос, а потом еще и еще... но может кому и интересно будет.
Green, начало топика в посте 176. тут вопрос в другом, ТС не в состоянии сам написать и просит помощи написать - вот и вся суть... ну и ТЗ вообще не озвучено, кроме кл-ва кнопок и способа организации матрицы кнопок.
Может кто имеет время помочь, я могу только направить (банально нет времени).
Да, со временем и у меня проблема, ибо время - деньги. Тут есть нюансики при куче сработанных шлейфов, ну и дребезг, но всё реально. psv1962, пишите htpicc@gmail.com, решим.
Да, со временем и у меня проблема, ибо время - деньги. Тут есть нюансики при куче сработанных шлейфов, ну и дребезг, но всё реально. psv1962, пишите htpicc@gmail.com, решим.
Green, нюансики с дребезгом решаются кроссплатой с драйверами линий т.е. подачей "значительного" тока для защиты от наводок и нашим любимым RC фильтром + программно. По большому счету задача реально выполнима и не слишком сложная. При условии, что ТС ничего не утаивает.. а то сколько раз уже выяснялись в оконцове, что хотелка из области фантастики.
Да, Григорий, зачастую желания расходятся с действительностью.( Естественно всё зависит от ситуации на месте, расстояний и пр. Но главное - желание, ибо нет ничего невозможного.)
Да вообще-то перестраховка, чтобы оно и через 10 лет работало так же. Вообще, самая простая защита от дребезга - пореже опрашивать.
датчики Холла или герконы не имеют дребезга совсем? датчик Холла скорее всего к hc165 должен подключиться, спасибо за ответы!
У любого механического контакта есть дребезг. Вопрос только в продолжительности. У цифрового холла внутри компаратор вроде как и он выдает сигнал нормально. Если только магнит около него не трясётся.
У цифрового Холла есть гистерезис. У аналогового - есть ОУ на выходе, соотв. время-импульсная характеристика. У герконов нет ничего, кроме их механической инерции, но и она неплоха.
Да, этот код работал 1 раз в 100мс.
Судя по сообщению №14, ТС нужно опрпеделить время между двумя замыканиями контактов: в начале и в конце хода клавиши музыкальной клавиатуры.
Грубые оценки:
- максимальная скорость клавиши 30 м/с,
- ход клавиши 0.5 см (=0.005 м),
- погрешность не более 0.5 дБ (= 6%).
разница между срабатываниями 0.005/30 = 167 мкс,
6% от этой величины 10 мкс.
Вывод: опрашивать нужно всего в 10000 раз чаще.
Вывод: опрашивать нужно всего в 10000 раз чаще.
Да я, каюсь, уже забыл начальные условия. Я дал код, который отрабатывает любое быстрое нажатие-отжатие, при этом отрабатывает дребезг. Его можно запустить с любой скоростью, 100мс было у меня, но это был тренажёр-имитатор довольно медленных процессов. Можно 50, можно 10, можно 1.
Только понял, что вы имели в виду опрос раз в 10 мкс. Вы ведь знаете, что самое тренированное ухо не услышит задержку менее 20мс? Большинство и 100мс не услышит, конечно. Тогда я брал бы за основу опрос раз в 1мс, алгоритм вполне справится.
Вы ведь знаете, что самое тренированное ухо не услышит задержку менее 20мс? Большинство и 100мс не услышит, конечно. Тогда я брал бы за основу опрос раз в 1мс, алгоритм вполне справится.
2. Но самое главное - речь идет не о задержке (которая вполне допустимо моржет быть единицы мс), а об измерении скорости нажатия на клавишу. Что к задержке - вообще никаким боком.
Оценки я привел. Если считаете, что достаточно 1 мс, аргументируйте.
1. Насколько мне известно, это не так (по поводу 20 мс). Честно говоря, хотелось бы пруф.
2. Но самое главное - речь идет не о задержке (которая вполне допустимо моржет быть единицы мс), а об измерении скорости нажатия на клавишу. Что к задержке - вообще никаким боком.
Оценки я привел. Если считаете, что достаточно 1 мс, аргументируйте.
1. Пруф не найду, давно это было, речь шла о задержке в цифровых гитарных эффектах, и может я сам даже пробовал тогда, не вспомнить. Вспоминаются драйверы AISIO в этой связи почему-то.
2. Нет, скорее вы правы, а я не прав. Я забыл о чём в теме речь. Хотя мне кажется, реакция в 1мс - достаточна. В моём синтезаторе, насколько я понял - только две скорости атаки, но он и стоил недорого. (Нет, четыре)
Музыка - это ж психофизика, тут эмпирически надо. Считаю, что измерительский подход здесь не работает.
1. Обидно. Ведь наверняка есть какие-то биофизические исследования по этому вопросу. Но как-то кроме кустарщины мне ничего не попадалось. Пока исхожу из того, что задержка не должна превышать 7 мс.
2. Протокол MIDI подразумевает для этой величины 127 уровней. Получается, в идеале около 0.5 дБ.
Эмпирически... слух у всех людей разный. Так что нужна статистика. А в этой статистике интересны крайние (а не средние) величины. А тут только подбор методики проведения эксперимента, чтобы он был чувствителен именно к крайним величинам, неочевиден.
1. Обидно. Ведь наверняка есть какие-то биофизические исследования по этому вопросу.
Я тогда читал гитарные форумы, а там, сами понимаете, врядли существует что-либо объективное, кроме что "гитары делают из дерева и струн". И помню, кто-то проверял с разной задержкой из нормальных музыкантов. Получалось, что порог чувствительности около 20мс. Т.е. человек играет струну, и слышит задержку звука, на 20мс уже не слышали.
И слух здесь совсем ни причём. А время реакции. Ну, например, у меня геймерская реакция - около 250-300мс. У профессионального геймера - 100-150мс. То есть тут не порядки и даже не разы.
И исследования есть, и восприятие звука не совсем реакция. Например http://inform-hifi.narod.ru/3.htm или http://ru.knowledgr.com/00422135/%D0%AD%D1%84%D1%84%D0%B5%D0%BA%D1%82%D0...
Эффект предшествования появляется, если последующие фронты волны прибывают между 2 мс и приблизительно на 50 мс позже, чем первый фронт волны. Этот диапазон - иждивенец сигнала. Для речи эффект предшествования исчезает для задержек выше 50 мс, но для музыки эффект предшествования может также появиться для задержек приблизительно 100 мс.
В экспериментах свинцовой задержки с двумя щелчками эффекты локализации включают аспекты подведения итогов локализации, господства локализации и подавления дискриминации задержки. Последние два, как обычно полагают, являются аспектами эффекта предшествования:
Для временных задержек выше 50 мс (для речи) или приблизительно 100 мс (для музыки) отсроченный звук воспринят как эхо сначала прибывающего звука.
Кривовато переведено, но масштаб цифр очевиден.
2Logic: "Задержка так же неисчерпаема, как и атом"...
Вообще-то в предыдущем обсуждении подразумевалась задержка между нажатием на клавишу и началом звучания, а не временной интервал между двумя звуками.
2Schwarz: насчет 100-150 мс - мне эти цифры кажутся несколько подозрительными. На следующей неделе поинтересуюсь у специалиста, занимающегося как раз оценкой скорости реакции в зависимости от психоэмоционального состояния человека (не так давно писал для него программу, измеряющую как раз скорость такой реакции). Насколько я понял, 250-300 мс - это как раз нормальная величина, которая может увеличиваться в неблагоприятных обстоятельствах (утомление, наркотическое и алкогольное опьянение и т.п), но не имеющая предпосылок к уменьшению.
Здравствуйте, MYFRIEND!
Пришел по Вашей ссылке из ветки об "использовании аналоговых входов в качестве цифровых". Спасибо за скетч. Задача состояла в правильной последовательности включения и выключения двигателя и тормоза поворотного устройства антенны. При нажатии любой из клавиш управления вращением в одну или другую сторону сначала должен включиться электромагнит, механически разблокирующий поворотный механизм, а затем уже включиться двигатель. При отпускании клавиши все должно работать в обратной последовательности. Нажатие может иметь диапазон от кратковременного до минуты с небольшим, а задержка включения-выключения ну не более 0,5 секунды, я думаю. В пульте управления такая последовательность включения обеспечивается конструктивным расположением микропереключателей, то есть при нажатии сначала происходит срабатывание электромагнита, а при дальнейшем нажатии срабатывает микропереключатель двигателя. То есть, опять же механическим путем. В качестве датчика азимута применен потенциометр, а в качестве устройства отображения - микроамперметр, у которого на фоне шкалы нанесена проекция земного шара с центром в Японии (поворотка японская где-то 80-х годов выпуска), а отклонение стрелки указывает текущий азимут. Естественно использовать в таком виде невозможно, поэтому мы ее сразу перевели на Ардуино. Сын написал программу расчета и отображения азимута, а также калибровки по азимуту в полевых условиях. Управление вращением через Ардуино не реализовывалось. Сейчас он и слышать не хочет про программный код, так как устает от него на работе, да еще дополнительно работает вечером, поэтому решил взяться сам. Набросал вчера алгоритм, а потом в голову пришла мысль о том, что клавиши ведь уже обеспечивают необходимую последовательность работы, поэтому, если их перенести с непосредственного управления тормозом и двигателем (я это сделал на твердотельном реле) на вход Ардуино, то тогда все сведется к простому управлению выходами.
Для чего все это нужно? Существует проект американского радиолюбителя "Ардуино- контроллер поворотного устройства" https://github.com/k3ng/k3ng_rotator_controller , предоставляющий широкие возможности для управления по азимуту и углу места (элевации), подключения дополнительных устройств, шаговых двигателей, компасов, GPS, часов, связи с компьютером и т д. В данном случае меня интересовало только управление по азимуму от встроенного потенциометра и связь по USB с программой, которая может управлять вращением или автоматически осуществлять поворот на нужного корреспондента. Все это там реализовано, но скетч очень труден для понимания. В нем свыше 14000 строк + порядка 30 закладок/библиотек (когда открываешь в Arduino IDE, даже все не вмещаются на закладках), из которых используются несколько в зависимости от железа и хотелок. Включение необходимой опции осуществляется путем снятия комментов в строке, а отключение, наоборот, закомментированием. Кстати, мне не удалось там заставить правильно осуществлять задержку. Она почему то срабатывает только при выключении и найти это место в скетче я не смог.
Имея в наличии три поворотки, одна стационарная и две для выездов на соревнования, я их все перевел на Ардуино. Но две не имеют тормоза и с ними все проще. Однако, на случай отказа скетча американца (на возможные сбои Ардуино от сигнала передатчика) предусмотрел возможность перепрограммирования контроллера на скетч, написанный сыном и который прошел проверку в реальных условиях. Для этого пришлось "подогнать железо" под схему американца, чтобы ничего не пришлось перепаивать. А у него датчик азимута на А0, элевация на А1 (я ее не исползую, поэтому порт задействован под клавиатуру, аналогичную шилду с кнопками - используется в ПО сына для калибровки, установки требуемого азимута и сохранения данных в EEPROM), А2 и А3 для управления вращением, кнопки на землю. Поэтому пришлось включать подтягивающие резисторы digitalWrite(16, HIGH); digitalWrite(17, HIGH); А чтобы не определять нажата клавиша или нет по аналоговому значению и задал вопрос на форуме, так как состояние цифрового пина определяется проще. LOW или HIGH. Так что для управления электромагнитом тормоза можно будет задействовать А4. Прошу сильно не пинать за столь подробное описание. Мне уже 69 и изучать С++ не так уж легко. Из опыта, только давно чуть-чуть ассемблер PDP-11 и еще немного для ПИКов.
R3EZ, зачем себя мучить.Если человек может внятно составить техническое задание и описать его в виде блок-схеиы, то перевести эту блок-схему в скетч Ардуины не сложно, как минимум с помощью цифрового автомата с лямда функцией. Но народ деградировал до того что не то-то изучить Си, но и даже составить блок-схему ему это, как выйти в космос с балкона.
цифрового автомата с лямда функцией.
Чего?
Расстрелять через повешение с последующей отправкой на принудительные работы!
R3EZ, зачем себя мучить.Если человек может внятно составить техническое задание и описать его в виде блок-схеиы, то перевести эту блок-схему в скетч Ардуины не сложно, как минимум с помощью цифрового автомата с лямда функцией. Но народ деградировал до того что не то-то изучить Си, но и даже составить блок-схему ему это, как выйти в космос с балкона.
Пух, это не норот деградировал, это ты воспарил
цифрового автомата с лямда функцией.
Чего?
Ребята, не забывайте, что это только часть программы. А надо еще постоянно определять азимут и отображать изменение его на LCD. Delay() здесь не прокатит, иначе будут пропуски. Значит нужно использовать millis() чтобы не было тормозов. Можно пойти комбинированным путем: при смене ПО использовать аппаратное переключение клавиш управления вращением с аналоговых входов на входы твердотельных реле управления. Тем более, что они также замыкаются на землю. Всего то скоммутириовать три провода. Пока обдумываю наиболее приемлемый вариант.
Ну это понятно. Если "заказчик" хочет, того что не знает, но "хочет очень сильно", то дело увы безнадежно.
Ребята, не забывайте, что это только часть программы. А надо еще постоянно определять азимут и отображать изменение его на LCD. Delay() здесь не прокатит, иначе будут пропуски. Значит нужно использовать millis() чтобы не было тормозов. Можно пойти комбинированным путем: при смене ПО использовать аппаратное переключение клавиш управления вращением с аналоговых входов на входы твердотельных реле управления. Тем более, что они также замыкаются на землю. Всего то скоммутириовать три провода. Пока обдумываю наиболее приемлемый вариант.
А проект VU2JIH не смотрел?
Здравствуйте, MYFRIEND!
Если можно продолжим в вашей теме хорошо? ! это здесь было http://arduino.ru/forum/pesochnitsa-razdel-dlya-novichkov/ispolzovanie-analogovykh-vkhodov-v-kachestve-tsifrovykh#comment-429278
здесь только кнопки) а то выйдет прерывание) вашей темой. Там вам напишут обязательно.
Посмотрел. Подобное есть и у DT0ITC https://www.youtube.com/watch?v=JSVVbKjGE1E, даже скетч имеется. Но я не увидел в нем поддержку эмуляции интерфейса YAESU GS232B. А из-за этого и затевался весь этот сыр-бор. Именно нужен интерфейс YAESU GS232, который обеспечивает софт K3NG. И работает безупречно. Для моих потребностей хватит и NANO, хотя все сделано на UNO, а в распоряжении есть все от NANO до MEGA, кроме 3,2" дисплея. Определять азимут и вращать двигатель дело нехитрое. Куда сложнее организовать интерфейс GS232, а у K3NG это сделано и работает отлично. Но эта тема другого форума и другого сайта.
To: MYFRIEND
Спасибо за предложение, но пока продумываю вариант аппаратного перехода управления в обход Ардуино, хотя алгоритм набросал. Для меня это аппаратно сделать проще, чем программно, хотя понимаю что не рационально. Извините, уже старый. Вопрос на форуме задал, чтобы сразу ответили грамотные люди, хотя это несложно было проверить практически. Но, как всегда бывает на форумах, налетели тролли, поэтому нет желания дальше продолжать эту тему.
сделал модель в Ares такой кнопки с адресным светодиодом WS2812B из геймерских клавиатур,
кто будет делать свою клавиатуру, держите кому нужно мою модель https://yadi.sk/d/BfFLFAmjp3ioWg за ошибки не несу ответственность, если найдете исправляйте сами, модели не тестировались ещё у китайцев на заводе, дырку в модели что бы сделать дырку перенести на слой board edge
как добавить писал тут, проще простого в отличие от других способов, http://arduino.ru/forum/apparatnye-voprosy/pomekhi-v-upravlenii-svetodiodnoi-lentoi-ws2812b#comment-429554 и там есть модель светодиода WS2812B сделал сам кому нужно выше есть плакат WS2812B все делал сам нигде ничего нет точно, ничего не нашол, сделал сам все что не нашол, держите, сэкономите много человекосасов, даже если потом пригодится, берите пока дают
такие кнопки дешевле выйдут не на развес, а в сборе с клавиатурой ZERO, выйдет дешевле чем кнопки отдельно, там стоят не RGB светодиоды, а китайцы пишут RGB клавиатура, а разноцветные одноцветные светодиоды, по китайским меркам RGB, но нет. На развес такие кнопки дороже, используют в механических клавиатурах. Почитайте кому нужно в гугл механические клавиатуры для геймеров. Там диоды стоят на всех кнопках в ZERO и одновременные нажатия таких клавиатур возможно неограничены ничем. Кто хочет RGB клавиатуру проще сделать самому, а не из одноцветных китайских светодиодов ZERO например, брал на запчасти вытащить кнопки, вышло дешевле чем кнопки отдельно.
Куда сложнее организовать интерфейс GS232, а у K3NG это сделано и работает отлично. Но эта тема другого форума и другого сайта.
Открывайте новую тему, GS232 на ардуино nano, может помогут...
Открывайте новую тему, GS232 на ардуино nano, может помогут...
Зачем? У меня из трех повороток только одна имеет электромагнитный тормоз. Остальные уже перевел на софт K3NG. Только вот с управлением тормозом у него что-то не то.
Извините, что ответил в этой теме.
так и есть, вы просто смотрите матрицу кнопок и выводите состояние после прочтения.
как вариант (ИМХО самый понятный и простой для понимания) создать матрицу значений переменных строка 06 и после строки 57 проверять чего туда записано и выводить в порт только нужное. У вас простой опросник, думаю даже не вы его писали, иначе этого вопроса бы небыло.
Спасибо за ответ.Извените не силен в програмировании если не трудно дабавте пожалуйста в скетч. Спасибо.
Спасибо за ответ.Извените не силен в програмировании если не трудно дабавте пожалуйста в скетч. Спасибо.
мне не трудно, но это не решит ваших проблем, а нянькаться у меня нет интереса. Было дело делал железку вместе с другим коллегой - помогали друг-другу.
В вашем случае получится не помошь а сделать вместо вас - это долго т.к. вы потом зададите новый вопрос, а потом еще и еще... но может кому и интересно будет.
Лень читать весь топик.) Да можно любое кол-во одновременно нажатых кнопок регистрировать, если изгалиться. Вопрос только в понятии "одновременно".)
Green, начало топика в посте 176. тут вопрос в другом, ТС не в состоянии сам написать и просит помощи написать - вот и вся суть... ну и ТЗ вообще не озвучено, кроме кл-ва кнопок и способа организации матрицы кнопок.
Может кто имеет время помочь, я могу только направить (банально нет времени).
Да, со временем и у меня проблема, ибо время - деньги. Тут есть нюансики при куче сработанных шлейфов, ну и дребезг, но всё реально. psv1962, пишите htpicc@gmail.com, решим.
Да, со временем и у меня проблема, ибо время - деньги. Тут есть нюансики при куче сработанных шлейфов, ну и дребезг, но всё реально. psv1962, пишите htpicc@gmail.com, решим.
Green, нюансики с дребезгом решаются кроссплатой с драйверами линий т.е. подачей "значительного" тока для защиты от наводок и нашим любимым RC фильтром + программно. По большому счету задача реально выполнима и не слишком сложная. При условии, что ТС ничего не утаивает.. а то сколько раз уже выяснялись в оконцове, что хотелка из области фантастики.
Да, Григорий, зачастую желания расходятся с действительностью.( Естественно всё зависит от ситуации на месте, расстояний и пр. Но главное - желание, ибо нет ничего невозможного.)