【基礎電子工学ⅡENG】030-3:マイコン制御Ⅱ[ステッピングモーターの駆動/ステッピングモーター・角度を指定した回転/PIC16F84A/C言語プログラミング]
Вставка
- Опубліковано 12 січ 2025
- 【ステッピングモーター技術資料】
オリエンタルモーター(株):
www.orientalmo...
--------------------------------------------------------------------------------------------------------------------
*プログラムリストは、下記にあります↓
#C言語マイコン制御#ステッピングモーター
【学習内容】
1:ステッピングモーターの駆動1
2:ステッピングモーターの駆動2
-----------------------------------------------------------------------------------
<プログラムリスト>(MPLABX Ver6.2)
コピー&ペーストでお使い下さい。
*”TABキー”でスペースの間隔の体裁を整えて下さい。
(プログラムの記述画面に”全角”のスペースが
含まれていると、ビルドに失敗します。)
-----------------------------------------------------------------------------------
[SW2=ON → ステッピングモーター右90°→左180°→右90°]
-----------------------------------------------------------------------------------
//**の部分の<,>を半角文字に書き換えて下さい。
//PIC16F84A
#include "pic.h"
#pragma config FOSC=HS, WDTE=OFF, PWRTE=ON, CP=OFF
#define _XTAL_FREQ 10000000
volatile int exc;
void drive_R(void)
{
PORTB = exc;
exc = exc >> 1; //**
__delay_ms(10);
if(exc == 0x08 ) exc = 0x80;
}
void drive_L(void)
{
PORTB = exc;
exc = exc << 1; //**
__delay_ms(10);
if(exc == 0x100 ) exc = 0x10;
}
//メイン関数
void main (void)
{
TRISB = 0x00;
TRISA = 0b00100;
int i;
exc = 0x80;
PORTB = exc;
while(1)
{
do{ ; }while(RA2 == 0); //SW2 = ON?
for(i = 0 ;i < 50 ; i++ ) drive_R(); //**
__delay_ms(500);
for(i = 0 ;i < 100 ; i++ ) drive_L(); //**
__delay_ms(500);
for(i = 0 ;i < 50 ; i++ ) drive_R(); //**
}
}