Elektrik Elektronik Teknolojisi Alanı Temrinleri

 
Hoşgeldiniz Ziyaretçi. Lütfen giriş yapın veya kayıt olun.

Kullanıcı adınızı, şifrenizi ve aktif kalma süresini giriniz

Gönderen Konu: 4. 2 Eksen Arduino Shild Güneş Paneli  (Okunma sayısı 13916 defa)

0 Üye ve 2 Ziyaretçi konuyu incelemekte.

12 Haziran 2016, 20:56:33
Yanıtla #15
Çevrimdışı aydindr
*
İleti: 38
Karma 2
Profili Görüntüle 
Akşam evde deneyeceğim hocam elinize sağlık.
Sonucu merakla bekliyoruz
 

13 Haziran 2016, 12:16:58
Yanıtla #16
Çevrimdışı Badwet
*
İleti: 14
Karma 1
Profili Görüntüle 
devreyi çalıştırdığımda motor_saat_yonu_tersi_rolesi direk çıkış veriyor ve 5 sn de bir flash yapıyor ışığı takip etmiyor

benim yazdığım kodları tekrar yüklediğimde sıkıntı yok doğuya döndürüp doğu lm.sw'e bastıktan sonra programı tekrar devam ettiremiyorum döngü orada kalıyor
« Son Düzenleme: 13 Haziran 2016, 12:24:40 Gönderen: Badwet »
Eğer kanatların varsa neden uçmayasın ki??
 

13 Haziran 2016, 14:30:18
Yanıtla #17
Çevrimiçi Hasan ERTÜRK
*
İleti: 563
Teşekkür: 2 Karma 3
Profili Görüntüle Spina Bifida 
Denemem lazım denemeden bir şey diyemeyeceğim. isis sümülasyonda sıkıntı görünmüyordu.
 

13 Haziran 2016, 18:01:06
Yanıtla #18
Çevrimdışı Badwet
*
İleti: 14
Karma 1
Profili Görüntüle 
Aslında  benim yazdığım kodda çözemediğim tek nokta panel batıdan doğuya dönüp doğudaki sw'e bastığında switch basılı kaldığı için sanırım döngü veya işleyiş orada takılı kalıyor bu durumdan kurtarmak için ne yapılmalı??
Eğer kanatların varsa neden uçmayasın ki??
 

13 Haziran 2016, 18:40:14
Yanıtla #19
Çevrimiçi Hasan ERTÜRK
*
İleti: 563
Teşekkür: 2 Karma 3
Profili Görüntüle Spina Bifida 
Şu kodu
Kod:
Kodlari sadece uyeler gorebilir. Lutfen Uye Olun ya da Giris Yapin.
Şu şekilde değiştirip deneyin.
Kod:
Kodlari sadece uyeler gorebilir. Lutfen Uye Olun ya da Giris Yapin.
 

13 Haziran 2016, 19:28:08
Yanıtla #20
Çevrimdışı Badwet
*
İleti: 14
Karma 1
Profili Görüntüle 
Kodu sizin yazdığınız gibi değiştirdiğimde durum pek değişmedi switch case komutu burada işe yarayabilirmi acaba??
Hani batı switchine bastığında şöyle yap veya doğu switchine basılı kaldığında döngüyü devam ettir gibi
Eğer kanatların varsa neden uçmayasın ki??
 

13 Haziran 2016, 19:33:07
Yanıtla #21
Çevrimiçi Hasan ERTÜRK
*
İleti: 563
Teşekkür: 2 Karma 3
Profili Görüntüle Spina Bifida 
doğudaki anahtara basınca ne yapmasını istiyorsunuz
 

13 Haziran 2016, 19:56:47
Yanıtla #22
Çevrimdışı Badwet
*
İleti: 14
Karma 1
Profili Görüntüle 
doğu anahtarına basınca motor duracak ve ertesi gün güneş doğduğunda güneşi takip ederek batıya doğru işleme devam edecek.
Eğer kanatların varsa neden uçmayasın ki??
 

13 Haziran 2016, 20:49:10
Yanıtla #23
Çevrimiçi Hasan ERTÜRK
*
İleti: 563
Teşekkür: 2 Karma 3
Profili Görüntüle Spina Bifida 
kodlarının son halini buraya bi ekle bakalım.
 

13 Haziran 2016, 21:37:00
Yanıtla #24
Çevrimdışı Badwet
*
İleti: 14
Karma 1
Profili Görüntüle 
Kodlarda bir değişklik yok;

