PIC16F877 MOTOR HIZ GÖSTERGESİ LCD ENCODER

armanct

Üye
Katılım
3 Kas 2017
Mesajlar
7
Puanları
1
Yaş
27
PIC16F877 Mikrokontrolör İle motor hızını lcd de gösteren encoder devresi

Bu projeyle internette karşılaştım ve bununla ilgili proje ödevim var yapmayı düşünüyorum fakat aklıma takınlan sorular var.Projede hangi malzemeler kullanılmış anlayamadım sensor olması gerekiyor devrede galiba.Devreye bağlı bir kare dalga var pwm sinyali galiba tam emin değilim bunu ben nasıl verebilirim.Bu sinyali encoder yardımı ile mi veriyoruz.Motoru encoderli mi kullanmış acaba ? Yardımcı olursanız sevinirim

Projenin Kodlarıda bunlar


Kod:
#include <16f877.h>
   #fuses XT,NOWDT,NOPROTECT
   #use delay(clock=4000000)
   #include
   #include
   #BIT T0IF = 0x0B.2
 
   int sayac,artan;
   long hiz,konum;
   int16 value;
 
   #INT_rtcc
   clock_isr()
   {
     if(T0IF)
     {
        artan=0;
        sayac=sayac+1;

        if(sayac==15)
        {
           hiz=get_timer1();
           hiz=hiz*1.4;

           lcd_gotoxy(0,1);
           printf(lcd_putc,"  HIZ   :%4LU d/d  ",hiz);

           sayac=0;
           artan=get_timer1()%15;
           set_timer1(0);
        }
     }
   }
 
   void main()
   {
     konum=0;
     artan=0;
     hiz=0;
     sayac=0;
    
     enable_interrupts(GLOBAL);
     enable_interrupts(INT_RTCC);
     set_timer0(0);
     setup_timer_0(RTCC_DIV_256);
     set_timer1(0);
     setup_timer_1(T1_EXTERNAL);
     ext_int_edge( 1,H_TO_L );
          
     lcd_init();

     setup_timer_2(T2_DIV_BY_4, 1023, 1);
     setup_ccp1(CCP_PWM);
     setup_port_a(ALL_ANALOG);
     setup_adc(adc_clock_internal);
     set_adc_channel(0);

     for(;; )

     {
        value=read_adc();
        value=value*4;
        set_pwm1_duty(value);
      
        konum=(artan+get_timer1())%15;
        konum=24*konum;
        lcd_gotoxy(0,0);
        printf(lcd_putc,"  KONUM : %3LU der  ",konum);
    
     }
   }

Adsız.png
Adsız.png
Adsıza.png Adsızsd.png Bunlarda kurulmuş devrenin görüntüsü ama ben bir şey anlamadım :)
 
Moderatör tarafında düzenlendi:
Pot ile motor hızı ayarlanıyor.
Optocuplör ise https://www.google.com.tr/search?cl...98.0j7......0....1.........30i10.JqpcNPrI95E=

Resimleredeki takometre modülü ile çark ile hız ölçümü yapılmış kısaca
Infrared ile foto transistör arasına çark yerleştirilmiş ve çarkın belli noktalardan birbirlerini görecek delikler açılmış ve gelen sinyale göre hız ölçümü konum hesapları yapılmış
 
PIC16F877 Mikrokontrolör İle motor hızını lcd de gösteren encoder devresi

Bu projeyle internette karşılaştım ve bununla ilgili proje ödevim var yapmayı düşünüyorum fakat aklıma takınlan sorular var.Projede hangi malzemeler kullanılmış anlayamadım sensor olması gerekiyor devrede galiba.Devreye bağlı bir kare dalga var pwm sinyali galiba tam emin değilim bunu ben nasıl verebilirim.Bu sinyali encoder yardımı ile mi veriyoruz.Motoru encoderli mi kullanmış acaba ? Yardımcı olursanız sevinirim

Projenin Kodlarıda bunlar



Kod:
#include <16f877.h>
   #fuses XT,NOWDT,NOPROTECT
   #use delay(clock=4000000)
   #include
   #include
   #BIT T0IF = 0x0B.2

   int sayac,artan;
   long hiz,konum;
   int16 value;

   #INT_rtcc
   clock_isr()
   {
     if(T0IF)
     {
        artan=0;
        sayac=sayac+1;

        if(sayac==15)
        {
           hiz=get_timer1();
           hiz=hiz*1.4;

           lcd_gotoxy(0,1);
           printf(lcd_putc,"  HIZ   :%4LU d/d  ",hiz);

           sayac=0;
           artan=get_timer1()%15;
           set_timer1(0);
        }
     }
   }

   void main()
   {
     konum=0;
     artan=0;
     hiz=0;
     sayac=0;
  
     enable_interrupts(GLOBAL);
     enable_interrupts(INT_RTCC);
     set_timer0(0);
     setup_timer_0(RTCC_DIV_256);
     set_timer1(0);
     setup_timer_1(T1_EXTERNAL);
     ext_int_edge( 1,H_TO_L );
        
     lcd_init();

     setup_timer_2(T2_DIV_BY_4, 1023, 1);
     setup_ccp1(CCP_PWM);
     setup_port_a(ALL_ANALOG);
     setup_adc(adc_clock_internal);
     set_adc_channel(0);

     for(;; )

     {
        value=read_adc();
        value=value*4;
        set_pwm1_duty(value);
    
        konum=(artan+get_timer1())%15;
        konum=24*konum;
        lcd_gotoxy(0,0);
        printf(lcd_putc,"  KONUM : %3LU der  ",konum);
  
     }
   }

Ekli dosyayı görüntüle 44374 Ekli dosyayı görüntüle 44374Ekli dosyayı görüntüle 44375 Ekli dosyayı görüntüle 44378 Bunlarda kurulmuş devrenin görüntüsü ama ben bir şey anlamadım :)
merhaba aynı devreyi ben de anlayamadım bütün devreyi kurdum fakat sensörün out pinini pic16f877 nin hangi pinine takacağımı bulamadım.soldaki optoküplörün 1.pinine taktım en son o da olmadı sensörüm bile çalışmadı.Yardım ederseniz çok sevinirim (mailim=***@***)
 
Moderatör tarafında düzenlendi:
c0 sensör c2de motor verilen şemada açıkça belirtilmiş
 

Yeni mesajlar

Forum istatistikleri

Konular
128,166
Mesajlar
915,612
Kullanıcılar
449,931
Son üye
mecuxell

Yeni konular

Geri
Üst