arduino nano, искра от преобразователя и помехи

ecl1pse
Offline
Зарегистрирован: 12.06.2017

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

Собирал картофельную пушку, инициатором взрыва газа в которой является преобразователь, который питают 4 АА батарейки. Просто пушки мне было мало, я решил сделать хронограф на ардуино: две пары светодиод-фоторезистор. Суть сего устройства простая: снаряд при выстреле "задевает" первую пару, в программе происходит прерывание, значение функции micros() записывается в одну переменную, затем снаряд "задевает" вторую пару, значение функции micros() таким же образом записывается уже в другую переменную, вычисляется разница и на нее делится расстояние между парами.

Если тестировать эту систему в сборе уже на пушке (методом выдергивания из ствола какого-нибудь предмета), то все прекрасно работает, скорость выводится на экран.

Проблема в следующем: когда подается питание на преобразователь и в камере сгорания проходит искра, на экране начинают выводиться какие-то дикие значения (12500 или 8333 м/с), при том, что никакого выстрела не происходило и между светодиодами и фоторезисторами ничего не пролетало. Есть мнение, что искра создает помехи, которые влияют на работу ардуино, но это не точно.

У ардуино свой источник питания и с преобразователем он никакими проводами не связан.

Помогите решить эту проблему.

evgta
Offline
Зарегистрирован: 02.09.2016

схема?

Волшебник
Offline
Зарегистрирован: 22.12.2016

Маловероятно что с фоторезисторами вы что то сможете померять, фотодиоды надо. А провода длинные к датчику идут?

ecl1pse
Offline
Зарегистрирован: 12.06.2017

Схема

ecl1pse
Offline
Зарегистрирован: 12.06.2017

Выдергивая баллон освежителя воздуха из ствола, вся система радостно мне показывала скорость примерно 3м/с. Провода около метра в длину, от начала (где датчик) до конца ствола (где ардуино).

evgta
Offline
Зарегистрирован: 02.09.2016

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

ecl1pse
Offline
Зарегистрирован: 12.06.2017

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

Был замечен факт: когда в программе происходит прерывание (из-за задевания датчика), на плате загорается один светодиод и сразу затухает. При подаче искры этот же светодиод тоже загорается и сразу потухает. 

Прилагаю код программы:

#include <LiquidCrystal_I2C.h>

LiquidCrystal_I2C lcd(0x27, 16, 2);

volatile unsigned long start = 0;
volatile unsigned long res = 0;
boolean flag = false;
int result;
double dist = 0.1;
unsigned long dist1;
double Speed; 
double last;

void setup() {
  lcd.init();
  lcd.backlight();
  attachInterrupt(0, Begin, FALLING);
  attachInterrupt(1, End, FALLING);
  lcd.setCursor(0, 0);
  lcd.print("speed: ");
  lcd.setCursor(0, 1);
  lcd.print("last: "); 
}

void loop() { 
  if (flag) {
    flag = false;
    dist1 = dist * 1000000;
    Speed = (double) dist1 / res;
      if (Speed > 0.05)
      {
    lcd.setCursor(7, 0);
    lcd.print(Speed);
    lcd.print("m/s");
    lcd.print("  ");
    lcd.setCursor(6, 1);
    lcd.print(last);
    lcd.print("m/s"); 
    lcd.print("   ");
    last = Speed;
      }
  }
  
}

void Begin () {
  if (!flag){
  start = micros();
  }
}

void End () {
  res = micros() - start;
  flag = true;
}

 

evgta
Offline
Зарегистрирован: 02.09.2016

лучше все свободные пины притягивать к земле или VCC, т.е для всех свободных задать дигиталаут Hi или LOW,

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

ecl1pse
Offline
Зарегистрирован: 12.06.2017

Проблема решена. Просто передвинув всю электронику (кроме преобразователя) на середину ствола (на самом деле непросто), помехи с экрана исчезли. :)