フィラメント接合器をつくろう!
FETでチョッパーしてヒーターを温めることが出来ました.
↓現物はこれです.コードの先端のアルミブロックにヒーターとサーミスタがついてます.制御にはArduino Nanoを使っています.
↓回路はこれです.FETは秋月電子で買いました.EKI04036というN-MOS.50Aぐらい流せるみたいよ.3.3Vでgate駆動するのでVthが2.5VぐらいのFETです.ヒーターはON時に3Aぐらい流れます.12V3Aなので36Wのヒーターなのでしょう.
ヒーター電源は12V.ArduinoでFETをON/OFFして12Vをチョッパします.
ArduinoのFET制御ピンはD9です.タイマー1のPWMがD9に出てきます.
(サーミスタはArduino ADCのA0へ接続しますが、今回は使いません)
タイマーのPWMとは、タイマーのカウンタがある値以上ならHIGHになる仕組みです.「ある値」を上下させるとdutyを変えられ、ヒーターを制御できます.CPUはdutyをセットするだけで、ON/OFFはタイマのハードウエアに自走させときます.らくちんです.
↓Arduinoソースはこれです.まだLOOP制御してません.
#include <TimerOne.h> ←タイマライブラリ
void setup() {
pinMode(LED_BUILTIN, OUTPUT);
タイマの設定が3つ.
タイマ周期0.2秒.ヒーターON/OFF周期が0.2秒.
Timer1.initialize(200000); // uSec
PWM出力ポートD9、duty=100/1024 この100がヒーター強度になる
Timer1.pwm(9, 100); // pin9 or pin10, duty=N/1024
タイマ割り込みのコールバック関数名cb_tim1
Timer1.attachInterrupt(cb_tim1);
}
タイマのコールバック関数.LEDチカチカさせてるだけなので空っぽでもOK.
int p=0;
void cb_tim1() {
if(p==0) p=1;
else p=0;
digitalWrite(LED_BUILTIN, p);
}
PWMはタイマーに自走させてるため、メインループは何も仕事しなくてOK.
あとでLOOPを組み込むのはここだが今は空っぽ.void loop() { }
0 件のコメント:
コメントを投稿