Elektrik Elektronik Teknolojisi Alanı Temrinleri

 
Hoşgeldiniz Ziyaretçi. Lütfen giriş yapın veya kayıt olun. Aktivasyon epostanız mı yok?

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ı 15765 defa)

0 Üye ve 1 Ziyaretçi konuyu incelemekte.

12 Haziran 2016, 20:56:33
Yanıtla #15
aydindr

İleti:
Karma 0

Akşam evde deneyeceğim hocam elinize sağlık.
Sonucu merakla bekliyoruz
 

13 Haziran 2016, 12:16:58
Yanıtla #16
Badwet

İleti:
Karma 0

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 »
 

13 Haziran 2016, 14:30:18
Yanıtla #17
Çevrimiçi Hasan ERTÜRK
*
İleti: 573
Teşekkür: 3 Karma 4
Profili Görüntüle Robotik Center 
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
Badwet

İleti:
Karma 0

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ı??
 

13 Haziran 2016, 18:40:14
Yanıtla #19
Çevrimiçi Hasan ERTÜRK
*
İleti: 573
Teşekkür: 3 Karma 4
Profili Görüntüle Robotik Center 
Ş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
Badwet

İleti:
Karma 0

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
 

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

13 Haziran 2016, 19:56:47
Yanıtla #22
Badwet

İleti:
Karma 0

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.
 

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

13 Haziran 2016, 21:37:00
Yanıtla #24
Badwet

İleti:
Karma 0

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.
 

13 Haziran 2016, 23:31:20
Yanıtla #25
Çevrimiçi Hasan ERTÜRK
*
İleti: 573
Teşekkür: 3 Karma 4
Profili Görüntüle Robotik Center 
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: 573
Teşekkür: 3 Karma 4
Profili Görüntüle Robotik Center 
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
Badwet

İleti:
Karma 0

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.
 

22 Ocak 2017, 22:53:21
Yanıtla #28
Gökhan

İleti:
Karma 0

iyi akşamlar buradaki arduino kodlarının akış diyagramını nasıl oluşturabilirim ?
 

14 Şubat 2017, 14:15:39
Yanıtla #29
kaniboz

İleti:
Karma 0

merhabalar bu projede kullanılan güneş pilinin akım gerilim değerleri ne olmalıdır ?