検索
AND検索
OR検索
トップ
|
リロード
|
新規
|
一覧
|
単語検索
|
最終更新
|
ヘルプ
自作my_PWM()関数の紹介 をテンプレートにして作成
★トップ(目次)ページへ
★情報交換掲示板
08/08/14設置
今日の10件
PICとMikroC
(300)
MikroCの特徴
(2)
MPLAB Xのデバッガーの使用法
(2)
スリープ(PICの消費電力を最小に)
(2)
モータを高速・中速・低速で回転
(2)
パソコンとPICの通信(USART)
(2)
TVリモコン信号の受信機
(1)
XC8:変数の型のタイプと値の範囲
(1)
WikiName
(1)
スイッチ入力(16F1827 XC8)
(1)
最新の15件
2024-05-03
対象PIC
2024-04-02
インターバルタイマ(TMR0割込み利用)(16F886)
XC8:変数の型のタイプと値の範囲
XC8:プログラミング書式の確認
XC8:コンフィグレーションワード記述書式について
スリープ(PICの消費電力を最小に)
PWM機能
2024-01-29
MikroCの特徴
RecentDeleted
2023-12-22
RCDライタ 350円
LEDの明るさを変える(PWM)(24FJ64)
ライントレースカー(基本機能のみ搭載)
発光ダイオード(LED)の点滅(16F1827 XC8)
2023-09-12
I2C通信LCD表示法(16F1827 XC8)
2023-07-06
PIC-PICの通信(USART)
#amazon(4798109223)
Total:0/Today:0
開始行:
閲覧総計:&counter(); (本日:&counter(today); 昨日...
~
*自作my_PWM()関数の紹介 [#s4da44ff]
左右2輪駆動の自動車を前後左右に自在にPWM制御しようと...
が4つ必要となる。PIC16F628Aはハード組み込みのPWM出力...
このニーズを満足しない。
その為、モータをソフトウエアPWM制御する関数を自作し利...
モータ駆動の為の自作PWM関数
void my_PWM_RB2(unsigned short int duty);
void my_PWM_RB3(unsigned short int duty);
void my_PWM_RB4(unsigned short int duty);
void my_PWM_RB5(unsigned short int duty);
|&attachref(P1010201.JPG,zoom,150x150,button){新しい写真...
/**
* my_PWM関数
* 自動車を前後・左右に自在に制御する
*
* PIC 16F628A
* 発信器 4MHz
* 言語 MikroC v2.1
* Device Flags: _BODEN_OFF _BOREN_OFF _CP_OFF _PWRTE_ON
* _WDT_OFF _LVP_OFF _MCLRE_OFF _INTRC_OSC_NOCLKOUT
*
* モータ mabuchi FA-130RA(1.5V-3.0V)
* モータドライバIC 東芝TA7291P
* http://www.semicon.toshiba.co.jp/td/ja/Linear_ICs/Moto...
* PortB 2,3:モータ右
* PortB 5,4:モータ左
* 電源:PIC:電池4本 モータ:電池3本
*/
//関数プロトタイプ宣言
void my_PWM_RB2(unsigned short int duty);
void my_PWM_RB3(unsigned short int duty);
void my_PWM_RB4(unsigned short int duty);
void my_PWM_RB5(unsigned short int duty);
void main(){
unsigned int i;
unsigned int pause = 1000; //待機時間1秒
//ポートの初期化
PORTB = 0b00000000;
//入出力の設定 1:input 0:output
TRISB = 0b00000000; //PORTB 8ヶ全て出力に設定
//LED点灯
PORTB = 0b11111111;
Delay_ms(1000);
PORTB = 0b00000000;
do {
for(i = 0; i < 500; i++) { //5秒継続
my_PWM_RB2(99); //99%右前進
my_PWM_RB5(97); //97%左前進
}
for(i = 0; i < 500; i++) { //5秒継続
my_PWM_RB3(99); //99%右後進
my_PWM_RB4(97); //97%左後進
}
for(i = 0; i < 500; i++) { //5秒継続
my_PWM_RB2(99); //99%右前進
my_PWM_RB5(60); //60%左前進
}
for(i = 0; i < 500; i++) { //5秒継続
my_PWM_RB3(70); //70%右後進
my_PWM_RB4(90); //90%左後進・
}
PORTB = 0b00000000; //停止
Vdelay_ms(pause); //待機
} while(1);
}
/**
* my_PWM_RB2() 機能:RB2の出力を0%-100%で制御する
*
* duty:範囲 0-100
* 100ループで約1秒 @4MHz
*/
void my_PWM_RB2(unsigned short int duty) {
unsigned short int period = 100; //PWM分解能
unsigned short int t_count;
PORTB.F2 = 1; //ON
for(t_count = 0; t_count < period; t_count++){
if(t_count > duty - 1){
PORTB.F2 = 0; //OFF
}
delay_us(10);
}
}
void my_PWM_RB3(unsigned short int duty) {
unsigned short int period = 100; //PWM分解能
unsigned short int t_count;
PORTB.F3 = 1; //ON
for(t_count = 0; t_count < period; t_count++){
if(t_count > duty - 1){
PORTB.F3 = 0; //OFF
}
delay_us(10);
}
}
void my_PWM_RB4(unsigned short int duty) {
unsigned short int period = 100; //PWM分解能
unsigned short int t_count;
PORTB.F4 = 1; //ON
for(t_count = 0; t_count < period; t_count++){
if(t_count > duty - 1){
PORTB.F4 = 0; //OFF
}
delay_us(10);
}
}
void my_PWM_RB5(unsigned short int duty) {
unsigned short int period = 100; //PWM分解能
unsigned short int t_count;
PORTB.F5 = 1; //ON
for(t_count = 0; t_count < period; t_count++){
if(t_count > duty - 1){
PORTB.F5 = 0; //OFF
}
delay_us(10);
}
}
★この情報は役に立ちましたか?
#vote(はい[17],普通[6],いいえ[38])
- この自作my_PWM()関数に不備があるとのご意見を、07/1/24 0...
「PIC初心者掲示板」に頂きました。
http://www.picfun.com/freecgi/TreeBBS/index.cgi?bid=1&tnu...
このプログラムでは「同時出力でなく交互出力でduty:100未満...
しまうになってしまうみたいですが、一工夫すれば同時出力に...
とのアドバイスです。
この事が07/02/02現在「この情報は役に立たない2票」の投票...
お恥ずかしい話、私には上記アドバイスの内容が理解できず、...
本件お分かりになられる方がおられましたら更なるアドバイス...
よろしくお願い申し上げます。 -- [[PICとMikroC]] &new{2007...
~
~
- PWM_RB2_RB3_RB4_RB5(90,0,0,50); みたいに同時出力関数を...
- http://www.coachcanadaoutlet.ca http://www.prada-outlet...
- http://www.oakleysunglasses.ar.com/ http://www.oakley--...
- http://www.outletonline-michaelkors.com/ http://www.mic...
- 2015-10-6 xiaozhengm http://www.louisvuitton-lvoutle...
- http://www.marcjacobs.us.com/ http://www.designerhandba...
- 催淫カプセル:http://www.okkanpo.com/Product/245.html o...
- 巨人倍増:http://www.chinakanpo.com/product/jrbz.html ...
- 媚薬:http://www.xxkanpo.com/ d10媚薬:http://xn--d10-hl9...
- 20190109 junda http://www.coach-factory-outlet-online.u...
- 20190109 junda http://www.coach-factory-outlet-online.u...
#comment_nospam
終了行:
閲覧総計:&counter(); (本日:&counter(today); 昨日...
~
*自作my_PWM()関数の紹介 [#s4da44ff]
左右2輪駆動の自動車を前後左右に自在にPWM制御しようと...
が4つ必要となる。PIC16F628Aはハード組み込みのPWM出力...
このニーズを満足しない。
その為、モータをソフトウエアPWM制御する関数を自作し利...
モータ駆動の為の自作PWM関数
void my_PWM_RB2(unsigned short int duty);
void my_PWM_RB3(unsigned short int duty);
void my_PWM_RB4(unsigned short int duty);
void my_PWM_RB5(unsigned short int duty);
|&attachref(P1010201.JPG,zoom,150x150,button){新しい写真...
/**
* my_PWM関数
* 自動車を前後・左右に自在に制御する
*
* PIC 16F628A
* 発信器 4MHz
* 言語 MikroC v2.1
* Device Flags: _BODEN_OFF _BOREN_OFF _CP_OFF _PWRTE_ON
* _WDT_OFF _LVP_OFF _MCLRE_OFF _INTRC_OSC_NOCLKOUT
*
* モータ mabuchi FA-130RA(1.5V-3.0V)
* モータドライバIC 東芝TA7291P
* http://www.semicon.toshiba.co.jp/td/ja/Linear_ICs/Moto...
* PortB 2,3:モータ右
* PortB 5,4:モータ左
* 電源:PIC:電池4本 モータ:電池3本
*/
//関数プロトタイプ宣言
void my_PWM_RB2(unsigned short int duty);
void my_PWM_RB3(unsigned short int duty);
void my_PWM_RB4(unsigned short int duty);
void my_PWM_RB5(unsigned short int duty);
void main(){
unsigned int i;
unsigned int pause = 1000; //待機時間1秒
//ポートの初期化
PORTB = 0b00000000;
//入出力の設定 1:input 0:output
TRISB = 0b00000000; //PORTB 8ヶ全て出力に設定
//LED点灯
PORTB = 0b11111111;
Delay_ms(1000);
PORTB = 0b00000000;
do {
for(i = 0; i < 500; i++) { //5秒継続
my_PWM_RB2(99); //99%右前進
my_PWM_RB5(97); //97%左前進
}
for(i = 0; i < 500; i++) { //5秒継続
my_PWM_RB3(99); //99%右後進
my_PWM_RB4(97); //97%左後進
}
for(i = 0; i < 500; i++) { //5秒継続
my_PWM_RB2(99); //99%右前進
my_PWM_RB5(60); //60%左前進
}
for(i = 0; i < 500; i++) { //5秒継続
my_PWM_RB3(70); //70%右後進
my_PWM_RB4(90); //90%左後進・
}
PORTB = 0b00000000; //停止
Vdelay_ms(pause); //待機
} while(1);
}
/**
* my_PWM_RB2() 機能:RB2の出力を0%-100%で制御する
*
* duty:範囲 0-100
* 100ループで約1秒 @4MHz
*/
void my_PWM_RB2(unsigned short int duty) {
unsigned short int period = 100; //PWM分解能
unsigned short int t_count;
PORTB.F2 = 1; //ON
for(t_count = 0; t_count < period; t_count++){
if(t_count > duty - 1){
PORTB.F2 = 0; //OFF
}
delay_us(10);
}
}
void my_PWM_RB3(unsigned short int duty) {
unsigned short int period = 100; //PWM分解能
unsigned short int t_count;
PORTB.F3 = 1; //ON
for(t_count = 0; t_count < period; t_count++){
if(t_count > duty - 1){
PORTB.F3 = 0; //OFF
}
delay_us(10);
}
}
void my_PWM_RB4(unsigned short int duty) {
unsigned short int period = 100; //PWM分解能
unsigned short int t_count;
PORTB.F4 = 1; //ON
for(t_count = 0; t_count < period; t_count++){
if(t_count > duty - 1){
PORTB.F4 = 0; //OFF
}
delay_us(10);
}
}
void my_PWM_RB5(unsigned short int duty) {
unsigned short int period = 100; //PWM分解能
unsigned short int t_count;
PORTB.F5 = 1; //ON
for(t_count = 0; t_count < period; t_count++){
if(t_count > duty - 1){
PORTB.F5 = 0; //OFF
}
delay_us(10);
}
}
★この情報は役に立ちましたか?
#vote(はい[17],普通[6],いいえ[38])
- この自作my_PWM()関数に不備があるとのご意見を、07/1/24 0...
「PIC初心者掲示板」に頂きました。
http://www.picfun.com/freecgi/TreeBBS/index.cgi?bid=1&tnu...
このプログラムでは「同時出力でなく交互出力でduty:100未満...
しまうになってしまうみたいですが、一工夫すれば同時出力に...
とのアドバイスです。
この事が07/02/02現在「この情報は役に立たない2票」の投票...
お恥ずかしい話、私には上記アドバイスの内容が理解できず、...
本件お分かりになられる方がおられましたら更なるアドバイス...
よろしくお願い申し上げます。 -- [[PICとMikroC]] &new{2007...
~
~
- PWM_RB2_RB3_RB4_RB5(90,0,0,50); みたいに同時出力関数を...
- http://www.coachcanadaoutlet.ca http://www.prada-outlet...
- http://www.oakleysunglasses.ar.com/ http://www.oakley--...
- http://www.outletonline-michaelkors.com/ http://www.mic...
- 2015-10-6 xiaozhengm http://www.louisvuitton-lvoutle...
- http://www.marcjacobs.us.com/ http://www.designerhandba...
- 催淫カプセル:http://www.okkanpo.com/Product/245.html o...
- 巨人倍増:http://www.chinakanpo.com/product/jrbz.html ...
- 媚薬:http://www.xxkanpo.com/ d10媚薬:http://xn--d10-hl9...
- 20190109 junda http://www.coach-factory-outlet-online.u...
- 20190109 junda http://www.coach-factory-outlet-online.u...
#comment_nospam
ページ名: