Elektronik / Mikrodenetleyici Projeleri/

AT89S52 RF ile DC Motor Hız Kontrolü Keil İsis

Sponsorlu Bağlantılar

Hazırlayan: Şahin KAYA

Kablosuz bir kumanda devresi ile belirli bir alan içerisindeki DC Motorun hızını kontrol etmek. İşe, amacıma ulaşabilmek için kullanmam gereken malzemeleri belirlemekle başladım. Bu malzemeler AT89S52 mikrodenetleyici, UDEA firması tarafından üretilmiş ve fiyatı da uygun olan 433MHz UHF bandında iletişim sağlayan RF alıcı ve verici modüller, (ATX-34 ARX-34) DC motor sürecek L293B 4 kanallı push-pull sürücü entegresi, devreleri beslemek için gerekli sabit gerilimi sağlayacak olan LM7805 ve çevre elemanlarıydı (kondansatörler). Daha sonra bu adımları simülasyon, pcb çizimleri (çizimler Protel DXP2004’de yapıldı) ve Keil’da programının yazılması işlemleri izledi.

Sistemin çalışması: Kumanda devresi ile motor kontrol devresi RF modüller üzerinden 8051 seri portları ile tek yönlü olarak haberleşmektedir. Kumanda devresindeki hızı arttır veya hızı azalt butonlarından herhangi birine basıldığında ilgili butona ait kesme programı çalıştırılır ve motor kontrol devresine ilgili butona göre hızı arttır veya hızı azalt komutları gönderilir. Bu komutları alan kontrol devresi de bunları değerlendirerek motorun hızını arttıracağına veya azaltacağına karar verir. Motorun hızı PWM (Darbe genişlik modülasyonu) yöntemi ile ayarlanacak şekilde 8051 programı yazıldı. PWM yönteminde motora gerilim darbeler şeklinde gönderilir. Bu darbelerin 1 de kalma süresi periyot içinde ne kadar uzun olursa motor o kadar hızlı döner. PWM ile motor hız kontrolü genel olarak bu şekilde yapılır.

DC motoru sürmenin birçok yolu vardır. DC motora uygulayacağımız akımın yönüne göre motorun yönü, voltajın büyüklüğüne göre de hızı değişecektir. DC motor kontrolü için üretilmiş çok verimli yongalar vardır. Ve ben de projemde bunlardan biri olan L293B isimli olanını kullandım. L293B entegresiyle motorun yönünü ve hızını belirlemek için üç uç kullanılır. Bunlar Enable, Input1 ve Input2 dir. Motoru durdurmak için Enable lojik sıfır yapılır. Böylece girişler Hi-Z konumuna geçer. Motoru diğer yönde hareket ettirmek için ise Enable lojik 1 yapılmalı ve Input1 ve Input2 farklı lojik değerlerde çekilmelidir. Yani biri lojik 1 ise diğeri lojik 0 yapılmalıdır.

Motor RX.c içeriği

#include 

#define	MOTOR	P2
bit HiziArttir, HiziAzalt;

void	Tusa_Basildi()	interrupt 4
	{
		while(RI)
			{
				if (SBUF==0xF1)
					HiziArttir=0;
				if (SBUF==0xF2)
					HiziAzalt=0;
				RI=0;
			}
		
	}
	
void	main()
	{
		unsigned int periyot=1000; // PWM darbesinin 20'de 1'i
		unsigned int hiz;
		int i;		// darbe suresini ayarlamak icin
		TMOD=0x21;	// T0 16-bit (Mod 1) zamanlayici + T1 icin 8 bit otomatik yukleme modu 
		TL0=-periyot%256;	// pals'in dusuk degeri
		TH0=-periyot/256;	// pals'in yuksek degeri
		SCON=0x40;	// 8 bit uart modu
		TH1=0xE8;	// yaklasik 1200 bps (11.059 Mhz kristal icin)
		TR1=1;		// Z/S'i calistir
		REN=1;
		ES=1;		// Seri haberlesme kesmesinin yetkilendirilmesi
		EA=1;		// Butun kesmelerin yetkilendirilmesi
		P2=0;

		while(1)
			{
				TR0=1;					// T0'in saymaya baslamasi
				while(TF0)				// Z/S'nin tasma bayragini kontrol et
					{
						TR0=0;			// Timer'i durdur
					    TF0=0;			// Tasma bayragini temizle
					    i++;
					    if(i0)		// hiz degiskenin sinirlandirilmasi
							 hiz=hiz-1;
					}
			}
	}

Motor TX.c içeriği

#include 

