IR sensör gol detektörü Arduino kodu yardım
  • Herkese merhabalar,

    IR sensör ile çalışan karşılıklı 2 adet kale olan ve gol algılayan sistem kurmaya çalışıyorum. Bağlantı kesilmediğinde (gol olmadığı zaman) Arduino "0" sinyali alıyor, bağlantı kesildiğinde ise "1" olarak sinyal alıyor. Ve buna göre 2x16 LCD ekranda skor tutuluyor. Devreyi kurdum sorunsuz çalışıyor ancak LCD ekranda bir türlü skor tutamıyorum. Saçma bir şekilde çalışıyor. Nedenini bir türlü çözemedim. Kullandığım kodu paylaşıyorum.

    Herhangi bir fikri ya da önerisi olan yardımcı olabilirse çok sevinirim.

    Şimdiden teşekkürler.

    KOD:

    #include LiquidCrystal.h>

    #define irSensorPin1 7
    #define irSensorPin2 6

    int score1 = 0 ;
    int score2 = 0 ;


    // Orjinal LCD Ornegindeki kısım bu sekilde degistirilmeli:
    LiquidCrystal lcd(13, 12, 11, 10, 9, 8);



    void setup(){
    pinMode(irSensorPin1, INPUT);
    pinMode(irSensorPin2, INPUT);
    Serial.begin(9600);
    lcd.begin(16, 2);

    }

    void loop(){

    lcd.setCursor(0,0);
    lcd.print("TEAM 1 = ");
    lcd.print( score1);
    lcd.setCursor(0,1);
    lcd.print("TEAM 2 = ");
    lcd.print(score2);
    if ( digitalRead(irSensorPin1) == 1 ){
    score1 = score1 +1 ;
    }
    delay(500);
    if ( digitalRead(irSensorPin2) == 1 ){
    score2 = score2 +1;
    }
    delay(500);
    Serial.println(digitalRead(irSensorPin2));
    }
  • iki if arasındaki delay(500) luzumsuz. sondaki delayı(1000) yap.
  • Seçmayla kastın
    lcd.print("TEAM 1 = ");
    lcd.print( score1);

    score1 kismimi sacma yoksa ikisidemi.
    yani "TEAM 1 =" yazıyormu
  • kodundaki delay 500 luzumsuz pinler zaten ayrı ayrı, aynı anda her pini kontrol edersin sondaki delayı 1000 yap daha iyi olur kırpışma olmaz ekranda...


    if ( digitalRead(irSensorPin1) == 1 ){
    score1 = score1 +1 ;
    }
    delay(500);
    if ( digitalRead(irSensorPin2) == 1 ){
    score2 = score2 +1;
    }
  • Bir de bunu dene bakalım

    lcd.setCursor(0,0);
    lcd.print("TEAM 1 = ");

    lcd.setCursor(0,1);
    lcd.print("TEAM 2 = ");

    if ( digitalRead(irSensorPin1) == 1 ){
    score1 = score1 +1 ;
    lcd.setCursor(7,0);
    lcd.print( score1);
    }
    if ( digitalRead(irSensorPin2) == 1 ){
    score2 = score2 +1;
    lcd.setCursor(7,1);
    lcd.print(score2);
    }
    delay(500);
    Serial.println(digitalRead(irSensorPin2));

Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!

Login with Facebook

Tagged

Açık kaynak kültürü gereği, çözdüğünüz problemlerin çözümlerini paylaşmayı lütfen unutmayın.