Thursday, April 19, 2012

Infrared удирдлага хэрхэн хийх вэ?

Зурагт, проектор, ямар нэгэн төхөөрөмжийг алсаас удирдахад инфра гэрэл, инфра LED, инфра хүлээн авагч транзистор зэргийг ашигладаг. Инфра гэрлээр өгөгдөл дамжуулахдаа LED гэрлийн 36-40kHz давтамжаар асааж унтраан модулъяци хийх ба хүлээн авагч транзистор нь өөр дээрээ Демодулъци хийх хэсэгтэй байдаг. Микроконтроллераас өгөгдөл дамжуулахын тулд гадна талд нь ихэвчлэн давтамжийн үүсгүүр хэлхээ холбож өгдөг. Тэгвэл хэрхэн том хэлхээ хэрэглэхгүйгээр микроконтроллераас өгөгдөл дамжуулж болох талаар өөрийн хийж байсан зүйлээс жишээ үзүүлье. Атмега8 микроконтроллерт дараах үзүүлсэн байдалтай хэлхээг холбоё.
Тэгээд энэхүү инфра дамжууллыг UART протокол ашиглан 1200bps parity=0; stop=1; databit=8; байхаар шинээр протокол хийе.

#define tx_on PORTD|=0x80 //залгасан портоо 1 болгож тодорхойлж байна
#define tx_off PORTD&=0x7f // 0
#define DDR_on DDRD|=0x80
#define baudrate 1200

// 12MHz дамтамжид энэ кодыг бичсэн
void tx_bit(char bit)//нэг бит шидэх функц
{
long int asd=3000000/baudrate; //_delay_loop_2() функц 4-н clock саатуулдаг учир
if (bit)
{
tx_on;
_delay_loop_2(asd);
}
else
{
static int count=0;
if (count<3) count++;
else {count=0; asd +=75; }
while (asd>=0)
{
asd -=75;
tx_off;
_delay_loop_2(38);
tx_on;
_delay_loop_2(37);
}
}

}
void tx_byte(unsigned char a)// UART протоколоор нэг byte шидэх функц
{
DDR_on;
tx_bit(0);
int i;
for (i=0; i<8; i++)
{
tx_bit(a&0x01);
a=a>>1;
}
tx_bit(1);
tx_off;
}
void infra_string (const char *string) // цуваа шиднэ
{
while (*string)
{
tx_byte(*string++);
}
}
гэсэн хэдэн го фунцуудыг бичлээ гол анхаарах зүйл нь микроконтроллерийн дамтамжийг 12MHz давтамжаар тохируулж өгсөнийг мартаж болохгүй.
хийсэн эх файлийг доод линкээр ороод татаад аваарай.
http://www.mediafire.com/?f6zx3mmqscjk931

5 comments:

  1. This comment has been removed by the author.

    ReplyDelete
  2. tataj avah link ni eneshjee http://www.mediafire.com/?f6zx3mmqscjk931

    ReplyDelete
  3. Энэ симулатор дээр хийсэн эд үү? Зурсан хэлхээ тань нэг л тохирохгүй байх шиг байна даа...

    ReplyDelete
  4. Залуу минь шүүмжлэхээсээ өмнө асуу. Бас толгойгоо эхлээд тохируул. Энэ симулятороор ч, бодитоор ч хийгдсэн зүйл.

    ReplyDelete
  5. Завтай үедээ Транзисторын талаар асуултанд хариулж өгөөч.1) npn биполяр транзистор ерөнхий эмиттертэй холболттой үед баазаар гүйдлийг удирдан, коллектороос эмиттер лүү хэлхээний гүйдэл гүйнэ гэж ойлгосон маань зөв үү?Ө.х транзистор түлхүүрийн үүрэг гүйцэтгэнэ гэж?
    2)npn биполяр транзистор ерөнхий баазтай холболттой үед эмиттерээр гүйдлийг удирдан, хэлхээний гүйдэл баазаас коллектор луу чиглэн гүйх ба транзистор өсгөлтийн үүрэг гүйцэтгэнэ гэж ойлгосон зөв үү?

    ReplyDelete