Лишние срабатывания carduino

maxymike
Offline
Зарегистрирован: 11.09.2015

Помогите кто чем может. Есть вот такая вещь http://carduino.ru/product_info.php?products_id=1911 и вот такой датчик http://amperka.ru/product/hc-sr04-ultrasonic-sensor-distance-module. Надобно при расстоянии менее 40 см включать реле шилд. Но во время подачи питания проскакивает секундное переключение реле,что портит весь феншуй. Менять пины не спасло,задержка не выручает,питание пробовал разное, скетч blink тоже щелкает,менять местами low и high-щелчков еще больше. Как жить дальше?

int echoPin = 5; 
int trigPin = 4;
int relePin = 7; 
 
 
void setup() { 
  Serial.begin (9600); 
  pinMode(trigPin, OUTPUT); 
  pinMode(echoPin, INPUT); 
   pinMode(relePin, OUTPUT); 
 
void loop() { 
  int duration, cm; 
  digitalWrite(trigPin, LOW); 
  delayMicroseconds(2); 
  digitalWrite(trigPin, HIGH); 
  delayMicroseconds(10); 
  digitalWrite(trigPin, LOW); 
  duration = pulseIn(echoPin, HIGH); 
  cm = duration / 58;
   if (cm > 40) {
    // turn LED on:
    digitalWrite(relePin, HIGH);}
    
  else {
    // turn LED off:
   digitalWrite(relePin, LOW);
   
  }
 
}
ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

maxymike пишет:

Есть вот такая вещь http://carduino.ru/product_info.php?products_id=1911

Это чё? Нанка за 0x03FF (оно же 2^10-1, оно же 1023)  рублей??? Оххххх.

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

А по сути,

во-первых, всегда следуйте правилам форума при публикации программ.

во-вторых, поменяйте схему так, чтобы пеле включалось сигналом HIGH, а не LOW как у Вас сейчас. Тогда ничего проскакивать не будет. 

James
Offline
Зарегистрирован: 26.02.2016

а оно у него и включается HIGH, просто в начале выстави его в HIGH, а включай LOW

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

James пишет:

а оно у него и включается HIGH, просто в начале выстави его в HIGH, а включай LOW

Нет, Джеймс, смотрите

if (cm > 40) {
    // turn LED on:
    digitalWrite(relePin, HIGH);}
    
  else {
    // turn LED off:
   digitalWrite(relePin, LOW);
   
  }

Как раз, когда расстояние меньше 40 (надо включить) он подаёте LOW.

Отсюда и проблема. При включении МК там сидит LOW - реле включено и будет включено пока явно туда HIGH не пропишет. Отсюда и дергание. А если сделать, что LOW - это выключено, то никакого дергания не будет.

maxymike
Offline
Зарегистрирован: 11.09.2015

Пробовал, вместо одного короткого срабатывания аж три проскакивает

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

maxymike пишет:

Пробовал, вместо одного короткого срабатывания аж три проскакивает

Так не бывает. Выкладывайте схему (наверняка, к земле не притянули)  и актуальный скетч. 

Если и впрямь не приятнули к земле, то поставьте резистор килоом пять от ноги, управляющей реле к земле.

maxymike
Offline
Зарегистрирован: 11.09.2015

Не, не притянул, но мысли были, спасибо. А 1 ком пойдет? Лень специально ехать в магазин

 

James
Offline
Зарегистрирован: 26.02.2016

вот оно чё:) а дело то в железе:)

maxymike
Offline
Зарегистрирован: 11.09.2015

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

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

maxymike пишет:

Не, не притянул, но мысли были, спасибо. А 1 ком пойдет? Лень специально ехать в магазин

 

Ну, в принципе-то подойдёт, но это предел, меньше не стоит. Сами смотрите. 5В / 1000ом = 5мА - т.е. при подаче туда HIGH целых 5мА пойдёт через резистор на землю.  Это совершенно непроизводительная трата энегрии и нагрузка на контроллер.

Т.е. в притяжке это общая идея: чем меньше резистор, тем качественнее притяжка, но тем и больший ток пойдёт в землю.

James
Offline
Зарегистрирован: 26.02.2016

а если еще и программнопритянуть?

duinor
Offline
Зарегистрирован: 16.01.2016

Не понял, зачем притягивать? У модуля реле на входе стоит оптрон 

James
Offline
Зарегистрирован: 26.02.2016

duino.ru пишет:

Не понял, зачем притягивать? У модуля реле на входе стоит оптрон 

Эм... и че?

duinor
Offline
Зарегистрирован: 16.01.2016

Ну и для чего светодиод притягивать к GND?

 

James
Offline
Зарегистрирован: 26.02.2016

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

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

James пишет:

а если еще и программнопритянуть?

К земле? К сожалению, не этом МК. Нету у него такого.

duinor
Offline
Зарегистрирован: 16.01.2016

James пишет:

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

IN1 - это индикатор, который отображает состояние реле

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

Оптрон управляется пином ардуины, тока 10-20мА для зажигания светодиодов достаточно

Так как на пины ардуины можно нагружать до 40мА

James
Offline
Зарегистрирован: 26.02.2016

duino.ru пишет:

Оптрон управляется пином ардуины, тока 10-20мА для зажигания светодиодов достаточно

Так как на пины ардуины можно нагружать до 40мА

ладно  про ин1 я понял, сначала подумал, что схема самодельная, а вот обясни, мне пожалуйста, если ты питаешь с пина ардуины, нахрена там источник питания? или они у тебя встречно на оптрон? VCC - это же не ножка дуины?

James
Offline
Зарегистрирован: 26.02.2016


12В лампочка по приколу, вот просто как оптроны подключаю я

duinor
Offline
Зарегистрирован: 16.01.2016

Зачем R4?

Q2 никода не откроется, так как у него нет соединения с общим проводом оптрона

duinor
Offline
Зарегистрирован: 16.01.2016

James пишет:
а вот обясни, мне пожалуйста, если ты питаешь с пина ардуины, нахрена там источник питания? или они у тебя встречно на оптрон? VCC - это же не ножка дуины?

А премычку ты не заметил? Перемычка конфигурирует питание от ардуины или от внешнего источника

Штирлиц
Штирлиц аватар
Offline
Зарегистрирован: 13.06.2015

поменяйте ваше подключение на это и все будет ок

maxymike
Offline
Зарегистрирован: 11.09.2015

подтяжка не помогает,хоть резистором,хоть программно.Поставил в void setup перед serial begin delay (5000)-при включении молчит,через 5 сек проскакивает вкл-выкл. Добавил в serial print отправку ON-OFF при условии срабатывания реле- лишние срабатывания не отображаются. Попробовал другой реле-модуль-то же самое. Удивительное рядом. Мыслев больше нет

maxymike
Offline
Зарегистрирован: 11.09.2015

Схему не в зуб не понял,я в этом не копенгаген,можно,пожалуйста, на пальцах-какой проводок к какой палочке. Или это модуль перепаивать?