| Total 38 (34/38) | ºÎ·ÏÀ» Æ÷ÇÔÇÏ¿© ÃÑ 38°Á·Π±¸¼ºµÇ¾î ÀÖ½À´Ï´Ù. Ã¥À» ÀеíÀÌ ¾ÕÆä¿¡ÁöºÎÅÍ »ç¿ëÇϽʽÿä |
Á¦9Àå 8051 È°¿ë- 5°
8. D.C ¸ðÅÍÀÇ Á¦¾î
D.C ¸ðÅÍ´Â ÀÔ·ÂÀü·ù¿¡ ºñ·ÊÇÏ¿© ȸÀü·ÂÀÌ ¹ß»ýÇÑ´Ù. Áï
ȸÀü·Â T = Kt x I (Kt : ÅäÅ©»ó¼ö)
ÀÔ·ÂÀü·ù´Â ÀÔ·ÂÀü¾Ð¿¡ ºñ·ÊÇÏ°í ¸ðÅÍÀÇ ±Ç¼± ÀúÇ׿¡ ¹Ýºñ·ÊÇÑ´Ù

D.C ¸ðÅÍ´Â ÀԷ´ÜÀÚ¿¡ Á¤Àü¾ÐÀ» °¡ÇÏ¸é ½Ã°è¹æÇâÀ¸·Î ȸÀüÇÏ°í ÀԷ´ÜÀÚ¿¡ ¿ªÀü¾ÐÀ» °¡ÇÏ¸é ¹Ý½Ã°è¹æÇâÀ¸·Î ȸÀüÇÑ´Ù.

