1000 kişiden bir kişi için ! devam.... 320volt blog

Elektronik Devreler Projeler » Microchip PIC devreleri bilgiler »

PIC16F877 ile ileri geri step motor sürücü devresi ccs

step-motor-surucu-devre-semasi-ccs-c-kodu-hex

harmankaya.org sitesinde paylaşılan bir proje “step motor sürücü devre şeması ccs c kodu hex” kontrol pic-16f877 ile sağlanmış ileri geri step-motor kontrolü yapılabiliyor 2×16 lcd ekran üzerinde adım bilgilerini görebiliyorsunuz 12volt sürücü bölümünde bc548 transistörler kullanılmış

Proje detayları kod ve proteus isis dosyaları : Step-Motor-Sürücü alternatif link: pic16f877-ile-ileri-geri-step-motor-surucu-devresi-ccs.rar ayrıca “Elektronik-PIC” kategorisinde faydalı bilgiler uygulamalar bulunmakta incelemenizi öneririm

ccs-stepmotor

Yazılım içeriği

/*******************************
      PIC16F877 ile Step Motor Uygulaması
                Erhan HARMANKAYA
              erhan@harmankaya.org
                17 Haziran 2008
*******************************/  

#include <16f877.h>     // Ben 16f877 kullandım siz kendinize göre düzeltebilirsiniz
                        //Not: 16f628 de ADC modülü mevcut DEĞİL!
#device ADC=10  // 10 bitlik ADC kullanılacağız
// ayarlar
#fuses XT,NOWDT,NOPROTECT,NOBROWNOUT,NOLVP,NOPUT,NOWRT,NODEBUG,NOCPD

#use delay (clock=4000000) //Kullandığımız Osilatörün Clock frekansı

#define use_portb_lcd TRUE   // LCD B portunda

#include   //lcd yi kullanacağız

#define buton_ileri pin_c4

#define buton_geri  pin_c5

signed int8  ADIM=0;

int16 Vref,Vcikis;

float filtre;

unsigned int8 sayac;

char durum;

#int_timer1  // Timer1 kesmesi
void  timer1_kesme ()
{
   set_timer1(63036); 

  switch(durum)
         {
         case 1 :  printf(lcd_putc,"fADIM=%d %4.1Lu msnKonum: -->>", ADIM,Vcikis); break;
         case 2 :  printf(lcd_putc,"fADIM=%d %4.1Lu msnKonum: <<--", ADIM,Vcikis); break;
         case 3 :  printf(lcd_putc,"fADIM=%d %4.1Lu msnKonum: ----", ADIM,Vcikis); break;
         case 4 :  printf(lcd_putc,"fADIM=%d %4.1Lu msnKonum: #HATA#", ADIM,Vcikis); break;
         }
   delay_ms(10);

   if(Vcikis<10){ //10ms dweğerinden küçük beklemelerde ikaz ver.! (:

         lcd_gotoxy(14,2);
          lcd_putc("-!-");
          delay_ms(5);
   }else{
   delay_ms(6);
   }

}

