Непонятные наводки, прошу помощи

Maxim Z.
Offline
Зарегистрирован: 12.01.2016

Ребят, всем привет.

Такая вот странная история:

Подключаю датчик потока основанный на эффекто холла через прерывание, все работает на ура. Подключаю второй в соседнее гнездо, точно так же, все работает на ура.

Подключаю первый через длинный провод (5м, экранированный, 0,2 квадрата, медь)  и отключаю второй датчик, но оставляю в программе прерывание для него и в итоге, хоть пины разные и прерывания тоже разные, при срабатывании датчика срабатывает оба прерывания.

Подключал внутренние подтягивающие резисторы, подключал отдельные ресисторы, эффекта НОЛЬ.

Пробовал разные варианты срабатывания в прерываниях - эффекта НОЛЬ

Все упирается в длинный провод.

Снимаю его, подключаю датчик к ардуине, нет наводок, подключаю датчик через провод - есть наводки.

Куда смотреть, что делать?!

 

P.S. Причем, если я подключаю другой такой же провод, без датчика, на второе прерывание - наводок тоже нет!

 

MacSim
Offline
Зарегистрирован: 28.11.2012

Maxim Z. пишет:

P.S. Причем, если я подключаю другой такой же провод, без датчика, на второе прерывание - наводок тоже нет!

Может дело не в наводках? как подключаете, обрабатываете покажите. Не будем же гадать.

Maxim Z.
Offline
Зарегистрирован: 12.01.2016

Код:

byte sensorInterrupt = 5;
byte sensorPin       = 18;
byte sensorInterrupt2 = 4;
byte sensorPin2       = 19;
unsigned long pulseCount;
unsigned long pulseCount2;
unsigned long oldTime;


void setup()
{
  Serial.begin(9600);

  pinMode(sensorPin, INPUT);
  digitalWrite(sensorPin, HIGH);

  pinMode(sensorPin2, INPUT);
  digitalWrite(sensorPin2, HIGH);
  
  pulseCount        = 0;
  pulseCount2       = 0;
  oldTime           = 0;

  attachInterrupt(sensorInterrupt, pulseCounter, FALLING);
  attachInterrupt(sensorInterrupt2, pulseCounter2, FALLING);
}

void loop()
{
   
   if((millis() - oldTime) > 1000)
  { 

    detachInterrupt(sensorInterrupt);
    detachInterrupt(sensorInterrupt2);
        
    Serial.print(pulseCount);
    Serial.print("     ");
    Serial.println(pulseCount2); 
    
    attachInterrupt(sensorInterrupt, pulseCounter, FALLING);
    attachInterrupt(sensorInterrupt2, pulseCounter2, FALLING);
    
    oldTime = millis();
  }
}

void pulseCounter()
{
  // Increment the pulse counter
  pulseCount++;
}
void pulseCounter2()
{
  // Increment the pulse counter
  pulseCount2++;
}

 

Готово!

trembo
trembo аватар
Offline
Зарегистрирован: 08.04.2011

Вы построили антенну, подали сигнал с неё на вход прерывания и теперь его обрабатываете.
Что должно было быть не так?

Maxim Z.
Offline
Зарегистрирован: 12.01.2016

Так суть то в том, что пустой порт принимает импульсы. Тот в который на фотке вставлен второй датчик, справа. Как только сигнальный провод из порта 19 вынимаешь, так он начинает считать почти столько же импульсов, сколько в 18 с подключенным датчиком.

