#freeze
#contents
*¤Ï¤¸¤á¤Ë [#qc09a658]
&ref(Á´·Ê.jpg);
~
½©·îÅŻҤÇÆþ¼ê¤Ç¤¤ë£²Áê¥æ¥Ë¥Ý¡¼¥é¥¹¥Æ¥Ã¥Ô¥ó¥°¥â¡¼¥¿¡ÖBH200575048¡×¤ò»È¤Ã¤Æ¡¢¥¹¥Æ¥Ã¥Ô¥ó¥°¥â¡¼¥¿¤ò°·¤¦¤¿¤á¤Î¼þÊÕ²óÏ©¤òºî¤ê¤Þ¤·¤¿¡£
¤¿¤À¤·¡¢º£²ó¤Ï¥¹¥Æ¥Ã¥Ô¥ó¥°¥â¡¼¥¿¤Î¥³¥ó¥È¥í¡¼¥é¤È¤·¤Æ¡¢½©·îÅŻҤÎH8/3048¥Þ¥¤¥³¥ó¥Ü¡¼¥É¤ò»ÈÍѤ·¤Æ¤¤¤Þ¤¹¡£¡Ê¼ê»ý¤Á¤Ë¤³¤ì¤·¤«¤Ê¤«¤Ã¤¿¤Î¤Çorz¢ª¸½ºß¤âÈÎÇ䤵¤ì¤Æ¤¤¤Þ¤¹¤¬¡¢3052¤ò»ÈÍѤ·¤¿¾¯¤·Àǽ¤ÎÎɤ¤¥Þ¥¤¥³¥ó¥Ü¡¼¥É¤¬¼çÎϤˤʤäƤ¤¤ë¤è¤¦¤Ç¤¹¡£¥×¥í¥°¥é¥à¡¢µÚ¤Ó¥Ô¥óÇÛÃ֤ϸߴ¹À¤¬¤¢¤ê¤Þ¤¹¤Î¤Ç¡¢¤½¤Î¤Þ¤Þ»ÈÍѤǤ¤Þ¤¹¡Ë
*ÉôÉʤˤĤ¤¤Æ [#s1b47a93]
**¥¹¥Æ¥Ã¥Ô¥ó¥°¥â¡¼¥¿ [#cab57f6b]
-£²Áê¥æ¥Ë¥Ý¡¼¥é¥¹¥Æ¥Ã¥Ô¥ó¥°¥â¡¼¥¿¡ÖBH200575048¡×
[[½©·îÅŻҤΥ«¥¿¥í¥°>http://akizukidenshi.com/catalog/items2.php?c=motor&s=popularity&p=1&r=1&page=#P-00811]]
~
200¥¹¥Æ¥Ã¥×(1.8ÅÙ/¥¹¥Æ¥Ã¥×)¤Ç¡¢¶îÆ°ÅÅ°µ¤Ï£µ¡Á£¹£Ö¤Ç¤¹¡£
&ref(¥¹¥Æ¥Ã¥Ô¥ó¥°¥â¡¼¥¿.jpg);
**¥â¡¼¥¿¥É¥é¥¤¥Ð [#qf0b95a0]
¥Þ¥¤¥³¥ó¤«¤é¤Î½ÐÎϤǤÏÅöÁ³¶îÆ°¤Ç¤¤Þ¤»¤ó¤Î¤Ç¡¢ÁýÉý´ï¤¬É¬Íפˤʤê¤Þ¤¹¡£
-2SC1815GR¡ÊÅì¼Ç¡Ë~
Ic 150mA, hfe 200-400 ¤Î¡¢Èó¾ï¤Ë¼ê¤ËÆþ¤ê¤ä¤¹¤¤¥È¥é¥ó¥¸¥¹¥¿¤Ç¤¹¡£ÀéÀÐÅž¦¤Ë¤Æ£±£°ËÜ£±£°£°±ß¤¯¤é¤¤¤ÇÇä¤Ã¤Æ¤¤¤Þ¤¹¡£
-2SC2275¡Ê£Î£Å£Ã¡Ë~
Ic 1.5A, hfe 150 ¤Î¡¢¤¿¤Þ¤¿¤Þ¼ê¸µ¤Ë¤¢¤Ã¤¿¥È¥é¥ó¥¸¥¹¥¿¤Ç¤¹¡£^^;¼ã¾¾Ä̾¦¤Ë¤Æ£±ËÜ120±ß¤ÇÆþ¼ê¤Ç¤¤Þ¤¹¡£
~
¤³¤ì¤é¤Î¥È¥é¥ó¥¸¥¹¥¿¤ò¥À¡¼¥ê¥ó¥È¥óÀܳ¤·¤Æ»ÈÍѤ·¤Æ¤¤¤Þ¤¹¡£
-10E1~
À°Î®¥À¥¤¥ª¡¼¥É¤Ç¤¹¡£¥â¡¼¥¿¤«¤éȯÀ¸¤¹¤ëµÕµ¯ÅÅÎϤˤè¤ëµÕήËÉ»ßÍѤ˶´¤ß¤Þ¤¹¡£ÀéÀÐÅž¦¤Ë¤Æ£±£°ËÜ£±£°£°±ß¤¯¤é¤¤¤ÇÇä¤Ã¤Æ¤¤¤Þ¤¹¡£
**¥Þ¥¤¥³¥ó¥Ü¡¼¥É [#n1bddf99]
¡ÊÀè¤Û¤É¤â½ñ¤¤Þ¤·¤¿¤¬¡Ë½©·îÅŻҤÎH8/3048¥Þ¥¤¥³¥ó¥Ü¡¼¥É¤ò»ÈÍѤ·¤Æ¤¤¤Þ¤¹¡£¤³¤Á¤é¤Ë¤Ä¤¤¤Æ¤Ï¡¢ÆäËÀâÌÀ¤Ï¤·¤Þ¤»¤ó¡£
*¥â¡¼¥¿¥É¥é¥¤¥Ð¤ÎÀ½ºî [#q02f9140]
**²óÏ©¿Þ [#j80b6540]
&ref(StepMotor.PNG);
~
¤³¤ó¤Ê´¶¤¸¤Î¡¢Èó¾ï¤Ëñ½ã¤Ê²óÏ©¤Ç¤¹¡£
¤³¤Î²óÏ©¤ò£´¸Ä°ìÁȤǡ¢°ì¤Ä¤Î¥¹¥Æ¥Ã¥Ô¥ó¥°¥â¡¼¥¿¤ò¶îÆ°¤Ç¤¤Þ¤¹¡£
**¼ÂÂÖ¿Þ [#qc57336b]
&ref(¥â¡¼¥É¥é.jpg);
&ref(¥â¡¼¥É¥é΢ÌÌ.jpg);
~
¤³¤Á¤é¤Î¼ÂÂֿޤˤϡ¢ÆóÁÈÍÑ°Õ¤·¤Æ¤¤¤Þ¤¹¡£
*¥×¥í¥°¥é¥à¤ÎÀ©ºî [#q8f0cd4f]
¥Ý¡¼¥È¤ÏPB¤ò»ÈÍѤ·¤Þ¤¹¡£
Àè¤Û¤ÉÀ©ºî¤·¤¿¥â¡¼¥¿¥É¥é¥¤¥Ð¥Ü¡¼¥É¤ÎÆþÎÏü»Ò¤ò°Ê²¼¤Î¤è¤¦¤ËÀܳ¤·¤Þ¤¹¡£
|PB-1|X|
|PB-2|X^|
|PB-3|Y|
|PB-4|Y^|
|Vcc(+5V)|Common|
¤¿¤À¤·¡¢¥â¡¼¥¿ÍÑÅŸ»¤Ï¡¢¤Ç¤¤ë¤À¤±¥Þ¥¤¥³¥ó¤È¤ÏÊÌÅŸ»¤Ë¤·¤Æ¤¯¤À¤µ¤¤¡£
**forʸ¤Ë¤è¤ë´Êñ¤Ê¥×¥í¥°¥é¥à [#i0dcf698]
forʸ¤Ë¤è¤ê¡¢¥¹¥Æ¥Ã¥×´Ö³Ö¤òÄ´À°¤·¤Þ¤¹¤¬¡¢¥Þ¥¤¥³¥ó¤¬¥â¡¼¥¿¶îÆ°¤Î¤ß¤ËÀìÇ°¤¹¤ë¤¿¤á¡¢¤¢¤Þ¤ê¥ª¥¹¥¹¥á¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó¡£~
¤Þ¤¿Î弧¥Ñ¥¿¡¼¥ó¤Ï¡¢ÇÛÎó¤Ë¤è¤êÀßÄꤷ¤Æ¤¢¤ê¤Þ¤¹¤Î¤Ç¡¢¥³¥á¥ó¥È¥¢¥¦¥È¤òÀÚ¤êÂؤ¨¤ë¤³¤È¤ÇÎ弧¥Ñ¥¿¡¼¥ó¤òÀÚ¤êÂؤ¨¤ë¤³¤È¤¬¤Ç¤¤Þ¤¹¡£~
Ä̾ï¤Ï¡¢¹â²óž¿ô¡¦¹â¥È¥ë¥¯¤¬ÆÀ¤é¤ì¤ë£²ÁêÎ弧¤ò»ÈÍѤ·¤Þ¤¹¡£
-void wait(int t)~
¥¦¥§¥¤¥ÈÍÑ´Ø¿ô¤Ç¤¹¡£
while¤Ç¥ë¡¼¥×¤·¤Æ¤¤¤Þ¤¹¤Î¤Ç¡¢¿ô»ú¤¬Â礤¤¤Û¤ÉĹ»þ´Ö¤Î¥¦¥§¥¤¥È¤Ë¤Ê¤ê¤Þ¤¹¡£
-void motor(int speed)~
¥â¡¼¥¿¶îÆ°ÍÑ´Ø¿ô¤Ç¤¹¡£
ÇÛÎó''md''¤Ë¡¢Í½¤áÎ弧¥Ñ¥¿¡¼¥ó¤¬ÀßÄꤵ¤ì¤Æ¤¤¤Þ¤¹¤Î¤Ç¡¢½çÈÖ¤ËPB¤Ë½ñ¤¹þ¤ó¤Ç¤¤¤¤Þ¤¹¡£
-int main(void)~
h8¤Î¥×¥í¥°¥é¥à¤Ç'''int'''¤Ê¤ó¤ÆÊÖ¤¹É¬ÍפϤʤ¤¤Î¤Ç¤¹¤¬¡¢gcc¤¬·Ù¹ð¤ò½Ð¤¹((¥ª¥×¥·¥ç¥ó¤Ä¤±¤ÆÍÞÀ©¤¹¤ì¤Ð¤¤¤¤¤Î¤«¤Ê¡©))¤Î¤Ç¡¢¤³¤¦½ñ¤¤¤Æ¤¤¤Þ¤¹¡£~
PB.DDR = 0xff;
¤Ç¡¢¥Ý¡¼¥È'''PB'''¤òÁ´½ÐÎϤˤ·¤Æ¤¤¤Þ¤¹¡£~
¼¡¤Î''for''ʸ¤Ç¡¢¥â¡¼¥¿¤Î²Ã®¤ò¹Ô¤Ã¤Æ¤¤¤Þ¤¹¡£
#include <3048.h>
void wait(int t)
{
while (t--);
}
//¥â¡¼¥¿¶îÆ°
void motor(int speed)
{
int i;
// unsigned char md[] = {0x11, 0x22, 0x44, 0x88}; //1ÁêÎ弧
unsigned char md[] = {0x33, 0x66, 0xcc, 0x99}; //2ÁêÎ弧
// unsigned char md[] = {0x11, 0x33, 0x22, 0x66, 0x44, 0xcc, 0x88, 0x99}; //1-2ÁêÎ弧
for (i = 0; i < sizeof(md); i++){
PB.DR.BYTE = md[i];
wait(speed);
}
}
int main(void)
{
int i, j, speed;
PB.DDR = 0xff;
speed = 10000;
while (1){
motor(speed);
//²Ã®
if (j > 5){
j = 0;
speed -= 500;
}else{
j++;
}
}
return 0;
}
**³ä¤ê¹þ¤ß¤ò»ÈÍѤ·¤¿¥×¥í¥°¥é¥à [#d1f080da]
¥Þ¥¤¥³¥ó¤Î¥¿¥¤¥Þ³ä¤ê¹þ¤ß¤ò»ÈÍѤ·¤Þ¤¹¡£~
¥×¥í¥°¥é¥à¤òÀ°Íý¤¹¤ë¤¿¤á¡¢´Ø¿ô¤ËºÙ¤«¤¯Ê¬¤±¤Æ¤¤¤Þ¤¹¡£~
//¥¹¥Æ¥Ã¥Ô¥ó¥°¥â¡¼¥¿¤Î²óž
//¥¿¥¤¥Þ³ä¤ê¹þ¤ß(ITU0)ÍøÍÑ
//10ms¤´¤È¤Ë³ä¤ê¹þ¤ß
#include <3048.h>
int global_iMotorStep;
//Æþ½ÐÎϽé´ü²½
void init_io(void)
{
PB.DDR = 0xff;
}
//ITU½é´ü²½
void init_itu(void)
{
ITU0.TCR.BIT.CCLR = 1; //¥«¥¦¥ó¥¿¥¯¥ê¥¢Í×°ø
ITU0.TCR.BIT.TPSC = 3; //¥¿¥¤¥Þ¥×¥ê¥¹¥±¡¼¥é 25MHz / 8 = 3.125MHz
ITU0.GRA = 62499; // 1 / 3.125MHz = 3.2e-4 ms , 20ms / 3.2e-4 ms = 15625
ITU0.TIER.BIT.IMIEA = 1; //IMFA¥Õ¥é¥°¤Ë¤è¤ë³ä¤ê¹þ¤ßµö²Ä
}
//ITU¥¤¥ó¥¿¡¼¥Ð¥ë¥¿¥¤¥Þ³ä¤ê¹þ¤ß
void int_imia0(void)
{
static int iStep = 0;
ITU0.TSR.BIT.IMFA = 0;
PB.DR.BYTE = global_iMotorStep;
global_iMotorStep <<= 1;
if (global_iMotorStep == 0x110){
global_iMotorStep = 0x11;
}
}
//¼ç½èÍý
int main(void)
{
int i;
init_io();
init_itu();
ITU.TSTR.BIT.STR0 = 1; //¥¿¥¤¥Þ³«»Ï
global_iMotorStep = 0x11;
EI; //³ä¤ê¹þ¤ß¤Îµö²Ä
while(1);
return 0;
}
**¤Á¤ç¤Ã¤È±þÍÑ [#a9dad3bf]
ÊÌ¥Ú¡¼¥¸¤Ç¾Ò²ð¤·¤Æ¤¤¤ë¥·¥ê¥¢¥ëÄÌ¿®¥é¥¤¥Ö¥é¥ê¤ÈÁȤ߹ç¤ï¤»¤¿Îã¤Ç¤¹¡£~
Tera TermÅù¤ÎÄÌ¿®¥×¥í¥°¥é¥à¤«¤é¥â¡¼¥¿¤Î²óž®ÅÙ¤ÈÎ弧¥Ñ¥¿¡¼¥ó¤òÀÚ¤êÂؤ¨¤ë¤³¤È¤¬¤Ç¤¤Þ¤¹¡£
//¥¹¥Æ¥Ã¥Ô¥ó¥°¥â¡¼¥¿¤Î²óž
//¥¿¥¤¥Þ³ä¤ê¹þ¤ß(ITU0)ÍøÍÑ
//10ms¤´¤È¤Ë³ä¤ê¹þ¤ß
#include <3048.h>
#include "h8sci.c"
//¥¹¥Æ¥Ã¥Ô¥ó¥°¥â¡¼¥¿¤ÎÎ弧¥Ñ¥¿¡¼¥ó
#define STEP_PATTERN_1 0
#define STEP_PATTERN_2 1
#define STEP_PATTERN_12 2
unsigned char global_cMotorStep[3][9] = {
{0x11, 0x22, 0x44, 0x88, 0x11, 0x22, 0x44, 0x88}, //1ÁêÎ弧
{0x33, 0x66, 0xcc, 0x99, 0x33, 0x66, 0xcc, 0x99}, //2ÁêÎ弧
{0x11, 0x33, 0x22, 0x66, 0x44, 0xcc, 0x88, 0x99}}; //1-2ÁêÎ弧
unsigned char global_iStepPattern = STEP_PATTERN_2;
//Æþ½ÐÎϽé´ü²½
void init_io(void)
{
PB.DDR = 0xff;
}
//ITU½é´ü²½
void init_itu(void)
{
ITU0.TCR.BIT.CCLR = 1; //¥«¥¦¥ó¥¿¥¯¥ê¥¢Í×°ø
ITU0.TCR.BIT.TPSC = 3; //¥¿¥¤¥Þ¥×¥ê¥¹¥±¡¼¥é 25MHz / 8 = 3.125MHz
//ITU0.GRA = 62499; // 1 / 3.125MHz = 3.2e-4 ms , 20ms / 3.2e-4 ms = 62499
//ITU0.GRA = 46874;
ITU0.GRA = 31249; // 1 / 3.125MHz = 3.2e-4 ms , 10ms / 3.2e-4 ms = 31249
//ITU0.GRA = 15625; // 1 / 3.125MHz = 3.2e-4 ms , 5ms / 3.2e-4 ms = 15625
ITU0.TIER.BIT.IMIEA = 1; //IMFA¥Õ¥é¥°¤Ë¤è¤ë³ä¤ê¹þ¤ßµö²Ä
}
//ITU¥¤¥ó¥¿¡¼¥Ð¥ë¥¿¥¤¥Þ³ä¤ê¹þ¤ß
void int_imia0(void)
{
static int iStep = 0;
ITU0.TSR.BIT.IMFA = 0; //³ä¤ê¹þ¤ß¥¹¥Æ¡¼¥¿¥¹¥Õ¥é¥°¡¡¥¯¥ê¥¢
//¥â¡¼¥¿¤Î¶îÆ°
PB.DR.BYTE = global_cMotorStep[global_iStepPattern][iStep];
if (iStep++ > 7){
iStep = 0;
}
}
//¼ç½èÍý
int main(void)
{
int i;
char cBuffer;
char strMessage[100];
init_h8sci(BR57600);
init_io();
init_itu();
h8sci_out_string("Hello\n");
ITU.TSTR.BIT.STR0 = 1; //¥¿¥¤¥Þ³«»Ï
EI; //³ä¤ê¹þ¤ß¤Îµö²Ä
while (1){
//¥¡¼ÆþÎϤμõÉÕ
cBuffer = h8sci_in_data();
switch (cBuffer){
//¥â¡¼¥¿²óžÀ©¸æ
case 'z':
ITU0.GRA += 2000;
h8sci_out_string("> Speed Down\n");
break;
case 'a':
ITU0.GRA += 500;
h8sci_out_string("> Speed Down\n");
break;
case 'q':
ITU0.GRA -= 500;
h8sci_out_string("> Speed Up\n");
break;
case '1':
ITU0.GRA -= 2000;
h8sci_out_string("> Speed Up\n");
break;
case 'w':
global_iStepPattern = STEP_PATTERN_12;
h8sci_out_string("> Step Pattern 1-2\n");
break;
case 's':
global_iStepPattern = STEP_PATTERN_2;
h8sci_out_string("> Step Pattern 2\n");
break;
case 'x':
global_iStepPattern = STEP_PATTERN_1;
h8sci_out_string("> Step Pattern 1\n");
break;
default:
break;
}
}
return 0;
}
RIGHT:2005-09-13 (²Ð) 02:02:01
----
[[¥¨¥ì¥¯¥È¥í¥Ë¥¯¥¹]]