COUNTER



新BLOG
 
新BBS
MN-BBS
旧BBS
CALENDAR
S M T W T F S
  1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30     
<<  2024 - 04  >>
 
LOGIN
現在モード: ゲストモード
USER ID:
PASS:
CATEGORIES
ARCHIVES
PROFILE
OTHERS
    処理時間 0.270589秒
POWERED BY
POWERED BY
ぶろぐん
DESIGN BY
ブログンサポート
          
<<前の10件 | 1 | 2 | 3 | 4 | 5 | 6 | 次の10件>>

---「PIC」プログラミング再び (2)---
 PICのプログラムについて、少しずつ思い出してきました。

 とはいっても、完全にマスターなどしている訳ではないので、

 何年か前の水準にもどっただけです。

 今日は、PICで、ステッピングモーターのパルスを発生さて、

 中古のステッピングモーターを回してみました。

 UDK2120の取説には、必要なパルスの要件は、
 
 

 とありました。アセンブラでプログラムを組むと、命令に必要な

 クロック数から細かい設計もできるのでしょうが、Cからは、

 ちょと面倒で、私にはできません。ということで、実際にプログラム

 しては、動かしてみて、オシロデ確認して組みました。



 /******************************************
2014-10-15
PULSE SEISEI
********************************************/
#include <pic.h>

__CONFIG(UNPROTECT & LVPDIS & BOREN & MCLRDIS & PWRTEN & WDTDIS & INTIO);

void WaitTime1 (void);
void WaitTime2 (void);
int dummy;

void main(void){

PORTA=0x00;//PORTAをLOWに
PORTB=0x00;//PORTBをLOWに
TRISA=0x08;//0000 1000 PORTAを出力に(RA3は入力に)
TRISB=0x00;//0000 0000 PORTBを出力に

CMCON=0x07; //1,2,17,18コンパレーターオフ 汎用端子を入出力へ

//パルスの生成
for(;;){
RA1=1;
dummy=1;//待ち時間だけHIGHに
dummy=1;
RA1=0;
WaitTime2();//待ち時間だけLOWに
}
}

// 待ち時間関数の呼び出し
void WaitTime1 (void){
int cnt1=1;
while(cnt1 > 0){
cnt1--;}
}

