Arduino ile zaman ayarlı damlama sulama sistemi

emreaslan59

Yeni Üye
14 Tem 2020
2
0
1
Merhaba size bir projem hakkında teknik bir sorum olacaktı İnternette araştırmama rağmen çözüm bulamadım. Arduino ile kontrol ettiğim RTC ve Solenoid vana ile zaman ayarlı bir damlama sulama sistemi yapmak istiyorum fakat transistör ve diyot ile solenoid vana için sürücü devresi kurmama rağmen vanayı tetiklediğimde RTC saati sıfırlanıyor hatta arka arkaya buton ile tetiklersem arduino kendine reset atıyor ve solenoid vana uçlarını ölçtüğümde anlık olarak 1400 V gibi gerilim değerleri görüyorum bunun sebebi ne olabilir acaba? Yardımcı olabilirseniz çok sevinirim şimdiden teşekkür ederim, iyi günler.
 

Seelenkind

Yeni Üye
Platin Üye
3 May 2020
26
21
3
Almanya
www.hilmi-soenmez.com
İsim
Hilmi Sönmez
Cinsiyet
Erkek
Buna benzer mi sizin şema ? Paylaşım yaparken bunu şema resmi ve kod ile yaparsanız , arkadaşlar daha çabuk çözüm bulabilirler.
1595141540737.png

Arduino soleoid tetiklendiğinde kendine reset atıyorsa koruma için kullanılan diodlardan geriye akım geçiyor demektir . Her diodun üretim kullanım amacına göre belirli bir gerilmi tutuma kapasitesi vardır. Daha yüksek gerilimi geçirmeyen diod kullanmak yararlı olur belki.
 
  • Beğen
Tepkiler: writersoul

emreaslan59

Yeni Üye
14 Tem 2020
2
0
1
Buna benzer mi sizin şema ? Paylaşım yaparken bunu şema resmi ve kod ile yaparsanız , arkadaşlar daha çabuk çözüm bulabilirler.
Ekli dosyayı görüntüle 275

Arduino soleoid tetiklendiğinde kendine reset atıyorsa koruma için kullanılan diodlardan geriye akım geçiyor demektir . Her diodun üretim kullanım amacına göre belirli bir gerilmi tutuma kapasitesi vardır. Daha yüksek gerilimi geçirmeyen diod kullanmak yararlı olur belki.
2 adet 12V solenoid vanayı kontrol etmek istiyorum bu vana 6V ile de kontrol edilebiliyor. Devreyi ve kodları fotoğraf olarak paylaştım kullandığım diyot 1N4007, kullandığım transistör ise BDX53C modeli. Diyot 1000V a kadar dayanabiliyor ben solenoidi tetikledikten sonra diyot üstünde 1400V gibi gerilim değerleri ölçtüm.

Fotoğraftan kodları takip etmesi zor ise buraya da kodları yazı olarak koyuyorum;

#include <virtuabotixRTC.h>

int solenoidPin = 9;
int solenoidPin2 = 10;
int CLK_PIN=8;
int DAT_PIN=7;
int RST_PIN=6;
int manualbuton=2;
int stopbuton=3;
int butondurum;
int butondurum2;
int greenled=4;
int redled=5;
int istenensaat=19;
int istenensaat2=20;
int sayac=0;
int sayac2=0;


virtuabotixRTC myRTC(CLK_PIN, DAT_PIN, RST_PIN);

void setup() {
Serial.begin(9600);
pinMode(solenoidPin, OUTPUT);
pinMode(solenoidPin2, OUTPUT);
pinMode(manualbuton, INPUT_PULLUP);
pinMode(stopbuton, INPUT_PULLUP);
pinMode(greenled, OUTPUT);
pinMode(redled, OUTPUT);
myRTC.setDS1302Time(0,04, 18, 1, 22, 6, 2020); //Kodu yükle sonra kaldır tekrar yükle.

}

void loop() {
myRTC.updateTime();
Serial.print(myRTC.hours);
Serial.print(":");
Serial.print(myRTC.minutes);
Serial.print(":");
Serial.print(myRTC.seconds);
Serial.print(" ");
Serial.print(sayac);
Serial.print(" ");
Serial.println(sayac2);

butondurum=digitalRead(manualbuton);
if(butondurum == 0)
{
delay(10);
while(digitalRead(manualbuton) == 0)
{
digitalRead(manualbuton);
}
sayac++;
}
butondurum2=digitalRead(stopbuton);
if(butondurum2 == 0)
{
delay(10);
while(digitalRead(stopbuton) == 0)
{
digitalRead(stopbuton);
}
sayac2++;
}

switch(sayac)
{
case 1:
if(sayac == 1)
{
digitalWrite(solenoidPin, HIGH);
digitalWrite(solenoidPin2, HIGH);
digitalWrite(redled, HIGH);
digitalWrite(greenled, LOW);
}
break;
case 2:
if(sayac == 2 || sayac == 0)
{
digitalWrite(solenoidPin, LOW);
digitalWrite(solenoidPin2, LOW);
digitalWrite(redled, LOW);
digitalWrite(greenled, HIGH);
sayac = 0;
}
break;

}

if(myRTC.dayofweek == 1 || myRTC.dayofweek == 3 || myRTC.dayofweek == 5 || myRTC.dayofweek == 7)
{

if(myRTC.hours == istenensaat && myRTC.minutes == 45 && myRTC.seconds == 0)
{

digitalWrite(solenoidPin, HIGH);

}
if(myRTC.hours == 20 && myRTC.minutes == 0 && myRTC.seconds ==0)
{
digitalWrite(solenoidPin, LOW);
}
if(myRTC.hours == istenensaat2 && myRTC.minutes == 1 && myRTC.seconds ==0)
{
digitalWrite(solenoidPin2, HIGH);
}
if(myRTC.hours == 20 && myRTC.minutes == 16 && myRTC.seconds == 0)
{
digitalWrite(solenoidPin2, LOW);
}


switch(sayac2)
{
case 1:
if(sayac2 == 1)
{
digitalWrite(solenoidPin, LOW);
digitalWrite(solenoidPin2, LOW);
digitalWrite(redled, HIGH);
digitalWrite(greenled, HIGH);
}
break;

case 2:
if(sayac2 == 2)
{
sayac2=0;
digitalWrite(redled, LOW);
}
break;
}


}
if(sayac !=1 && sayac2 !=1)
{
digitalWrite(greenled, HIGH);
}


}
 

Ekli dosyalar

Son düzenleme:

Robotikforum.net Nedir?

  • Robotikforum.net 2020 yılında kurulup yayın hayatına başlayan ve Türkiye’de robotik kodlama alanının gelişimine katkıda bulunmak için bu alan ile ilgilenen bireylerin bir birleri ile yardımlaşmaları ve fikir danışmalarını sağlayarak daha iyi öğrenmek için her bir bireyin bilgisini ve tecrübesini alarak kendini geliştirebileceği ve sorularına cevap bulabileceği bir platform olarak kurulmuştur.

Bilgilendirme!!!

İçerik sağlayıcı paylaşım sitelerinden biri olan www.robotikforum.net Adresimizde T.C.K 20.ci Madde ve 5651 Sayılı Kanun'un 4.cü maddesinin (2).ci fıkrasına göre TÜM ÜYELERİMİZ yaptıkları paylaşımlardan sorumludur.

Sayfamızı beğendin mi?