QTR-8A Kızılötesi Çizgi Sensörü (Analog )

Ürün Kodu : 15504
Barkod : 9003410003044 Marka : Pololu
357,65 TL + KDV
Paylaş:
Kampanya
  • Ürün Özellikleri
  • Yorumlar (0)
  • Teslimat Koşulları
  • Tavsiye Et
  • Çizgi izleyen robotların vazgeçilmez sensörüdür
     
    Derece alan robotlar tarafından kullanılmaktadır.

     Çizgi izleyen robotlar için üretilmiş olan bu sensör kartı 1cm arayla yerleştirilmiş 8 IR LED/fototransistör çifti barındırmaktadır. Stabil ve sorunsuz çalıştığı için çizgi izleyen robotlarda çok fazla tercih edilmektedir. 
    LED çiftlerinin her biri ayrı birer MOSFET transistörle sürülmektedir ve ek hassasiyet ya da güç tasarrufu için LED'ler kapatılabilir. 
    Kart üzerindeki her sensör ayrı bir analog voltaj çıkışı sağlar. Her bir sensöre bir pull-up direnci bağlanmıştır. Zeminin ışığı yansıtması veya cisimle olan mesafesine göre voltaj çıkışı analog olarak değişir. Yansıma arttıkça çıkış voltajı da yükselir.
     
    Özellikler
    • Analog çıkışlıdır. Pic, Arduino gibi MCU'larla doğrudan kullanılabilir.
    • 5V ile çalışmaktadır.
    • Basit kullanımlıdır.
    • İnternette sensörle ilgili bolca uygulama örneği mevcuttur.
    •  Boyutları: 75x 13x3 mm 
    •  Çalışma voltajı: 3,3-5,0 V
    •  Çektiği Akım: 100 mA
    •  Çıkış formatı: 8 analog voltaj
    •  Çıkış voltaj aralığı: 0 V-Besleme Voltajı Değeri
    •  İdeal algılama mesafesi: 3 mm
    •  Maksimum algılama mesafesi: 6 mm
    •  Ağırlık: 3,09 gr.


     
    QTR-8A Sensör kartını bir kaç farklı şekilde çalıştırabilirsiniz. 
    1. Bir mikrodenetleyicinin analog giriş pinlerine bağlayarak ADC(Analog Dijital Çevirici) işlemine tabi tutabilirsiniz.
    2. Eşik değeri ayarlanabilir bir karşılaştırıcı kullanılarak gelen analog voltajı dijitale çevirerek işlemler yaptırılabilir.
    3. Her çıkışı mikrodenetleyicinin I/O pinlerine bağlanarak mikrodenetleyici içindeki karşılaştırıcı kullanılarak okuma yapılabilir. (Bu yöntemle yüksek yansıma olan ortamlarda daha iyi sonuç alınır.)
     
    QTR-8A sensörü 8 sensörün tamamını kullanmak istemeyen kullanıcılara da imkan sağlamaktadır. 6+2 şekilnde tasarlanmış sensör kartını ihtiyaç duyarsanız iki parçaya bölebiliyor, 6lı ve 2li olmak üzere iki ayrı sensör kartı haline getirebiliyorsunuz. Ayırma işleminden sonra tek yapmanız gereken 2li sensör kartındaki gösterilen yere paket içerisinden çıkan direnci lehimlemek.

     
     
     

    QTR Sensörler için yazılmış Arduino kütüphanesi için lütfen tıklayınız.

    Pololu AVR C/C++ kütüphanesi kullanım kılavuzu için tıklayınız.

    Pololu AVR kütüphanesi hakkında daha detaylı bilgi için tıklayınız.

    Çizgi izleyen ve Labirent robotlarının anlatıldığı doküman için tıklayınız.

    Örnek çizgi izleyen robot projesi için tıklayınız


    ARDUINO QTR PID ÖRNEĞİ

    int lastError = 0;
     
    void loop()
    {
      unsigned int sensors[3];
      // get calibrated sensor values returned in the sensors array, along with the line position
      // position will range from 0 to 2000, with 1000 corresponding to the line over the middle
      // sensor
      int position = qtr.readLine(sensors);
     
      // compute our "error" from the line position.  We will make it so that the error is zero when
      // the middle sensor is over the line, because this is our goal.  Error will range from
      // -1000 to +1000.  If we have sensor 0 on the left and sensor 2 on the right,  a reading of
      // -1000 means that we see the line on the left and a reading of +1000 means we see the
      // line on the right.
      int error = position - 1000;
     
      // set the motor speed based on proportional and derivative PID terms
      // KP is the a floating-point proportional constant (maybe start with a value around 0.1)
      // KD is the floating-point derivative constant (maybe start with a value around 5)
      // note that when doing PID, it's very important you get your signs right, or else the
      // control loop will be unstable
      int motorSpeed = KP * error + KD * (error - lastError);
      lastError = error;
     
      // M1 and M2 are base motor speeds.  That is to say, they are the speeds the motors should
      // spin at if you are perfectly on the line with no error.  If your motors are well matched,
      // M1 and M2 will be equal.  When you start testing your PID loop, it might help to start with
      // small values for M1 and M2.  You can then increase the speed as you fine-tune your
      // PID constants KP and KD.
      int m1Speed = M1 + motorSpeed;
      int m2Speed = M2 - motorSpeed;
     
      // it might help to keep the speeds positive (this is optional)
      // note that you might want to add a similiar line to keep the speeds from exceeding
      // any maximum allowed value
      if (m1Speed < 0)
        m1Speed = 0;
      if (m2Speed < 0)
        m2Speed = 0;
     
      // set motor speeds using the two motor speed variables above
    }

    ARDUINO VE QTR8-A İLE YAPILMIŞ PID ÇİZGİ İZLEYEN

T-Soft E-Ticaret Sistemleriyle Hazırlanmıştır.