const int sensorPinA0 = A0;    // doğu ldr
const int sensorPinA1 = A1;    // batı ldr
const int pmotorPinA0 = 12;    // doğu röle ucu
const int pmotorPinA1 = 11;    // batı röle ucu
const int switch1Pin = 5;      //doğu limit sw
const int switch2Pin = 6;      //batı limit sw

// variables:
int sensorValueA0 = 0;         
int sensorValueA1 = 0;         
int switch1val= digitalRead(switch1Pin);
int switch2val= digitalRead(switch2Pin);


void setup() {
 
   
  Serial.begin(9600);
   
    pinMode(5, INPUT);
    pinMode(6, INPUT);
    pinMode(12, OUTPUT);
    digitalWrite(12, LOW);
    pinMode(11, OUTPUT);
    digitalWrite(11, LOW);
   
   
}

void loop() {
  // read the sensor:
  sensorValueA0 = analogRead(sensorPinA0);
  sensorValueA1 = analogRead(sensorPinA1);
  switch1val= digitalRead(switch1Pin);
  switch2val= digitalRead(switch2Pin);
  int Rate1 = analogRead(sensorPinA0);//Doğu LDR digital değeri
  int Rate2 = analogRead(sensorPinA1);//Batı LDR digital değeri
 
 
    if (Rate1 == 512){ //LDR max digital değerinin yarısını kullandım hassasiyet gayet iyi.
      digitalWrite(12, HIGH);//motor doguya döner
      digitalWrite(11, LOW);}
     
   if (Rate2 == 512){ 
      digitalWrite(11, HIGH);//motor batıya döner
      digitalWrite(12, LOW);}
     
    if (Rate1 == Rate2){
      digitalWrite(12, LOW);//her iki değer eşit ise motor durur.
      digitalWrite(11, LOW);}

    if (Rate1 == Rate2 && switch1val == HIGH){//her iki değer eşit ise ve batı sw'i (sw1) basıldı ise motoru doğuya döndür
      digitalWrite(11, HIGH);
      digitalWrite(12, LOW);
      delay(12000);//motorun doğuya dönmesi için gerekli zaman
      }

    if (switch2val == HIGH){//doğu sw'i (switch 2)basıldı ise motoru durdur.
      digitalWrite(11, LOW);
      digitalWrite(12, LOW);}
     
 
      }
en son 3 satırda switch 2 motoru doğuya geldiğinde durduruyor fakat switch o esnada HIGH pozisyonunda basılı kaldığı için programın işleyişi duruyor.ertesi gün güneş doğduğunda işleme devam etmiyor.
Eğer kanatların varsa neden uçmayasın ki??
 

13 Haziran 2016, 23:31:20
Yanıtla #25
Çevrimiçi Hasan ERTÜRK
*
İleti: 563
Teşekkür: 2 Karma 3
Profili Görüntüle Spina Bifida 
void loop kısmını şu şekilde değiştirip deneyin
Kod:
Kodlari sadece uyeler gorebilir. Lutfen Uye Olun ya da Giris Yapin.
 

13 Haziran 2016, 23:43:23
Yanıtla #26
Çevrimiçi Hasan ERTÜRK
*
İleti: 563
Teşekkür: 2 Karma 3
Profili Görüntüle Spina Bifida 
eksik vardı şöyle olsun:

Kod:
Kodlari sadece uyeler gorebilir. Lutfen Uye Olun ya da Giris Yapin.
 

15 Haziran 2016, 23:16:00
Yanıtla #27
Çevrimdışı Badwet
*
İleti: 14
Karma 1
Profili Görüntüle 
Sanırım en kolay yol batıdaki sw'e bastıktan sonra doğuya dönüşte motorun dönme zamanını hesaplayıp delay ile yapmak olacak galiba.
Eğer kanatların varsa neden uçmayasın ki??
 

22 Ocak 2017, 21:53:21
Yanıtla #28
Çevrimdışı Gökhan
*
İleti: 1
Karma 0
Profili Görüntüle 
iyi akşamlar buradaki arduino kodlarının akış diyagramını nasıl oluşturabilirim ?
 

14 Şubat 2017, 13:15:39
Yanıtla #29
Çevrimdışı kaniboz
*
İleti: 1
Karma 0
Profili Görüntüle 
merhabalar bu projede kullanılan güneş pilinin akım gerilim değerleri ne olmalıdır ?