Sonuçlar 1 to 2 of 2

Konu: PWM Kontrollü Çizgi İzleyen Robot

  1. #1
    UFB16
    Guest

    Default PWM Kontrollü Çizgi İzleyen Robot

    PWM Kontrollü Çizgi İzleyen Robot
    Daha önceki yapmış olduğum çizgi izleyen robot uygulamaları Lojik mantık olan 1 yada 0 ların tepkisine göre çalışıyordu.Yani ya çalışıyordu ya da duruyordu.PWM kontrolünde ise motor hızını 5 volt yada 0 volttan ziyade bu gerilim değerleri arasında kontrol etmek mümkün.
    Devre Şeması :
    PWM kontrollü çizgi izleyen robotta işlemci olarak yine PIC16F628 kullanılmıştır.Motor sürücü entegrenin 1. ve 2. motorun enable girişlerine picin b.3 portu yani pwm çıkışı bağlanmıştır.

    Devrenin Çalışması :
    Robotta sensörlerin hiçbiri algılamadığı zaman robotta iki motor da %100 hızla dönmektedir.Soldaki sensörlerden biri algıladığı zaman sağ motor %50 hızla dönmekte sol motor durmaktadır.Böylece robot yavaşca virajı alır.Sağdaki sensörlerden biri algıladığında sol motor %50 hızla dönmekte sağ motor durmaktadır ve böylece robot yavaşça virajı alır.
    Sensör Kartı :
    Robotun Sensör kartında 6 adet CNY 70 kullanılmıştır.Soldaki sensörlerin 3 ü ve sağdaki sensörlerin 3 ü paralel bağlanmıştır.Soldaki sensörlerden biri algıladığında tek sensörden tepki geliyor gibi çalışır.Sağ sensörlerin algılama durumunda sağ sensörden tepki gelmiş gibi çalışır.CNY 70 elektriksel olarak yalıtılmış fakat ışık iletimi ile çalışan bir optokuplördür.Çıkışında bilgi algıladığı zaman 0 volt veren bilgi algılamadığında ise 5 volt veren ( ters mantıkla çalışan ) bir sensördür.Çıkışında siyah algıladığında 5 volt beyaz algıladığında 0 volt verir.
    Kullanılan İşlemci :
    Mikrokontrolör olarak PIC16F628 i seçilmesinin sebebi, tek kanal pwm çıkışının bulunması ve iç yapısında bulunan dahili osilatör sayesinde extradan bir devre gerektirmemesi ve kapasitesinin daha büyük olması.Fakat PIC16F628 i kullanırken, bazı pinlerinin özel fonksiyonlarını kapatmak gerekir.Örneğin a portu analog giriş ve karşılaştırıcı özelliğine sahiptir bunları kapatmadan normal giriş çıkış olarak kullanılırsa bazı hatalar meydana gelebilir.Karşılaştırıcıları ve analog girişleri kapatmak için CMCON=7 yazmak yeterlidir.Dahili osilatörü kullanmak için ise ,@ DEVICE pic16f628,intrc_osc_noclkout yazmak yeterli olacaktır. PIC16F628 in PWM çıkışını aktif etmek için aşağıdaki satırlar yazılmalıdır.
    DEFINE CCP1_REG PORTB
    DEFINE CCP1_BIT 1

    Motor Sürücü :
    Motor sürücü olarak diğer robotlarda kullanılan L293D motor sürücü entegresi kullanılmıştır.L293D nin enable girişine b portu bağlanarak pwm ile kontrol sağlanmıştır.
    Kullanılan Motorlar :
    Robotta Mikro Redüktörlü DC Motor olan 12 volt 746 RPM lik Autotroul motor kullanılmıştır.Robotun torku oldukça azdır.Çizgi izleyen robot için ideal bir motordur.



    Robotun Programı :
    @ DEVICE pic16F628, MCLR_OFF
    @ DEVICE pic16F628, INTRC_OSC_NOCLKOUT
    CMCON=7
    VRCON=0
    DEFINE CCP1_REG PORTB
    DEFINE CCP1_BIT 1
    'Girişler
    INPUT PORTB.0 'girişleri tanımladık
    INPUT PORTB.1
    INPUT PORTB.2
    'Çıkışlar
    'çıkışları tanımladık.
    OUTPUT PORTB.4
    OUTPUT PORTB.5
    OUTPUT PORTB.6
    OUTPUT PORTB.7
    'Değişkenler
    SYMBOL SOLCNY=PORTB.0 'portlara değişken ismi verdik.
    SYMBOL ORTACNY=PORTB.1
    SYMBOL SAGCNY=PORTB.2
    SYMBOL SOLILERI=PORTB.4
    SYMBOL SAGILERI=PORTB.5
    SYMBOL SOLLED=PORTB.6
    SYMBOL SAGLED=PORTB.7
    '--------Ana Döngü------------------
    BASLA:
    IF SOLCNY=0 AND ORTACNY=0 AND SAGCNY=0 THEN GOSUB ILERI
    IF SOLCNY=0 AND ORTACNY=0 AND SAGCNY=1 THEN GOSUB SOLA_DON
    IF SOLCNY=0 AND ORTACNY=1 AND SAGCNY=0 THEN GOSUB ILERI
    IF SOLCNY=0 AND ORTACNY=1 AND SAGCNY=1 THEN GOSUB SOLA_DON
    IF SOLCNY=1 AND ORTACNY=0 AND SAGCNY=0 THEN GOSUB SAGA_DON
    IF SOLCNY=1 AND ORTACNY=0 AND SAGCNY=1 THEN GOSUB ILERI
    IF SOLCNY=1 AND ORTACNY=1 AND SAGCNY=0 THEN GOSUB SAGA_DON
    IF SOLCNY=1 AND ORTACNY=1 AND SAGCNY=1 THEN GOSUB ILERI
    GOTO BASLA
    END

    '---------Etiketler------------------

    ILERI:
    HPWM 1,255,1000
    SOLILERI=1
    SAGILERI=1
    SOLLED=1
    SAGLED=1
    GOTO BASLA
    END
    SAGA_DON:
    HPWM 1,128,1000
    SOLILERI=1
    SAGILERI=0
    SOLLED=0
    SAGLED=1
    GOTO BASLA
    END
    SOLA_DON:
    HPWM 1,128,1000
    SOLILERI=0
    SAGILERI=1
    SOLLED=1
    SAGLED=0
    GOTO BASLA
    END




    (Alıntıdır)

  2. #2
    lose control
    Guest

    Default

    çok güzel bir paylaşım oldu bu teşekkürler :)

