PICマイコン

PICマイコンでのサーボモータの動かし方

PICマイコンでサーボモータを動かしたい方

本記事ではPICマイコン(12F1822)を使ってサーボモータを動かす方法について紹介します。

arduinoなどのマイコンボードを使用するより小型化ができ、タイマーICやバイブレーター回路などより安定した動きができます。

サーボモータを動かすには一番良い方法かもしれません。

目次
  • サーボモータSG92Rの仕様
  • PICマイコン(12F1822)の仕様
  • コードの作成
  • 配線(PICマイコンとサーボモータの接続方法)

サーボモータSG92Rの仕様

今回は「SG92R」というサーボモータを動かしていきたいと思います。

SG92Rは橙色の配線に制御信号を入力することで角度を指定します。

各スペックは下記の通りです。

  • PWMサイクル:20ms
  • 制御パルス:0.5ms~2.4ms
  • 制御角:±約90°(180°)
  • 配線:茶=GND、赤=電源[+]、橙=制御信号 [JRタイプ]
  • トルク:2.5kgf・cm
  • 動作速度:0.1秒/60度
  • 動作電圧:4.8V
  • 温度範囲:0℃~55℃
  • 外形寸法:23×12.2x27mm
  • 重量:9g

スペックに書いてあることから

20msに1サイクルのPWM波形(50Hz)を作り、パルス幅(HIGHとなる部分の長さ)を0.5ms~2.4msと変化させることにより -90°~+90° の合計 180°動く角度を変化させられることがわかります。

下記にパルス幅ごとの角度表を添付します。

ms us 角度
0.5 500 -90
0.6 600 -80.53
0.7 700 -71.05
0.8 800 -61.58
0.9 900 -52.11
0.975 975 -45
1 1000 -42.63
1.1 1100 -33.16
1.2 1200 -23.68
1.3 1300 -14.21
1.4 1400 -4.74
1.45 1450 0
1.5 1500 4.74
1.6 1600 14.21
1.7 1700 23.68
1.8 1800 33.16
1.9 1900 42.63
1.925 1925 45
2 2000 52.11
2.1 2100 61.58
2.2 2200 71.05
2.3 2300 80.53
2.4 2400 90

PICマイコン(12F1822)の仕様

今回使用するPIC12F1822には8個のピンがあります。ピンの配置はMICROCHIP社が発行しているデータシートで確認できます。データシートにはピン配置以外にもいろいろな情報に乗っています。ネットで検索すれば出てくるので確認してみましょう。

番ピン(VDD)は電源のプラス、8番ピン(VSS)は電源のマイナスになります。また、2~7番ピンのRA0~5はIOピンとなっており、入出力ができるピンになっています。2~7番ピンには他にも機能が多くあり、それらはでデータシートで確認できます。

コードの作成

サンプルコードを下記に示します。

RA3及びRA4を入力ピンとし、ともにプルアップさせています。

何もしていないときにはRA3,4ともにHIGHになっているため、サーボモータを0°にする波形を出力します。

RA3をLOWにすると180°回転する波形をRA2から出力し、RA4をLOWにすると90°回転する波形をRA2から出力します。

コードをPICマイコンに書き込む方法は別の記事

(小さくて安いPICマイコンを使ってみる【LEDの点灯】)

にて紹介してますので参考にしてください。

配線(PICマイコンとサーボモータの接続方法)

配線は下の写真のようになります。

黒のボタンを押すとプルアップされている4番ピン(RA3)がLOWになり、サーボモータが180°回転します。

また、茶色いボタンを押すとプルアップされている3番ピン(RA4)がLOWになり、サーボモータが90°回転します。

何も押していないとサーボモータが0°になります。