Страница 1 из 1

Ненужный сенсор на Mega8

Добавлено: Чт авг 22, 2013 09:13:19
СергейКир
Здравствуйте.
Прошу помочь разобраться.
Mega8 - внешний кварц 8MHz.
Схема простейшая (см. схема.JPG)

Код: Выделить всё

#define   BitIsClear(reg, bit)    ((reg & (1<<bit)) == 0)
//........
void main(void)
{
        DDRC = 0b00000000; //порт C - вход
        PORTC = 0b11111111; //подключаем нагрузочный резистор

  while(1)
    {
	   
	   if (BitIsClear(PINC,0)){
		   		   
		 //тут что-то делаем
	   }
    }


}


Вопрос. Во время работы микроконтроллера, при касании пальцем выхода PC0 (провода) происходит срабатывание кнопки и соответсвенно выполняется "тут что-то делаем".
Какой-то сенсор получается. Как избавиться от такого эффекта?

Re: Ненужный сенсор на Mega8

Добавлено: Чт авг 22, 2013 09:39:09
ploop
Это нормально.
Подтяжку, ту, что R2, надо уменьшить до 1к, или ещё меньше, вплоть до 300 Ом.

Re: Ненужный сенсор на Mega8

Добавлено: Чт авг 22, 2013 09:41:04
СергейКир
ploop писал(а):Это нормально.
Подтяжку, ту, что R2, надо уменьшить до 1к, или ещё меньше, вплоть до 300 Ом.
Думал об этом. Выпаивать не хотелось, точнее один раз перепаял на 5K1, не помогло. Но, раз Вы советуете, сейчас попробую второй раз.

Попытка №2
Попробовал 1K1. "Сенсор" больше не работает через изоляцию провода, но всё ещё работает при касании голого провода. Буду пробовать - 300

Re: Ненужный сенсор на Mega8

Добавлено: Чт авг 22, 2013 10:30:52
pyzhman
Боюсь не поможет, т.к. входное сопротивление портов агромадное. У вас что, по задумке предусмотрено при работе устройства касание порта рукой?

Re: Ненужный сенсор на Mega8

Добавлено: Чт авг 22, 2013 10:52:59
СергейКир
pyzhman писал(а):Боюсь не поможет, т.к. входное сопротивление портов агромадное. У вас что, по задумке предусмотрено при работе устройства касание порта рукой?
Нет, обычный счётчик импульсов. Просто самопроизвольный счёт, при присутствии руки около провода мне не нужен. Ведь контактная группа счётчика соединяется проводами с портом.

Re: Ненужный сенсор на Mega8

Добавлено: Чт авг 22, 2013 10:59:34
СергейКир
Поставил 360 Ом - помогло!!! Спасибо ploop.
Последний вопрос. Как этот эффект зависит от питания МК?
Когда питал от зарядки телефонной (5В), то подтяжка в 10K работала нормально.
Перешёл на 12В - 78L05 - 5В и появился "сенсор".
В чём дело?

Re: Ненужный сенсор на Mega8

Добавлено: Чт авг 22, 2013 11:07:49
ploop
Всё очень просто.
Если питальник имеет емкостную связь с сетью, то наводки могут давать довольно большие токи, и "перетянуть" подтяжку. Решение - использовать качественные БП, или заземлять общий провод.

Допустим, если запитаете схему от батареек, то эффекта может не быть и с внутренней подтяжкой, без дополнительного резистора.

Re: Ненужный сенсор на Mega8

Добавлено: Чт авг 22, 2013 11:13:03
СергейКир
ploop писал(а):Всё очень просто.
Если питальник имеет емкостную связь с сетью, то наводки могут давать довольно большие токи, и "перетянуть" подтяжку. Решение - использовать качественные БП, или заземлять общий провод.

Допустим, если запитаете схему от батареек, то эффекта может не быть и с внутренней подтяжкой, без дополнительного резистора.
Спасибо Вам ещё раз!
P.S. Чувствую, что с каждым днём становлюсь всё умнее.

Re: Ненужный сенсор на Mega8

Добавлено: Чт авг 22, 2013 11:17:54
ploop
Это хорошо, вот только правила форума постарайтесь не нарушать, особенно пункт 2.7

Re: Ненужный сенсор на Mega8

Добавлено: Пн авг 26, 2013 20:38:12
СергейКир
ploop писал(а):не нарушать, особенно пункт 2.7
Принято.

Re: Ненужный сенсор на Mega8

Добавлено: Чт авг 29, 2013 13:24:52
Alexeyslav
все же, мне кажется это срабатывает статика. короткий импульс напряжением в 100 вольт кратковременно пересиливает такую слабую подтяжку, а поскольку опрос проводится уж очень плотно - вероятность возникновения этого события очень высока. В любом случае, вам надо будет еще и "дребезг" от кнопки подавлять, странно что с этим досихпор не столкнулись.

Re: Ненужный сенсор на Mega8

Добавлено: Чт авг 29, 2013 13:28:52
СергейКир
Alexeyslav писал(а): странно что с этим досихпор не столкнулись.
Учитывая, что это второе моё устройство, то нормально :roll:
Дребезг ловлю программно - _delay_ms.
За возможные варианты глюков, спасибо.