Elektronik / Mikrodenetleyici Projeleri/

Winamp için IR kumanda devresi PIC16F627 RS232 Visual Basic

Sponsorlu Bağlantılar

Winamp kontrolü için bazı hazır kumandalar kullanılabiliyor çeşitli programlar ile bu kumandalar uyumlu fakat bulması zor IR kumanda devresi ile kumanda sorunu ortadan kalkıyor.

IRM8061-winamp-remote-kumanda-ir-verici-rs232-vb

winamp-remote-kumanda-ir-verici

IR verici devresi 16f627 mikro denetleyici üzerine kurulu 6 buton kontrol yapıyor alıcı devre ise max232 ve IRM8061 alıcı göz ve bir kaç pasif elemandan oluşuyor. Alıcı göz farklı modellerde kullanılabilir bacakları doğru bağlamanız yeterli

Devrenin C dili ile hazırlanmış kaynak kodları ve Visual Basic ile hazırlanmış kontrol yazılım kaynak kodları var. Winamp dışında kumanda devresi farklı projelerdede işinize yarayabilir.

Kaynak: Winamp IR Controller Alternatif link: Winamp için IR kumanda devresi PIC16F627 RS232 Visual Basic

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

PICTransmitter.c kod içeriği;


/* Infrared Transmitter for Winamp IR Remote Control */

#include 
#include 
#include "usart.h"
#include "delay.h"
#include "always.h"

__CONFIG(PWRTDIS & UNPROTECT & BORDIS & WDTDIS & LVPDIS & HS & MCLRDIS);

void main(void)
{
	int ASCIIdata;

	CMCON = 0x07;			// Disable Comparators.
	TRISA = 0xFF;			// PORTA pins as inputs.

	TRISB = 0b11110111;		// PORTB pins as input except RB3(CCP1).
	OPTION = 0b00000000;	// Enable PORTB weak pull-ups.

	init_comms();			// Initialize the COMMs 1200 Baud, 8 bits, 1 Stop bit, No parity.

	PR2 = 25;				// Load the PR2 value of 25 to get a PWM Period of 26.32us. PWM freq = 38kHz.
	CCPR1L = 13;			// Load the value of **52 = 13 * 4. This give 50% duty cycle.
	T2CON = 0b00000100;		// 1:1 Prescale, 1:1 Postscale, TMR2 on.
	CCP1CON = 0b00001111;	// Enable PWM mode on pin CCP1(RB3).

	for (;;)
	{
		while(1)
		{
			if 	(RB0 == 0)				// Check if RB0 button was pushed.
			{	ASCIIdata = 0x30;		// Send ASCII '0' if it was button pushed.
				putch(ASCIIdata);
				while(RB0 == 0)			// Wait for the release of the button.
				{
				}
				break;					// Exit the while loop after the button is released.
			}
			else if	(RA3 == 0)			// Do the same for the rest of the buttons with different ASCIIs.
			{	ASCIIdata = 0x31;
				putch(ASCIIdata);
				while(RA3 == 0)
				{
				}
				break;
			}
			else if	(RB4 == 0)
			{	ASCIIdata = 0x32;
				putch(ASCIIdata);
				while(RB4 == 0)
				{
				}
				break;
			}
			else if	(RB5 == 0)
			{	ASCIIdata = 0x33;
				putch(ASCIIdata);
				while(RB5 == 0)
				{
				}
				break;
			}
			else if	(RB6 == 0)		// RB4 and RB5 are volume up and volume down respectively.
			{	ASCIIdata = 0x34;	// Volume Control buttons. May be held on to continuously
				putch(ASCIIdata);	// adjust the volume of Winamp.
				DelayMs(45);		// Slow down data sending rate to the IR Receiver to prevent
				break;				// extreme rise or decrease in volume.
			}
			else if	(RB7 == 0)
			{	ASCIIdata = 0x35;
				putch(ASCIIdata);
				DelayMs(45);
				break;
			}
			else if	(RA0 == 0)		//RB6 and RB7 are Forward and Rewind respectively.
			{	ASCIIdata = 0x36;	// It may be held down for continuous forwarding/rewinding.
				putch(ASCIIdata);	// Delay to slow down sending rate to IR Receiver.
				DelayMs(45);
				break;
			}
			else if	(RA1 == 0)
			{	ASCIIdata = 0x37;
				putch(ASCIIdata);
				DelayMs(45);
				break;
			}
			else if	(RA2 == 0)
			{	ASCIIdata = 0x38;
				putch(ASCIIdata);
				while(RA2 == 0)
				{
				}
				break;
			}
		}
	}
}

  • Davut Naci Kaya

    Güzel paylaşım kardeşim. Bende böyle birşey düşünüyordum bugünlerde :)

  • melih

    peki bu projeyi wmp ile uyumlu hale getirmek için ne yapmalıyız?

  • büyük ihtimal girderplugin programı devre ile uyum sağlar denemek gerekli

    http://www.darkhardware.com/makale/seri_ir_alici

  • ahmet

    süper bir uğraş elinize sağlık aklıma gelmez böyle bir şey harika

  • Mustafa

    Merhaba paylaşım çok güzel sağolun.Elleriniz dert görmesin.Bende mesela rs232 üzerinden cihaz kontrolü yapmak istiyorum rf olarak ama araştırmalarıma rağmen elde edecek birşey bulamadım.Mesela rs232 üzerinden 433 mhz modül ile 4 röleli bir devre kurmak istiyorum.Ama birşey bulamadım bunun hakkında bilginiz varsa lütfen esirgemeyin

  • halil

    Bunun bir değisik modelini ben oturma odası için düşündüğüm ir pc var onun windows media center uygulamasına nasıl yaparım diye düşünmüştüm aslında 2 – 3 ay once…

    İşe bu noktadan başlayıp geliştirmek lazım..

    Çok teşekkürler. Başarılarınızın devamı dileklerimle…

  • emir

    link kırık arkadaşlar tekrar eklerseniz memnun olurum

  • zafer

    hex koduda paylaşıma konsaymış çok iyi olurmuş.Uğraşan arkadaşlardan rica etsek hek kodu…