ардуино + помпа + мосфет

Лазаренко

✩✩✩✩✩✩✩
10 Янв 2021
66
1
Москва
Делаю простецкий автополив (мой первый проект), чисто для ознакомления. Сделал на макетной плате, все работало, спаял на плате, перестало работать и вообще на ардуинке горит RX и комп ее не видит. Однако судя по мигающему светодиоду L прошивка выполняется на ардуино (я для сигнализации его зажигал). Для подключения нашел в нете такую схему.

1611781309023.png
Когда я паял на плате я сделал так:
1. от ИП (источник питания) в качестве которых выступают 4 пальчиковых батареек, + идет на VIN, - на GND
2. от левой ноги мосфета провод на цифровой пин
3. от средней ноги провод на помпу
4. правая нога мосфета на GND т.е. на минус
5. второй провод помпы хрен знает куда )). Судя по схеме к + ИП, но тогда помпа всегда работает.


все верно я написал или есть косяк?



ПС
еще греется чип на ардуино сильно
 

DAK

★★★✩✩✩✩
8 Окт 2020
517
138
Странно, на картинке провод от источника питания идёт не на тот пин, тоесь не на Vin, а на выход 5 В, хотя судя по описанию всё верно. Думаю надо проверить схему подключения. Мосфеты бывают двух типов, судя по вашей схеме надо ставить n-канальный, судя по Вашему описанию - либо мосфет мёртвый, либо p-канальный.
 

Лазаренко

✩✩✩✩✩✩✩
10 Янв 2021
66
1
Москва
но тогда помпа всегда работает
я вчера после того как написал сообщения добился того что б помпа работала в тот момент когда горит диод, но блин странно как-то он работает, по прошивке надо 10 сек молчит, потом чуть работает и опять молчит, а он после первых же 10 сек не выключается (диод тоже), кукухой короче поехала ). Вообще она то мигает светодиодом как надо, то глючит

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

да блииин, в 3х проводах запутался
1611826929614.png


1611829055464.png
ардуинка по usb питается и не работает.


Стоит впаять ардуинку в плату перестает нормально работать, по таймеру не работает
 

DAK

★★★✩✩✩✩
8 Окт 2020
517
138
Так от юсб она работает или нет? Что на мосфите написано?
 

Лазаренко

✩✩✩✩✩✩✩
10 Янв 2021
66
1
Москва
не работает. Счасс попробую все по полочкам разложить. Вчера на макетке все работало, перенес на распаечную плату перестало работать, причем горел постоянно RX светодиод и комп не видел ардуинку. Сегодня выпаял почистил спиртом и все заработало как надо, я подумал что паяльная кислота просто попала. Залил прошивку повторно, по сигнальному светодиоду (что на 13м пине) видно что программа корректно работает. Стал опять паять на плату (скрины выше), опять блин перестала работать, что от внешнего ИП (подключал как к 5v так и к VIN), так и от usb. RX как вчера не горит, но и светодиод на 13 пине не мигает согласно прошивке, странная херь.


ПС
мосфет
1611855634924.png

вот сейчас полежала, воткнул usb, работает (по крайней мере светодиод корректно мигает) вот че ей нужно то? Счас буду пробовать подключать

блин, работает, от usb и от внешнего, жесть какая-то
 

DAK

★★★✩✩✩✩
8 Окт 2020
517
138
Мосфет верный, плюс ко всему на схеме правильная схема включения. От чего может грется Ардуино? Это скорей всего от того, что Вы на пин 5В подаёте напряжение 6 вольт, этого делать нельзя, такое напряжение можно давать только на Vin. Чип сидит на шарах, перегрев чипа может вызвать ещё те последствия. Мне кажется что для начала Вам надо правильную схемотехнику, обязательно поставьте резисторы, при отключении мосфета, заряд его затвора разряжается через чип ардуинки, а должен разряжаться через резистор между истоком и затвором. Правильно нарисуйте схему, плюс ко всему хочется увидеть код. Если есть возможность, поменяйте Ардуино, только впредь не включайте так, как Вы делали до этого! Только VIn, мосфеты только через резисторы (особенно такие как у Вас).
 

Лазаренко

✩✩✩✩✩✩✩
10 Янв 2021
66
1
Москва
Код простой, вот
C++:
#define workPIN 8
#define seconds 1000
#define minute seconds*60
#define hour minute*60
#define day hour*24

boolean included = false;
uint32_t myTimer;

void setup() {
 
  //Serial.begin(9600);
  pinMode(workPIN, OUTPUT);
  pinMode(13, OUTPUT);
 
  digitalWrite(workPIN, LOW);
}

void loop() {
  bool on = digitalRead(workPIN);
 
  if (millis() - myTimer >= seconds*20 &&  on) {  // сколько работаем
      myTimer = millis();             

      digitalWrite(workPIN, LOW);
      digitalWrite(13, LOW);
  } else if (millis() - myTimer >= seconds*30 && !on) {  // Сколько отдыхаем
      myTimer = millis();   
      
      digitalWrite(workPIN, HIGH);
      digitalWrite(13, HIGH);
  }

 
//  delay(200);
//  Serial.println(on);

}
спасибо за советы, учту
 

DAK

★★★✩✩✩✩
8 Окт 2020
517
138
не вижу криминала в коде. Проблему решили?
 

Лазаренко

✩✩✩✩✩✩✩
10 Янв 2021
66
1
Москва
неа, когда включаю ардуинку, сначала работает как надо, потом перестает (т.е. не мигает светодиодом), заказал резисторы, жду
 

DAK

★★★✩✩✩✩
8 Окт 2020
517
138
неа, когда включаю ардуинку, сначала работает как надо, потом перестает (т.е. не мигает светодиодом), заказал резисторы, жду
А при питании от юсб всё нормально?
кстати, помогите найти на али этот резистор
Этот резисто можно любой больший ставить, поставьте 12к, или 100, неужели из за одного резистора пачку заказывать? Там на Али бывают комплекты, где куча резисторов разных номиналов...
 

Лазаренко

✩✩✩✩✩✩✩
10 Янв 2021
66
1
Москва
сделал отладочный вывод
delay(1000);
Serial.println(on);

сначала все норм, а потом перестает выводить, как буд-то loop просто не входит, видимо реально нужно заменять ардуинку
 
Изменено:
  • Лойс +1
Реакции: DAK