2016年3月29日火曜日

デジタル・ポテンショメータでLPFのQをコントロールする

以前やった2次VCVS LPFのQの調整をデジタル・ポテンショメータのAD8403を使って実験してみた。

シミュレーション

1 + Rq1 / Rq2で増幅率が決まり、同時にQをコントロールできる。増幅率が3倍になると回路は発振する。

AC解析

Rq1とRq2をパラメータ解析してみた。

明るい緑が増幅率1で、Rq=100kΩ*(2/3)≒66.6kΩのとき増幅率が3となり発振する。

位相を見ると67kΩ(グレー)以上でおかしくなっているのでこの辺で発振しているようだ。

ブレッドボード図


AD8403はArduinoを使ってコントロールした。0~255を順番に出力しているので、AD8403は0Ω:100kΩ~100kΩ:0Ωでスイープされる。

Arduinoのスケッチ


/*
  Digital Pot Control

  AD8403
  
  チャンネル1のみ出力
  
  A1 - connect this to voltage
  W1 - this is the pot's wiper, which changes when you set it
  B1 - connect this to ground.
*/

// inslude the SPI library:
#include <SPI.h>

// set pin 10 as the slave select for the digital pot:
const int slaveSelectPin = 10;

byte cnt = 0;

void setup() {
  // set the slaveSelectPin as an output:
  pinMode (slaveSelectPin, OUTPUT);
  // initialize SPI:
  SPI.begin();
}

void loop() {
    digitalPotWrite(0, cnt);
    cnt++;
    delay(20);
}

void digitalPotWrite(int address, int value) {
  // take the SS pin low to select the chip:
  digitalWrite(slaveSelectPin, LOW);
  //  send in the address and value via SPI:
  SPI.transfer(address);
  SPI.transfer(value);
  // take the SS pin high to de-select the chip:
  digitalWrite(slaveSelectPin, HIGH);
}


100Hzのノコギリ波を通してみた。



無事?発振してくれているようだ(^q^/

<追記:2016/04/01>

Q = 0ではなく、A(増幅率) = 1で、QはRCの定数で計算するとQ=0.5だった(^q^;

</追記>