Вопросы настройки, программирования, прошивки микроконтроллеров и микросхем программируемой логики
Тема закрыта

atTiny2313 некорректно распознает нажатие кнопки на землю!?

Пт июл 06, 2012 15:59:21

Здравствуйте всем! Очень нужна помощь.
Делаю приблуду для автомобиля - там мне нужно распознавать нажатие педали тормоза. Делаю следующую схему.
Изображение
Код:
   IN R16, PINA
      BST R16, 0 
      BRTS label_SKIP4 ; branch if T=1

         //----обработка педали тормоза-----//

         //////@@@@@   //////@@@@@      
         SBI PORTB, 4  ; светодиод   
         
         label_BRAKE000:       
            SBIS PINA, 0     ; skip if  HIGHT
            rjmp label_BRAKE000            

         CBI PORTB, 4  ; светодиод         
         //////@@@@@   //////@@@@@   

         SBR R31, 0b00100000   // устанавливаем флаг ТОРМОЗА
         LDI R16, 0x0   //останавливаем таймер
         OUT   TCCR0B,R16

вырезка кода из программы.

Проблемма в следующем - если вот так подключаю как на схеме нарисовано - при нажатии на педаль тормоза - ничего не происходит, т.е. как на PINA, 0 была логическая единица так и остается, т.е. несрабатывает хотя все ведь верно --- земля появляется - и должен появлятся логический НУЛЬ.

Если же я достану предохранитель на 15А из авто, то все срабатывает!!!! - земля появляется, и появляется логический нуль! НО в авто ведь перестают работать стоп-сигналы, а это недопустимо :) :)

В чем беда и как этого избежать?! Код программы невиноват, т.к. мы видим на результат налицо - достал предохранитель (порвал цепь аккума +12В) - все работает , земля при нажатии на педаль появляется.
А если этого не делать - то земя не появляется! Но почему!? нажму на педаль - появляется земля - т.е. и стопсигналы у авто загорелись от +12В, но и земля ведь появилась и для МК, почему он ее не видит...

Крен естественно подключен к аккуму авто. Диод стоит 1N какойто (1N4007 или чето такое), непомню точно, но мощный. Что это за глюки, что я не предусмотрел!?

ps если тема не в правильном разделе прошу модератора перенести.
Вложения
999.jpg
схема
(121.09 KiB) Скачиваний: 557

Re: atTiny2313 некорректно распознает нажатие кнопки на земл

Пт июл 06, 2012 16:12:53

Прикольно, а там разве не все время весит +12в(кроме предохранителя конечно) не зависимо от нажатия педали.
Может с другой стороны кнопки подключится? Там по крайней мере появляется исчезает 12в при нажатии отпускании педали .

Re: atTiny2313 некорректно распознает нажатие кнопки на земл

Пт июл 06, 2012 16:30:31

phanis писал(а):Прикольно, а там разве не все время весит +12в(кроме предохранителя конечно) не зависимо от нажатия педали.
Может с другой стороны кнопки подключится? Там по крайней мере появляется исчезает 12в при нажатии отпускании педали .


да. в том месте где я подключился к проводке машины все время висит +12В не зависимо от нажатия педали. Но мне то что что там висит? Нажму на кнопку там появится ведь земля?! Появится я так предпологаю, и с моей ножки МК должно уйти напряжение по пути ДИОД-Педаль Тормоза-Стопсигналы - Земля. И на ноге моей МК следовательно должен быть ноль.

Или оно так не уйдет т.к. оно может пойдет ДИОД-+12В аккума, и земли тогда не будет... Я просто не разбираюсь в потенциалах что куда пойдет...

Может с другой стороны кнопки подключится?
ну ессли с другой стороны кнопки подключится то при моей такой схеме - то просто получится на ноже МК будет постоянный ЛОГ НУЛЬ, т.к. будет постоянно на земле.

Re: atTiny2313 некорректно распознает нажатие кнопки на земл

Пт июл 06, 2012 16:35:57

А как же тогда лампочки загораются если с обоих сторон лампочек ноль? При нажатии кнопка замкнет цепь и с другой стороны кнопки появится+12в при отпускании почти ноль. Лампочки имеют некоторое сопротивление. Программу конечно, придется не много переделать.

Re: atTiny2313 некорректно распознает нажатие кнопки на земл

Пт июл 06, 2012 17:26:19