/*****************************************************/
/* - D.C MOTOR SPEED CONTROL - */
/*****************************************************/
/* ¾Ë°í¸®Áò : ½Ã°£Áö¿¬ ¾Ë°í¸®ÁòÀ» ÀÌ¿ëÇÑ D.C ¸ðÅÍÀÇ 3¼Ó Á¦¾î */
#include
#define MOTOR P3.0 /* Motor Æ÷Æ® ¼³Á¤ */
#define SW_1 P1.0 /* °í¼Ó Á¦¾î Switch */
#define SW_2 P1.1 /* Áß¼Ó Á¦¾î Switch */
#define SW_3 P1.2 /* Àú¼Ó Á¦¾î Switch */
#define ON 1
#define OFF 0
#define IN_BYTE P1 /* ÀÔ·Â Port ¼³Á¤ */
void delay0(char delay_time) /* tt sec delay module */
{
char loop0;
for(loop0=0;loop0
void motor_3() /* °í¼ÓÁ¦¾î */
{ unsigned char count;
for(count=0;count<6;count++)
{
MOTOR=ON;
delay0(50);
MOTOR=OFF;
}
MOTOR=OFF; }
void motor_1() /* Àú¼ÓÁ¦¾î */
{
unsigned char count;
for(count=0;count<3;count++)
{
MOTOR=ON;
delay0(1);
MOTOR=OFF;
}
MOTOR=OFF; }
void motor_2() /* Áß¼ÓÁ¦¾î */
{
unsigned char count;
for(count=0;count<3;count++)
{
MOTOR=ON;
delay0(10);
MOTOR=OFF;
}
MOTOR=OFF; }
void main()
{
unsigned char pre_data=0; /* ÀÌÀü data °ª »èÁ¦ º¯¼ö */
unsigned char key;
while(1)
{ key=IN_BYTE; /* ÀԷ»óÅ ÀúÀå */
if(key=SW_1)
{
key=pre_data; motor_1(); }
if(key=SW_2)
{
key=pre_data; motor_2(); }
if(key=SW_3)
{
key=pre_data; motor_3(); }
}
}
8-1. ÆÄ¿ö µå¶óÀ̹ö¸¦ ÀÌ¿ëÇÑ D.C Motor ÀÇ °í±ÞÁ¦¾î

8-1-1. L298 ±âº»Æ¯Â¡
- ÃÖ´ë µ¿ÀÛ °ø±ÞÀü¾Ð : 46 volt
- ÃÖ´ë D.C Àü·ù : 4 A
- ³·Àº Æ÷È Àü¾Ð
- °ú¿¹æÁö ±â´É
- ±âº»ÀûÀÎ TTL ³í¸®·¹º§À» ¹Þ±â À§ÇÏ¿© ¼³°èµÊ
- ¸±·¹ÀÌ, ¼Ö·¹³ëÀ̵å, ½ºÅÜÇÎ_¸ðÅÍ¿Í °°Àº À¯µµºÎÇϸ¦ ±¸µ¿
- ³ôÀº Àü¾Ð°ú ³ôÀº Àü·ù¿¡ °ÇÑ Dual Full-Bridge Drive
8-1-2. L298 ÀÇ ÇÉ ±â´É
- Sense A(No 1), Sense B(No 15) : Sense ÀúÇ×À» ÀÔ·Â
- Out_1(No 2), Out_2(No 3) : ºê¸®Áö A ÀÇ Ãâ·Â´ÜÀÚ
- Vs(No 4) : Àü·ÂÃâ·ÂÀ» À§ÇÑ °ø±ÞÀü¿øÀÇ Àΰ¡
- Input_1(No 5), Input_2(No 7) : ºê¸®Áö A ÀÇ TTL ȣȯÀÔ·Â ´ÜÀÚ
- Enable A(No 6), Enable B(No 11) : TTL ȣȯ Enable ÀԷ´ÜÀÚ
- GND(No 8) : Á¢Áö´ÜÀÚ
- Vss(No 9) : ·ÎÁ÷ºí·ÏÀ» À§ÇÑ °ø±ÞÀü¾Ð(100¥ìF ÀÇ Äܵ§¼¸¦ ¿¬°á)
- Input_3(No 10), Input_4(No 12) : ºê¸®Áö B ÀÇ Ãâ·Â´ÜÀÚ
- Out_3(No 13), Out_4(No 14) : ºê¸®Áö B ÀÇ Ãâ·Â´ÜÀÚ

/*********************************************************/
/* ÆÄ¿ö µå¶óÀ̹ö L 298À» ÀÌ¿ëÇÑ D.C MOTOR ÀÇ °í±ÞÁ¦¾î */
/*********************************************************/
#include
#define MOTOR_R P3.0 /* Motor ¿ìȸÀü Á¦¾î Æ÷Æ®¼³Á¤ */
#define MOTOR_L P3.1 /* Motor ÁÂȸÀü Á¦¾î Æ÷Æ®¼³Á¤ */
#define SW_1 P1.0 /* ¹æÇâÀüȯ Switch Æ÷Æ®¼³Á¤ */
#define ON 1
#define OFF 0
#define IN_BYTE P1 /* ÀÔ·Â Port ¼³Á¤ */
void delay0(char delay_time) /* tt sec delay module */
{
char loop0;
for(loop0=0;loop0
}
void r_motor() /* ½Ã°è¹æÇâ ȸÀü */
{
MOTOR_R=1;
MOTOR_L=0; }
void l_motor() /* ¹Ý½Ã°è¹æÇâ ȸÀü */
{
MOTOR_R=0;
MOTOR_L=1;
}
void slow_motor() /* ½Ã°£Áö¿¬À» ÀÌ¿ëÇÑ ¸ðÅÍÀÇ Àú¼ÓȸÀü */
{
unsigned char count;
for(count=0;count<3;count++)
{
MOTOR_R=1;
MOTOR_L=0;
delay0(1);
MOTOR_R=0;
MOTOR_L=0;
}
MOTOR_R=0;
MOTOR_L=0;
}
void main()
{
unsigned char pre_data=0; /* clear data variable */
unsigned char key;
while(1)
{
key=IN_BYTE; /* ÀÔ·Â °ª ÀúÀå */
if(key=SW_1)
{
key=pre_data;
r_motor();
}
else
slow_motor();
}
}
|
|
 |
|