void main ( )
{
         lcd_init();
         delay_ms(10);
         printf(lcd_putc,"fCCP-Timer-ADCn Ayarlaniyor...");
         delay_ms(1500);

         setup_psp(PSP_DISABLED);        // PSP birimi devre dışı
         setup_spi(SPI_SS_DISABLED);     // SPI birimi devre dışı

         //setup_timer_1(T1_DISABLED);     // T1 zamanlayıcısı devre dışı
         setup_timer_2(T2_DISABLED,0,1); // T2 zamanlayıcısı devre dışı
         setup_timer_1(T1_INTERNAL | T1_DIV_BY_8);
         set_timer1(63036);  

         setup_adc_ports( ALL_ANALOG);
         setup_adc(adc_clock_internal);
         set_adc_channel(2);   

         setup_CCP1(CCP_OFF);            // CCP1 birimi devre dışı
         setup_CCP2(CCP_OFF);            // CCP2 birimi devre dışı

         printf(lcd_putc,"fPortD Ayarlaniyor...");
         delay_ms(1500);

         output_d(0x00);

         printf(lcd_putc,"fTimer1 KesmesinAyarlaniyor...");
         delay_ms(1500);

         enable_interrupts(INT_timer1); // int_timer1 kesmesini aktif yapar
         enable_interrupts(GLOBAL);     // Aktif edilen kesmelere izin ver

         printf(lcd_putc,"fHazir...");
         delay_ms(5);

   while(1) //herzaman burada kal
   {

      set_adc_channel(2);
      Vref = read_adc();  //potansiyometreden alınan gerilim
      delay_us(50);
      Vcikis=Vref/16;

      if (input(buton_ileri)) // İLERİ Butonuna basıldı ise
      {
         delay_ms(Vcikis);
         ADIM = ADIM+1;
         if( ADIM == 9)
         {
         ADIM=1;
         durum=1;
         }
      }

      if (input(buton_geri)) // GERİ Butonuna basıldı ise
      {
         delay_ms(Vcikis);
         ADIM = ADIM-1;
         if( ADIM < 1)
         {
         ADIM=8;
//!         printf(lcd_putc,"fADIM=%dnKonum: -->>", ADIM);
//!         delay_ms(10);
         durum=2;
         }
      }

            if (input(buton_geri)&input(buton_ileri)) // İki butona da basılıyor ise;
      {

         durum=3;

      }
      //Bu koşul iki butona da basıldığında HATA durumunun oluşacağını bilgirir.

             if (!input(buton_geri)&!input(buton_ileri)) // İki butona da basılmıyor ise;
      {

         durum=4;

      }
      delay_ms(Vcikis);

            switch(ADIM)
         {
         case 1 : output_d(0b00000001); break;
         case 2 : output_d(0b00000011); break;
         case 3 : output_d(0b00000010); break;
         case 4 : output_d(0b00000110); break;
         case 5 : output_d(0b00000100); break;
         case 6 : output_d(0b00001100); break;
         case 7 : output_d(0b00001000); break;
         case 8 : output_d(0b00001001); break;
         }

   }
}

sakla feedmail facebook twit  

Yazar: gevv

Yazarımızın 320volt.com Blog üzerinde şu an okuduğunuz yazı dahil 1893 yazısı bulunmaktadır. Yazarımız hakkında bilgileri ve diğer yazılarını görmek için bakınız;

online elektronik komponent satışı

 
  1. altan diyor ki:

    arkadaslar su mavi ekranın baglatı şemasını birturlu bulamadım var ise bir link bırakırmısınız

    sagılar

  2. Erhan diyor ki:

    http://www.ceviz.net/ceviz_main/uploads/uye9909/100407devresemasi.gif Şuraya bak bir istersen. Bu arada LCD nin datasheetini de incele istersen. Misal benim kullandığım LCD nin arkasında VCC VSS DB0 DB1…. şeklinde pin isimleri yazıyordu

  3. EREN diyor ki:

    devrede ben lcdmi çalıştıramadım datasheetleri bakarak bağladım ama ekranda yazı yok

Yorum yapın

Doğrulama: (kutuyu işaretleyiniz)


  • Lütfen Türkçe imla kurallarına dikkat etmeye özen gösteriniz.
  • Yorumunuz yönetici tarafından kontrol edilmeden yayımlanmaz.
  • Paylaşılan devrelerin malzeme listesini istemeyiniz. Olsa zaten paylaşılırdı şema üzerinden listeyi çıkartabilirsiniz
  • Gavatar sitesine avatarınızı yükleyebilirsiniz.
sponsor

sponsor

diptrace

diptrace

sponsor

sponsor

embeddedtrading

embeddedtrading

sponsor

sponsor

seo

Seo Danışmanlığı

feed save face twit  
Translate: TürkçeEnglish

Forum Son İletiler