Не могли бы вы мне набросать схемку (или поправить мою) как сделать что бы все работало.
Если я подключу ногу МК после Педали Тормоза (а не до, как сейчас) - то мне надо убрать подтяжку 10кОм к 5Вольтам?
И в программе настроить порт на вход без подтяжки (получится вход Hi-Z ) и тупо проверять - если педаль нажата - то на ножке будет +12В - т.е. ЛОГ ОДИН, а если педаль не нажата - то на ножке будет всегда ЛОГ НОЛЬ. Так сделать? Все будет работать стабильно, хаотично прыгать состояния из ЛОГ НОЛЬ в ЛОГ ОДИН не будут?
Вход Hi-Z — режим высокоимпендансного входа.
Этот режим включен по умолчанию. Все вентили разомкнуты, а сопротивление порта очень велико. В принципе, по сравнению с другими режимами, можно его считать бесконечностью. То есть электрически вывод как бы вообще никуда не подключен и ни на что не влияет. Но! При этом он постоянно считывает свое состояние в регистр PIN и мы всегда можем узнать что у нас на входе — единица или ноль. Этот режим хорош для прослушивания какой либо шины данных, т.к. он не оказывает на шину никакого влияния. А что будет если вход висит в воздухе? А в этом случае напряжение будет на нем скакать в зависимости от внешних наводок, электромагнитных помех и вообще от фазы луны и погоды на Марсе (идеальный способ нарубить случайных чисел!). Очень часто на порту в этом случае нестабильный синус 50Гц — наводка от сети 220В, а в регистре PIN будет меняться 0 и 1 с частотой около 50Гц

Re: atTiny2313 некорректно распознает нажатие кнопки на земл

Пт июл 06, 2012 17:35:55

Без переделок схемы (за исключением места подключения и при условии что хотя бы одна из ламп накаливания стоп сигнала исправна) устройство заработает если изменить программу, просто теперь нажатая педаль будет давать лог1 отпущенная лог0.
Ну еще есть другие варианты. Более опытные коты я надеюсь подскажут.

Re: atTiny2313 некорректно распознает нажатие кнопки на земл

Пт июл 06, 2012 22:58:22

вообщем убрал подтяжку к 5Вольтам, присоедини провод после выключателя педали тормоза, и настроил порт МК просто на вход без подтяжки, т.е. в режиме Hi-Z.
Переписал наоборот опрос пина, и все стало норм.
Вообщем вопрос решен, но всеравно не понятно почему в моей схеме не хотело оно на землю замыкаться при нажатии на педаль, значит оно шло не попути к земле, а на +12 шло...

Re: atTiny2313 некорректно распознает нажатие кнопки на земл

Сб июл 07, 2012 16:26:26

Я предлагал оставить примерно так
________ педаль ________
__ нажата ______ отпущена _
Изображение Изображение

Re: atTiny2313 некорректно распознает нажатие кнопки на земл

Сб июл 07, 2012 20:36:43

так прицепи за контактом педали оптрончик (светодиодом от +12 через источник тока на lm317 к "корпусу" , а транзистор сего оптрона прицепи на вход МК) :beer:
(см.приложенное)
Вложения
развязка.JPG
(8.27 KiB) Скачиваний: 607

Re: atTiny2313 некорректно распознает нажатие кнопки на земл

Пн июл 09, 2012 22:00:29

phanis писал(а):Я предлагал оставить примерно так
________ педаль ________
__ нажата ______ отпущена _

ну я сделал тоже самое, только подтяжку на 5Вольт убрал - нафига она мне :) не нажата - ноль вольт, нажата - 12 вольт (т.е. логическая единица)
а в протеусе у тебя на 'зеленых проводах' стрелочки как бы нарисованы - это программа рисует или сам?
BOB51 писал(а):так прицепи за контактом педали оптрончик (светодиодом от +12 через источник тока на lm317 к "корпусу" , а транзистор сего оптрона прицепи на вход МК)

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

Re: atTiny2313 некорректно распознает нажатие кнопки на земл

Вт июл 10, 2012 05:33:54

это не сложности, а примитивная классика...
можно еще геркончик в катушке поставить или простейшую релюху с обмоткой на 12 вольт и замыкающим контактом для совсем ленивых :)))

Re: atTiny2313 некорректно распознает нажатие кнопки на земл

Вт июл 10, 2012 10:20:18

добавлю бочку дёгтя в эту ложку меда :)))
при таком включении, т.е. просто диод на ножку, мк гарантированно выйдет из строя, ввиду того что в бортовой сети авто, при работающем двигателе, присутствуют импульсы отрицательной полярности, амплитудой значительно больше 12В.