void WaitTime2 (void){
int cnt2=20;
while(cnt2 > 0){
cnt2--;}


 やってることは単純なことで、一つの端子の出力を、オン、オフ

 をしているだけです。ただ、当初予定していた二つの待ち時間

 の関数を使おうとしましたが、この関数を使うと、パルスの幅

 が50μsぐらいになるので、dummy=1という数字を代入すると

 いう意味のない命令を一つ実行するだけで、だいたい、取説

 にあった5μsの幅になりました。

 WaitTime2()の関数で、待ち時間のカウンターを20にすること

 で、パルスの周波数が約2kHになりました。

 2kHだと約240rpm/mの早さで回るようです。

 

 これで、目的にまた一歩近づきました。Webはくしゅ

| mabo52 | 14:46 | comments (0) | trackback (0) | DIY::  -pic |
---「PIC」プログラミング再び (1)---
 ちょっとした制御をPICでやろうとまた思いたちました。以前

 ハンダゴテタイマーをPICで作りましたが,そのプログラムを

 見てみると,全く忘れてしまいました。

 そこで,また,最学習することに・・・・・・・・。

 今回もプログラミング言語は「C」を使いますが,PICの細かい設定

 とうについて,全く忘れてしまいましたので,備忘録代わりに,

 メモ帳代わりに記録していきます。

 以前使った16F627Aです。

 PORTAレジスタ・・・・ポートAの出力端子の電力レベルの設定
      ポートAの出力端子(RA7~RA0)
    例 一括設定
        PORTA=Ob00000000(RA7~RA0が0Vに設定)
             0b・・・2進数
             ・・・・・・8進数
             0x・・・・・16進数            
      単独の設定       
        RA0=0(RA0を0Vに設定)
  PORTBレジスタも同様の設定

 TRISAレジスタ・・・・RA各端子の入出力の設定
             0を書き込むと出力端子になる
             1を書き込むと入力端子になる
    例 一括設定
        TRISA=0b00000000(RA7~RA0が出力端子に)
       単独の設定      
        TRISA3=0  (RA3を出力端子に)
      (16F627Aの場合RA5は入力専用なので,必ず入力に)

  CMCONレジスタ・・・・・・汎用端子の役割設定
       CMCOM=0x07 (下位3ビットを1に設定することで
                   1,2,17,18端子を入出力端子
                   に設定)
 
  今日は,

  
 
この本で,ここまで復習。

 プログラムを覚え初めの頃,

    A=A+1

 という表記が納得いきませんでした。数学や算数では,成り立ちません。

 この場合,「=」はイコール(等しい)ではなくて,代入するという

 意味です。ちなみに等しいかどうかの判別は,「==」イコール

 を二つ並べます。プログラム覚え立ての頃,ここではまりました。

 IF(A=1){処理1}

 こんな風に書いて思った結果がでませんでした。これだと,Aに1が

 代入されてしまいます。正しくは,

 IF(A==1){処理1}

 でした。Webはくしゅ

| mabo52 | 21:09 | comments (0) | trackback (0) | DIY::  -pic |
---半田ごてタイマーが組み上がりました---
  あれこれやってましたが,やっと,半田ごてタイマーが組み

  上がりました。昨日だいたいできたのですが,RA0の端子

  とRA7の端子が思った動作をしてくれず,あれこれ,やって

  ましたが,原因が分かりました。RA0はイモ半田で,導通し

  ていませんでした。RA7は,ショートしていいて,常に5Vが

  でている状態でした。当初の予定では,自己保持リレーで,

  自分自身お電源も切る予定でしたが,あれこれやりました

  が,うまく行きませんでした。とりあえず完成ということで,

  後日,2回路のリレーを使って,再挑戦したいと思います。

  今までのタイマーと違って,残り時間が液晶表示で,分か

  こと,任意の時間が設定できること,残り時間がなくなると,

  一分だけ延長され,その間にスタートボタンを押すと,設定

  した時間だけ,繰り返せます。一分が過ぎると,半田ごての

  電源を切って,0の表示に戻ります。

    

  青の液晶表示がおしゃれだと思ってます。今のところ,

  一番右のスイッチは,ただの飾りです。

Webはくしゅ

| mabo52 | 20:26 | comments (0) | trackback (0) | DIY::  -pic |
---予定変更 16F84A~16F627A ---
 HPにのっていた99タイマーをちょっと改良して,半田ごてタイ

 マーを作る予定でいましたが,16F84Aは端子が,どうしても2

 本たりないで,上位互換である,16F627Aに変更して,作る

 ことにしました。もう少し調べれば,16F627Aよりもメモリーが

 が多くて,安いPICがあったのですが,失敗しました。これも,

 身銭を切ったお勉強です。

 テスト基盤,

 

 でのプログラムの作成もやっと完成しそうです。今まで使って

 いた半田ごてタイマーと違うところは,使える時間を99分まで

 の間で設定できることです。

 (時間の設定)→(カウントダウン)→

  (ブザー)→(一分以内にスタートボタンを押す)

    →(最初の設定時間に戻る)→(カウントダウン)

 を繰り返します。一分以内にボタンを押さないと,本体

 も含めて電源が切れるようになります。
 
 当初 アセンブラー(HPにあったもの)をちょっと改良

 するつもりでしたが,プログラムの半分ぐらいは,意味

 が分かったのですが,面倒なので,フリーのCコンパイ

 ラーで,くみなおしました。プログラムの大きさが心配

 でしたが,PICの容量の85%ぐらいでおさまりました。Webはくしゅ

| mabo52 | 12:21 | comments (0) | trackback (0) | DIY::  -pic |
---タイマーを作っています。---
 PICを使ったタイマーを作ってます。やっと7セグメントLEDの

 表示部分だけが出来ました。テスト点灯で,一カ所だけ,光ら

 せています。

 

 このタイマーのハードにSSRを組み込んで,半田ごてタイマー

 にしようと思います。

 ハードの追加は,PIC16F84の開いている端子にSSRを接続

 するだけなので,それほど難しくはありませんが,プログラム

 の変更が大変だろうなあ。Webはくしゅ

| mabo52 | 12:49 | comments (0) | trackback (0) | DIY::  -pic |
---PICプログラミング---
 友人の影響で,PICのプログラムをいじり始めました。

 アセンブラーとCコンバイラーがどちらも無料であるので,

 DLしてあれこれ始めました。

 最初にCであれこれやりましたが,まあ,比較的すんなりいき

 ましたが,アセンブラーではまりました。

 なんと,

 LIST

 と

  LIST

 の違いで,コンパイルエラーとなりました。どかが違うかというと,

 LISTの前に空白があるかないかの違いでした。

Webはくしゅ

| mabo52 | 22:04 | comments (0) | trackback (0) | DIY::  -pic |

こんな物欲しいな
CLOCK
NEW ENTRIES
COMMENTS
    ---SPINDLEのPWM制御 (その2) (7)
  • TR >06.18
    ---番外編---
  • TR >06.02
    ---SPINDLEのPWM制御 (その2) (5)
  • mabo >05.30
保留中コメント:10件
LINKS
    相互リンクさせていただいてます。
  • The Rider
Search Box
名言集
メール
   
連絡は下記から
名前:

メールアドレス:

件名:

メッセージ(必須):


TOP PAGE