【基礎電子工学ⅡENG】030-2:マイコン制御Ⅱ[ステッピングモーターの駆動/ステッピングモーターの加速と減速/PIC16F84A/C言語プログラミング]

  Рет қаралды 22

YouTube大学ENG【電気電子工学・プログラミング】

YouTube大学ENG【電気電子工学・プログラミング】

Күн бұрын

【ステッピングモーター技術資料】
オリエンタルモーター(株):
www.orientalmo...
--------------------------------------------------------------------------------------------------------------------
*プログラムリストは、下記にあります↓
#C言語マイコン制御#ステッピングモータの駆動制御
【学習内容】
1:ステッピングモーターの駆動1
2:ステッピングモーターの駆動2
-----------------------------------------------------------------------------------
<プログラムリスト>(MPLABX Ver6.2)
コピー&ペーストでお使い下さい。
*”TABキー”でスペースの間隔の体裁を整えて下さい。
(プログラムの記述画面に”全角”のスペースが
 含まれていると、ビルドに失敗します。)
-----------------------------------------------------------------------------------
[SW2=ON → ステッピングモーター加速・減速]
-----------------------------------------------------------------------------------
//**の部分の<、>を、半角文字に書き換えて下さい。
//PIC16F84A
#include "pic.h"
#pragma config FOSC=HS, WDTE=OFF, PWRTE=ON, CP=OFF
#define _XTAL_FREQ 10000000
#define max 25 //最高速度設定
#define acc 10 //加速度設定
volatile int exc;
volatile int k;
void delay(int k){
for(int m = k; m >= 0; m--) __delay_ms(0.1); //**
}
void drive(int k)
{
for(int i = 0 ;i < 4 ; i++ ) //**
{
PORTB = exc;
delay(k);
exc = exc >> 1; //**
}
exc = 0x80;
}
//メイン関数
void main (void)
{
TRISB = 0x00;
TRISA = 0b00100;
int exc = 0x80;
PORTB = exc;
do{ ; }while(RA2 == 0); //SW2 = ON?
while(1)
{
for( k = 100 ; k >= max ; k = k - k/acc){ //**
for(int rote = 12 ; rote > 0 ; rote--) drive(k); //**
}
do { drive(max); } while(RA2 == 0);
for( k = max ; k <= 100 ; k = k + k/acc){ //**
for(int rote = 12 ; rote > 0 ; rote--) drive(k); //**
}
do { drive(100); } while(RA2 == 0);
}
}

Пікірлер
How to treat Acne💉
00:31
ISSEI / いっせい
Рет қаралды 108 МЛН
My scorpion was taken away from me 😢
00:55
TyphoonFast 5
Рет қаралды 2,7 МЛН
coco在求救? #小丑 #天使 #shorts
00:29
好人小丑
Рет қаралды 120 МЛН
I Scraped the Entire Steam Catalog, Here’s the Data
11:29
Newbie Indie Game Dev
Рет қаралды 842 М.