Şimdi Ara

arduino kodu hatam nerede ?

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
2 Misafir - 2 Masaüstü
5 sn
8
Cevap
0
Favori
476
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
0 oy
Öne Çıkar
Sayfa: 1
Giriş
Mesaj
  • const int buton = 12;
    int butondurumu = 0;
    const int lamba= 13;
    const long zaman = 4000;

    void setup () {
    pinMode(lamba, OUTPUT);
    pinMode(buton, INPUT);
    }

    void loop () {
    int butondurumu=digitalRead(buton);
    if (butondurumu == HIGH)
    {digitalWrite(lamba, HIGH);
    delay(zaman);
    digitalWrite(lamba, LOW); }
    else {digitalWrite(lamba, LOW);
    }
    }

    Amacım şuydu, tuşa basınca led açılsın ve 30 dakika sonra kapansın. "Zaman" değerini değiştirerek onu ayarlayabiliyorum onda sorun yok. Ama bunu yükleyince 13 nolu pindeki led sürekli yanıyor. Hiç buton falan iplemiyor 12. pine trafo bağlasam yine iplemeyecek resmen. İşlemci mi bozuk diye 3 farklı işlemci taktım ama kod sorunda. Neden olabilir ?







  • Buton bağladığın pini 4.7k civarı bir direnç ile toprağa bağla.
  • quote:

    Orijinalden alıntı: elektro_gadget

    Buton bağladığın pini 4.7k civarı bir direnç ile toprağa bağla.

    Gece gözlerim yarım açıkken denemiştim, üşengeçlikten pull-down koymadım. Eğer gerçekten sırf bu yüzden olduysa kendimi keserim.
  • Yukarıdaki öneriye ek olarak;
    setup() fonksiyonu içinde lamba için pinmode u set ettikten sonra digitalWrite(lamba, LOW); ile programa başlarken sönük olmasını sağlayabilirsiniz.
  • nedium N kullanıcısına yanıt
    setup'ın içine fonksiyonda yapılacak şeyler koymak karmaşaya sebep olabiliyor diye biliyordum ben ?
  • Bak şimdi bunu dene nasıl çalışacak ;)

    const int buton = 12;
    int butondurumu = 0;
    const int lamba= 13;
    const long zaman = 4000;

    void setup () {
    pinMode(lamba, OUTPUT);
    pinMode(buton, INPUT);
    }

    void loop () {
    int butondurumu=digitalRead(buton);

    if (butondurumu == HIGH) {
    digitalWrite(lamba, HIGH);
    delay(zaman);
    digitalWrite(lamba, LOW);
    delay(zaman); //-----------------------------------> Hep atlanan bir nokta!!!!!!!!Ledin sönüyor ancak hiç göremiyorsun.
    }
    else {
    digitalWrite(lamba, LOW);
    }
    }
  • quote:

    Orijinalden alıntı: eistain_54

    Bak şimdi bunu dene nasıl çalışacak ;)

    const int buton = 12;
    int butondurumu = 0;
    const int lamba= 13;
    const long zaman = 4000;

    void setup () {
    pinMode(lamba, OUTPUT);
    pinMode(buton, INPUT);
    }

    void loop () {
    int butondurumu=digitalRead(buton);

    if (butondurumu == HIGH) {
    digitalWrite(lamba, HIGH);
    delay(zaman);
    digitalWrite(lamba, LOW);
    delay(zaman); //-----------------------------------> Hep atlanan bir nokta!!!!!!!!Ledin sönüyor ancak hiç göremiyorsun.
    }
    else {
    digitalWrite(lamba, LOW);
    }
    }

    En son benim de aklıma böyle bir şey geldi, çözüm olarak da 30 saatlik bir değer gösterip ikinci delay'e onu yerleştirdim.




  • Yapay Zeka’dan İlgili Konular
    Daha Fazla Göster
  • O ikinci delaya gerek yok. else'e de gerek yok.

    Ayrıca bir ekstra bilgi. Dijital girişlerde dahili pull-up dirençlerini aktif edebilirsiniz böylece dışardan direnç bağlamaya gerek kalmaz. Arduino da bu işlem INPUT_PULLUP ile yapılıyormuş. Tabi bunu yapınca butonu lojik 0'a bağlayacaksınız ve buton basılı kontrolünü şöyle yapacaksınız. if(digitalRead(buton) == LOW)
  • 
Sayfa: 1
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.