void	bekle()
	{
		unsigned int i;
		for (i=0;i<7600;i++)
			{
				;
			}
	}


void	Hizi_Arttir()	interrupt 0
	{
		while(!TI);
		SBUF=0xF1;	// Hizi arttir butonuna basilinca aliciya F1H gonder
		bekle();
	}

void	Hizi_Azalt()	interrupt 2
	{
		while(!TI);
		SBUF=0xF2;	// Hizi azalt butonuna basilinca aliciya F2H gonder	
		bekle();
	}

void	main()
	{
		SCON=0x40;	// 8 bit uart modu
		TMOD=0x20;	// Z/S 1 icin 8 bit otomatik yukleme modu
		TH1=0xE8;	// yaklasik 1200 bit/s (11.059 Mhz kristal icin)
		TR1=1;		// Z/S'i calistir
		TI=1;
		EX0=1;		// INT0'in yetkilendirilmesi
		EX1=1;		// INT1'in yetkilendirilmesi
		IT0=1;		// INT0 dusen kenarda tetiklensin
		IT1=1;		// INT1 dusen kenarda tetiklensin
		EA=1;		// Butun kesmelerin yetkilendirilmesi
		P3=0xFF;	//Butonlar giris icin ayarlandi
		while(1)
			{
				;
			}


	}

RF and DC Motor Speed Control AT89S52

Within a certain area with a wireless remote control circuit to control the speed of the DC motor. Employment, to be able to reach my goal I need to use to identify the material began. This material Microcontroller AT89S52, UDEA by company manufactured and prices to suit the 433MHz UHF band to the RF communication receiver and transmitter modules, (ARX-34 ATX DC-34 engine will run L293B 4-channel push-pull driver of the integrated circuit to supply constant voltage required and environmental elements that will ensure their LM7805 (the condenser). Then these steps simulation, pcb drawings (drawings done DXP2004'de Protel), and the process was followed by me Keil'da program.

Projenin Keil Isis ve Protel dosyaları AT89S52 RF ile DC Motor Hız Kontrolü Keil İsis

Dosya indirme LINK listesi (TXT formatında) link-1245.zip şifre-pass: 320volt.com

  • ali

    ıyı gunler hocam bu projenızı gerceklemek ıstıyorum hobı amaclı .ben 1. sınıf eletronık ogrencısıyım acaba gereklı dokumanlara bana ıletırmısınız .salv86@hotmaşl.com ıyı gunler

  • ugur28

    ben bu projeyi yaptım ama calısmadı. snra mikroişlemcilerin tx ve rx ni direk kablo ile bagladım(rf modulleri cıkardım) işlemciler iletşime gecmedi cunku yazılımda TI ve RI bayrakları kontrol edilmemiş. ve ayrıca yazılımda preample ve senkron da yok. bana bu konuda yardımcı olurmusunuz. preample ve senkron nasıl vercem tx den gondertikten sonra rx preample ve senkronu okuyacak mı?:(

  • KARAprenss

    hocam sogutucu süpermiş ya kendinmi yaptın :D

  • ahmet

    ilk asmada tı 1 rı o olması gerekli

  • özcan

    Hocam iyi günler ben yyü bmyo da okuyorum yaptığınız devreyi çok beğendik
    elektronik tasarım dersinde aynı devreden yapabilirmiyiz

  • Asım

    hocam iyi günler ben de öğrenciniz sayılırım
    ben rizeden asım bende bu hobi işiyle bayağı ilgilendiğim için esc ler filan gerekli oluyor ben birkaç yabancı sitede devre şemaları filan buldum ama devre elemanlarını rizede bulamadık role entegre filan kimse ilgilenmdi
    hazır esc lae zaten çok pahalı 20 tlyede var ama bana hem ileri hemde geri çalışacak olanı lazım ondan sizin yaptığınızı gördüm hoşuma gitti bana yardımcı olabilirseniz sevinirim siz bu esc leri yapıp satıyomusunuz yada istek üzerine yaparmısınız eğer yaparsanız( tabi ücreti karşılığında)çok sevinirim iyi günler

  • Şahin KAYA

    Arkadaşlar, bu uygulamayı 8051 dersinde ödev olarak yaptım. Acemilk zamanlarımızdı. Eksikleri olabilir, yaptığım soğutucu da komiğine gidebilir bazılarınızın. Projeye bir akşam yemeği sonrası başlandı ve ertesi sabah raporu da hazır şekilde ilgili öğretim elemanına sunuldu. Çalışmayan devre ile o dersten geçemezdim. Çalıştıramayan arkadaşlar sorunu kendilerinde aramalı.