Hocam giriş yapmak sıkıntı olmaz mı Bence çıkış yapmak daha mantıklı en azından devreyi etkilemez. Yada IDLE mode'a çekilebilir.Genelde sıkıntı çıkmaz. Ama içiniz
rahat olması açısından giriş ve pull-up
yapabilirsiniz.
Vcc veya GND seviyesini bastırarak gelen
sinyal zaten herkesi korkutur. Öncelikle
donanımsal önlemler almak gerekli.
Pini giriş yapıp Z seviyesinde bırakınca;
iç yapıyı bozacak gerilim epey ciddi büyüklükte
demek. Pinlerin giriş/çıkış olmasından bunun
koruma altına alınması gerekli.
Konuyu açan arkadaşın kafası karışmasın:
*Şimdilik kafana göre takıl. Geliştirdiğin projelere
göre zaten gerekli önlemleri alman hususu
kendini belli eder.
Burada bana göre iki olay
var:
Biri debounce gecikmesi ilave
edildi mi? Biri de rölede
ters diyot var mı?
Hatta motor uçlarında da
diyot olmalı.
int buton=2;
int s1=3;
int s2=4;
int motorileri=5; // birinci röleyi açıp kapatıyor
int motorgeri=6; // ikinci röleyi açıp kapatıyor
int butondurumu;
int s1durumu;
int s2durumu;
void setup()
{
pinMode(buton,INPUT);
pinMode(s1,INPUT);
pinMode(s2,INPUT);
pinMode(motorileri,OUTPUT);
pinMode(motorgeri,OUTPUT);
digitalWrite(motorileri,HIGH); // RÖLELER SÜREKLİ ÇEKİLİ OLMAMASI İÇİN
digitalWrite(motorgeri,HIGH); // RÖLELER SÜREKLİ ÇEKİLİ OLMAMASI İÇİN
digitalWrite(motorgeri,LOW); // RESETLEYİNCE MOTORU BAŞLANGIÇ KONUMUNA GETİRMEK İÇİN
}
void loop()
{
s1durumu=digitalRead(s1); // ilk siviç durumunu oku
s2durumu=digitalRead(s2); // son siviç durumunu oku
butondurumu=digitalRead(buton); // buton durumunu oku
if(butondurumu == HIGH) // eğer start butonuna basıldı ise
digitalWrite(motorileri,LOW); // Birinci röleye güç vererek motor ileri yi çalıştır
if(s1durumu==HIGH) // eğer ilk sivice basıldı ise
{
digitalWrite(motorileri,HIGH); // ileri gitmekte olan motoru durdur
delay(150); // BEKLE
}
if (s1durumu==HIGH) // eğer ilk siviç basılı ise (ki şu anda basılı bekliyor)
{
digitalWrite(motorgeri,LOW); // motoru geri çevir
}
if(s2durumu==HIGH) // son sivice basıldı ise
{
digitalWrite(motorgeri,HIGH); // geriye dönen motoru durdur ve tekrar START butonuna basılana dek bekle
}
}
int buton=2;
int s1=3;
int s2=4;
int motorileri=5; // birinci röleyi açıp kapatıyor
int motorgeri=6; // ikinci röleyi açıp kapatıyor
int butondurumu;
int s1durumu;
int s2durumu;
void setup()
{
pinMode(buton,INPUT);
pinMode(s1,INPUT);
pinMode(s2,INPUT);
pinMode(motorileri,OUTPUT);
pinMode(motorgeri,OUTPUT);
digitalWrite(motorileri,HIGH); // RÖLELER SÜREKLİ ÇEKİLİ OLMAMASI İÇİN
digitalWrite(motorgeri,HIGH); // RÖLELER SÜREKLİ ÇEKİLİ OLMAMASI İÇİN
digitalWrite(motorgeri,LOW); // RESETLEYİNCE MOTORU BAŞLANGIÇ KONUMUNA GETİRMEK İÇİN
}
void loop()
{
//s1durumu=digitalRead(s1); // ilk siviç durumunu oku
//s2durumu=digitalRead(s2); // son siviç durumunu oku
//butondurumu=digitalRead(buton); // buton durumunu oku
/******************************************************************************
* Buradaki düzeltme gibi diğerlerini de siz yaparsınız. */
//if(butondurumu == HIGH) // eğer start butonuna basıldı ise
if(digitalRead(buton) == HIGH)
{
delay(20);//Debounce gecikmesi
//if(butondurumu == HIGH)
if(digitalRead(buton) == HIGH)// Gecikmeden sonra hala buton basılı mı?
{
digitalWrite(motorileri,LOW); // Birinci röleye güç vererek motor ileri yi çalıştır
}
}
/********************************************************************************/
//if(s1durumu==HIGH) // eğer ilk sivice basıldı ise
if(digitalRead(s1) == HIGH)
{
delay(20);
if(digitalRead(s1) == HIGH)
{
digitalWrite(motorileri,HIGH); // ileri gitmekte olan motoru durdur
delay(150); // BEKLE
}
}
//----Burayı anlamadım----
if (s1durumu==HIGH) // eğer ilk siviç basılı ise (ki şu anda basılı bekliyor)
{
digitalWrite(motorgeri,LOW); // motoru geri çevir
}
//if(s2durumu==HIGH) // son sivice basıldı ise
if(digitalRead(s2) == HIGH)
{
delay(20);
if(digitalRead(s2) == HIGH)
{
digitalWrite(motorgeri,HIGH); // geriye dönen motoru durdur ve tekrar START butonuna basılana dek bekle
}
}
}
We use cookies and similar technologies for the following purposes:
Do you accept cookies and these technologies?
We use cookies and similar technologies for the following purposes:
Do you accept cookies and these technologies?