2022年10月15日土曜日

3Dプリンタ フィラメント接合器開発(3)ヒーター動かした

フィラメント接合器をつくろう!

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() { }

2へ   4へ

かしこ

0 件のコメント:

コメントを投稿