Similar Threads

  1. Bu robot her yere sığıyor-Solucan Robot
    By KPSS-2011 in forum Bilim ve Teknoloji haberleri
    CEvaplar: 0
    Son Mesaj: 30-11-11, 09:44
  2. 8051 ile sıcaklık kontrollü fan projesi
    By The Avatar in forum Projeler
    CEvaplar: 0
    Son Mesaj: 13-07-09, 02:08
  3. Çizgi izleyen robot yapımı
    By UFB16 in forum Robotik-Arduino
    CEvaplar: 8
    Son Mesaj: 03-01-09, 13:04
  4. TDA7294 ile Oto Anfi Projesi SG3525 Kontrollü SMPS Beslemeli
    By moderator in forum Ses devreleri (audio circuits)
    CEvaplar: 4
    Son Mesaj: 14-12-08, 22:34
  5. [M.E.]en sevdiğiniz çizgi filmler
    By Serhat in forum Muhabbet-Geyik Alanı
    CEvaplar: 11
    Son Mesaj: 14-07-08, 23:21

Tags for this Thread

Bookmarks

Gönderme izinleri

  • Yeni Konu açamazsınız
  • Konulara cevap yazamazsınız.
  • Eklenti gönderemezsiniz.
  • Mesajlarınızı düzenleme izniniz yok.
  •