Re: atTiny2313 некорректно распознает нажатие кнопки на земл

Вт июл 10, 2012 12:46:53

Сделал вот так
Изображение

а откуда там берутся эти импульсы?
я предполагаю так - что в генераторе присутствует регулятор напряжения - который и будет заниматься тем что бы напряжение не было больше 14,5В , и что бы не возникало таких всяких импульсов, а было все ровно и хорошо.

Re: atTiny2313 некорректно распознает нажатие кнопки на земл

Вт июл 10, 2012 12:52:38

alek777 писал(а):... и что бы не возникало таких всяких импульсов, а было все ровно и хорошо.

ну тогда рекомендую почитать теорию, про то как образуется искра в цилиндрах, думаю у тебя явно не дизель, или для тебя теория слишком нудна, возьми осцилограф и посмотри что творится в бортовой сети авто :wink:

Re: atTiny2313 некорректно распознает нажатие кнопки на земл

Вт июл 10, 2012 13:01:34

GP1 писал(а):ну тогда рекомендую почитать теорию, про то как образуется искра в цилиндрах, думаю у тебя явно не дизель, или для тебя теория слишком нудна, возьми осцилограф и посмотри что творится в бортовой сети авто :wink:

Присоединяюсь...
Да, и не забудь, загрузить полный салон и багажник огнетушителями :facepalm:

Re: atTiny2313 некорректно распознает нажатие кнопки на земл

Вт июл 10, 2012 13:17:05

GP1 писал(а):ну тогда рекомендую почитать теорию, про то как образуется искра в цилиндрах, думаю у тебя явно не дизель, или для тебя теория слишком нудна, возьми осцилограф и посмотри что творится в бортовой сети авто :wink:

прям заинтересовался как же она там возникает - почитаю...

но у меня в данный момент дизель, - у него в бортовой сети дела получше значит?

Re: atTiny2313 некорректно распознает нажатие кнопки на земл

Вт июл 10, 2012 13:29:13

в дизеле да, таких проблем нет.

Re: atTiny2313 некорректно распознает нажатие кнопки на земл

Вт июл 10, 2012 14:49:56

Мне кажется, что лучше вместо диода поставить резистор на 10 - 20 кОм. И никаких подтяжек не включать. Нажал - 1, отпустил - 0. А входное напряжение 12 вольт ограничится на внутренних защитных диодах.

Re: atTiny2313 некорректно распознает нажатие кнопки на земл

Вт июл 10, 2012 14:55:25

Барсик писал(а):... А входное напряжение 12 вольт ограничится на внутренних защитных диодах.

и получишь вольдобавку порядка 0.6-0.8В, плюс стабилизатор на 7805 без защитного диода, плюс еще чего-нибудь ...
и в итоге "ничего не работает, помогите", сколько раз повторялось. :facepalm:

Re: atTiny2313 некорректно распознает нажатие кнопки на земл

Вт июл 10, 2012 15:47:29

но всеравно не понятно почему в моей схеме не хотело оно на землю замыкаться при нажатии на педаль


А ты немного все же представь себе что при нажатии в той точке подключения появится ЗЕМЛЯ. Закон ома и джоуля-ленца, знаешь-ли, неумолим... просто вышибет предохранитель, даже если там на пару вольт будет меньше чем 12В.

Вход микроконтроллера при этом надо защищать. В таких схемах всегда предполагай что напряжение в бортсети в импульсе может достигать 120В, например когда стартер клацает и т.п. это напряжение запросто вышибет вход контроллера. Советую использовать для этих целей схему резистор-супрессор(на общий провод схемы)-резистор. Первый резистор ограничивает ток через супрессор в момент импульса напряжения превышающего напряжение супрессора, а второй резистор защищает защитный диод микроконтроллера - напряжение на супрессоре все же превышает номинал и сильно зависит от тока через супрессор, а с другой стороны защитного диода контроллера стоит инертный конденсатор по питанию - ток необходимо ограничивать, и чем меньше величина тем лучше! Ограничением на второй резистор является чувствительность к помехам и быстродействие. 10-50кОм туда можно применить. Если величина второго резистора будет слишком мала, и конденсатор на питании контроллера будет мал - напряжение питания контроллера сможет превысить отметку в 6В и вывести контроллер из строя. Интегральный стабилизатор в данном случае будет не у дел, он не умеет уменьшать свое ВЫХОДНОЕ напряжение если оно увеличивается со стороны нагрузки, с этим может справится только параметрический на стабилитроне.
Тема закрыта