Причем попробовал ругую модификацию датчика, от неё такого эффекта нет. Но мне нужно работать именно с этими!(

MacSim
Offline
Зарегистрирован: 28.11.2012

номера портов к которым подключаете 18 и19 ?

программу покажите?

И2С используете? попробуйте перекинуть на инт1 и инт 0. с верхними интами надо смотреть даташит, не помню точно .... какаято каза есть.

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

trembo
trembo аватар
Offline
Зарегистрирован: 08.04.2011

Существование ёмкости между пинами и высокоомное сопротивление входа вы не будете отрицать?

Maxim Z.
Offline
Зарегистрирован: 12.01.2016

Да, 18 и 19, но пробовал все 6 портов прерываний. если порты соседние, то вот такая канитель. Наверное 95% ловит и другео прерывание. Если через порт, то ловит около 10%

Maxim Z.
Offline
Зарегистрирован: 12.01.2016

trembo пишет:

Существование ёмкости между пинами и высокоомное сопротивление входа вы не будете отрицать?

Не имею понятия, я не мега спец в микроэлектроннике.

Давайте поставлю вопрос по другому.

Мне надо удалить этот датчик на 5 метров от контроллера, как правильно это сделать?

Почему не помогают подтягивающие резисторы?

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

Я бы все понял, если бы это ловил пин к которому подключен длинный провод, но ведь ловит свободный пин!

MacSim
Offline
Зарегистрирован: 28.11.2012

Maxim Z. пишет:

Почему не помогают подтягивающие резисторы?

а вы спад ловите или подъем и куда подтягиваете к 0 или +?

программу уж давно бы показали, меньше вопросов было

 

MacSim
Offline
Зарегистрирован: 28.11.2012

Maxim Z. пишет:

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

резистор-подтяжку тоже с кабелем отключаете?

Maxim Z.
Offline
Зарегистрирован: 12.01.2016

Подтягиваю к плюсу. Пробовал встроенные резисторы и внешние (4.7k) ставить.

Что ловить мне все равно. Но когда датчик ловит магнитный фон он выдает плюс, а так держит минус.

Код выложил же перед фотками. Сейчас сделаю его более заметным.

trembo
trembo аватар
Offline
Зарегистрирован: 08.04.2011

1-10 нан повесьте на все входы преываний.
И килоом 20 -50 куда вам надо ( если к питанию- INPUT_PULLUP включайте)

Maxim Z.
Offline
Зарегистрирован: 12.01.2016

Кондер на 1 нанофарад вроде (одной ножкой в на пин, другой к плюсу) вроде помог. Надо еще потестировать.

Но все же, откуда этот эффект взялся? Почему даже при подкючении только (длинного) провода в соседний пин, навоки на него прекращались?

MacSim
Offline
Зарегистрирован: 28.11.2012

сори код просмотрел

ноги как входы не определяйте

, используйте внешнюю подтяжку, ближе к датчику.

подключите к прерываниям 0 и 1

trembo
trembo аватар
Offline
Зарегистрирован: 08.04.2011

Maxim Z. пишет:

Кондер на 1 нанофарад вроде (одной ножкой в на пин, другой к плюсу) вроде помог. Надо еще потестировать.

Но все же, откуда этот эффект взялся? Почему даже при подкючении только (длинного) провода в соседний пин, навоки на него прекращались?

А к плюсу-то зачем? Разницы конечно нет....

Провод один или  в паре с другими? Может быть между ними есть ёмкость?
А существование электромагнитных волн предсказал английский физик Фарадей в 1832 году.
 

Maxim Z.
Offline
Зарегистрирован: 12.01.2016

MacSim пишет:

сори код просмотрел

ноги как входы не определяйте

, используйте внешнюю подтяжку, ближе к датчику.

подключите к прерываниям 0 и 1

Да я потом глянул, он за фотками как то спрятался. решил без спойлера его сделать)))

Попробовал ноги не определять, эффекта нет.

Подтяжку ближе к датчикам тоже попробовал, ситуация не изменилась.

Пробовал на всех прерываниях, если пины соседние, то наводка (или что это ) проскакивает.

trembo пишет:

Maxim Z. пишет:

Кондер на 1 нанофарад вроде (одной ножкой в на пин, другой к плюсу) вроде помог. Надо еще потестировать.

Но все же, откуда этот эффект взялся? Почему даже при подкючении только (длинного) провода в соседний пин, навоки на него прекращались?

А к плюсу-то зачем? Разницы конечно нет....

Провод один или  в паре с другими? Может быть между ними есть ёмкость?
А существование электромагнитных волн предсказал английский физик Фарадей в 1832 году.
 

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

Провод 6ти жильный. Из низ 3 на другой датчик идут (но он никак не влиял) и 3 на этот датчик GND + и сигнал.

С электронаводками я уже сталкивался некоторое премя назад, по этому провод сразу с экраном взял.

Но опять же, были бы наводки на провод - были бы лишние импульсы на 18 ноге, куда подключен этот провод. А импульсы ловит 19 нога, которая пустая или с потягивающим резистором к +. Вот это меня больше всего удивляет.

Хочется все таки догнать откуда лезет это все и почему при подключении датчика не через провод, а напрямую, такого эффекта нет.

Мне это реально взорвало мозг!!!

Maxim Z.
Offline
Зарегистрирован: 12.01.2016

В общем проблему, вероятно, можно считать решенной.

Спасибо за помощь!

Но . . . но если кто то сможет объяснить откуда эта наводка берется, буду очень признателен!

trembo
trembo аватар
Offline
Зарегистрирован: 08.04.2011

Пустая нога ловит импульсы от соседней.
А в кабеле соседние жилы- это конденсатор.
Он эти импульсы "корОтит на землю" ( у вас на питание)

MacSim
Offline
Зарегистрирован: 28.11.2012

Maxim Z. пишет:

В общем проблему, вероятно, можно считать решенной.

Спасибо за помощь!

Но . . . но если кто то сможет объяснить откуда эта наводка берется, буду очень признателен!

электромагнитные волны.

мы их не видим, а они существуют. а беруться много откуда, природные и рукотворные.

Maxim Z.
Offline
Зарегистрирован: 12.01.2016

Парни, спасибо за помощь! ))