2014年2月19日 星期三

IN-9 nixie tube

這次從ebay買了六支IN-9.俄羅斯運來的(☆_☆)等了快四周
至於為什麼一次買那麼多支呢?沒辦法,單買一支的話運費都比較貴了QAQ
原本想要買IN-13的,不過電路都差不多複雜,於是就買便宜的吧


這次的真空管是顯示長條型的,電源需求140V,藉由改變電流來控制顯示的長度
電路圖如下:
這個電路有兩個作用,第一是當作溫度計,第二是他可以藉由DAC讓Arduino來控制
上面的LM34出來後,用OPA放大十倍,直接送入IN-9的電流控制區
下面的是用DAC7571輸出送入IN-9的電流控制區
電路先用麵包版驗證:
目前驗證成功啦~~旁邊有兩台三用電表,一個是顯示DAC輸出電壓(V),一個是顯示IN-9的電流(mA)
可以看出來目前的設定是Vin / 500 = I

電路還需要一些的細部調整,主要是Vin和I的比值,這是藉由電路圖中的R1所調整,還在想說要不要用IN-9上端得比較沒那麼線性的部分(大概10mA UP)
至於DAC7571,這是一個非常簡易的DAC IC,基本上就是一個12bit的可變電阻配上一個內建的Rail-to-Rail OPA buffer,溝通方式是i2C,而且這一切都濃縮在一個SOT-6的封裝裏
6支針腳已經是最精簡了,一組電源一個輸出兩個溝通一個位置選擇
放在Layout的電路板上真是省空間Y(^_^)Y
以下是控制DAC7571的CODE:

#include <Wire.h>
void setup() {

  Serial.begin(9600);
  Wire.begin();
  Serial.println("ADC Test");
}


void loop() {
  for (int i = 0;i<=4096;i++){ //12bit = 4096 step
    writeADC(i);
    Serial.println(i);
    delay(3);
  }
}
int writeADC(int value){
  byte a = value%256;                   //Wire send one byte at a time so use this to split a int
  byte b = value/256;
  Wire.beginTransmission(0x4C);  //A0=LOW
  Wire.write(b);
  Wire.write(a);
  Wire.endTransmission();  

}

沒有留言:

張貼留言