シュウジマブログ

Apple製品,技術系の話をするブログ

デジタル可変抵抗器 MCP4018をArduinoで使ってみる

デジタルポテンショメータMCP4018を使ってみました.

今回はArduinoで値を変化させてみます.

環境

製作

MCP4018のDIP

小型のパッケージは自作基板に実装するときとても便利ですが,実験でブレッドボードに取り付けたいとき不便です.

今回は,AliExpressで購入したピッチ変換ボードを利用しました.

MCP4018は0.65mmピッチです.

購入したものは販売中止になっていましたが,ほぼ同じものがありました. ja.aliexpress.com

Amazonにも(Aliより高い)

取り付けた様子が以下の図です(2つ付けました).

f:id:masa_flyu:20181007220327j:plain

そして拡大

f:id:masa_flyu:20181007213049j:plain

(↓こちらで拡大しました)

Kenko 顕微鏡 Do・Nature 20~40倍 LEDライト内蔵 コンパクト携帯型 STV-40M

Kenko 顕微鏡 Do・Nature 20~40倍 LEDライト内蔵 コンパクト携帯型 STV-40M

ABTUの刻印が見えますが,この向きで左下が1番ピンです.

Arduinoとの結線

f:id:masa_flyu:20181007215548p:plain データシートを元につなぎます. まずこのようにつなぎます.

Arduino MCP4018
3.3V 1 (VDD)
GND 2 (VSS)
SCL ※ 3 (SCL)
SDA ※ 4 (SDA)

Arduino UNO R3ではAREF端子の隣がSDA,そのさらに隣の端がSCKピンが利用できる.R3含む全てのArduino UNOではA4がSDA,A5がSCLを兼ねている.

さらに,今回は動作チェックのため,追加で以下のようにつなぎます.

Arduino MCP4018
A0 5 (W)
5V 6 (A)

MCP4018は10kohmの抵抗器の片側がVcc,もう片側がAピンに接続されており,その抵抗の任意の中間点にWピンが接続されています.

A側を5Vに接続することで,MCP4018の抵抗は点Wから見たとき,5V電源を2つの抵抗で分圧しているようになります.

つまりWの位置がVss付近のときWは0[V],Wの位置がA付近のときWは5[V]になり,その間はWの位置に比例して増加します.

最終的にこのようになりました. f:id:masa_flyu:20181007220328j:plain

スケッチ

// MCP4018用実験プログラム
// MCP4018の抵抗を一定時間ごとに一定量変化させる.

#include <Wire.h>


void setup() {
  Serial.begin(9600);
  Wire.begin();
}

int cnt = 0 , a;
 
void loop() {

  // MCP4018 のアドレスは0101111 → 16進数で2Fにセットされている
  // 0〜127の値を送る
  Wire.beginTransmission(0x2F);
  Wire.write(cnt);
  Wire.endTransmission();

  // 送信した値と,それをW→Vss間の抵抗で表した抵抗値をシリアル出力させる.
  Serial.print("set = ");
  Serial.print(cnt);
  Serial.print(" ( ");
  Serial.print(cnt / 127.0 * 10.0);
  Serial.print(" kohm)");

  a = analogRead(0);

  // W-Vssの電位差をシリアル出力させる.
  Serial.print("\t\tanalogRead = " );
  Serial.print(a);
  Serial.print(" ( ");
  Serial.print(a / 1024.0 * 5.0 );
  Serial.println(" [V] )");

  // カウントアップ
  cnt += 5 ;

  // カウントが127を超えていたら,意味がないので,0に戻す.
  if( cnt > 127 ) cnt = 0;
  
  delay(200);
}

実験結果

プログラムを実行すると以下のように出力されます.

f:id:masa_flyu:20181007210855p:plain

セットした値に応じて,抵抗値が変化していることがわかります.

↓続き? masa-flyu.hatenablog.com

当ブログをご利用いただく際には免責事項をお読みください。