月別アーカイブ: 2025年9月

Aliexpressで買った3wレーザーダイオードモジュール

おそらく同じもの複数売られているけどこいつ

Vfは3.05ぐらいだったのでおおよそ表示通り。30mA(15mAの定電流ダイオード2並列)でしっかりと光る。それより若干電流が小さくてもレーザーとして光ったはず。(試して時間がたったので記憶が曖昧)

電線は蚊トンボの足のようにもげやすい。(付け直しのはんだはやりやすかった)

電池2本駆動だとレーザーダイオードで3Vつかい、昇圧しないと定電流回路を動かす分の電圧が足りない。

というわけでAliで売っているいつもの昇圧コンバーターで昇圧。どうせ、昇圧するなら作るの簡単な定電流ダイオード2並列で雑に作ろうということで定電流ダイオード(秋月のこいつ)の動作に必要な4.3vをたして3V(レーザー)+4.3V(定電流ダイオード)の7.3V以上に昇圧。(ちょっと余裕持たせて8.5Vぐらい)

単三電池*2->昇圧コンバーター->定電流ダイオード(15mAの2並列)->スイッチ->ダイオードのシンプル構成

余っていた使わない基盤に張り付けて完成。1月ほど使っているけど今のところ安定動作。

電流はおおよそしか制御できていないはずだけど安い部品なのでざっくり。

試していないけど、Aliに使えそうな定電流ICがあった。電池2本だと厳しいだろうけどリチウム電池やスマホから5Vとれるならシンプルに使えそうなきがする

(2025/10/1追記)

壊れたレーザーポインターの基板に取り付けて使っていた動いた。よく見るとその基盤は、22Ω抵抗とスイッチのみ(単三2本で動作)。レーザーの劣化が若干早い気はしたけど、いつもスイッチが下手るのが先。そんな単純な構成でもおおよそ動く模様。部品高いものでもないし壊れたら交換するぐらいに割り切って使ってもよいかもしれない。

トリマー(Makita3707)用1/4インチシャンクコレットコーン

先日Aliexpressでならい加工用のトリマービット(こいつ)を買ったが、よくみたらシャンク径が1/4インチで元々6mm軸なのでそのままだと入らなかった。

Aliexpressに1/4インチ用のコレットコーン(接続部品:こいつ)が売っていたので購入。

本日、届き動作確認したところ使えた。

ただし、ナットが1回転程ほど6mmのやつより回っていない気がする。

6mmのコレットも1/4インチのコレットもともに高さ、外径をはかると同じと思われる。ただし、円周の計測このノギスだと微妙に測りにくいので0.35mmとか違うのかもしれない。

動かす分にはガタ等も感じないのでこのまま使うが、コレットコーンと一緒に純正(高さ12mm)より1mm高い13mmのナットも売っているようなのでそっちに変えるとよりしっくりするかもしれない。

LTspiceのコンデンサ初期電圧設定

久しぶりにLTspiceを使ったらコンデンサの初期電圧設定方法がわからなかったのでメモ。

バージョンは24.1.10

上部のアイコン欄にあるSPICE DIRECTIVE(“.t”アイコン)をクリック

出てくるテキスト入力欄に、コンデンサの電圧初期状態を指定してあげる。例

.ic V(n002)=0

chatgptに書かせた開設がわかりやすいのでそのままぺたっと

.ic コマンドとは

.ic は Initial Condition(初期条件) の略です。

回路シミュレーションで コンデンサやインダクタなどの状態を初期値から始めたいときに指定します。

形式:

.ic V(node)=値


V(node):指定するノードの電圧

値:初期値(V単位)

2. 具体例:.ic V(n002)=0
.ic V(n002)=0


ノード n002 の電圧を シミュレーション開始時に 0V に固定

これは、コンデンサや回路の「立ち上がり電圧」を指定するときに使います

例:

回路にコンデンサ C1 があって、ノード n002 がコンデンサの一端に接続されているとします

.ic V(n002)=0 を指定すると、LTspiceはシミュレーション開始時に C1の電圧を0Vとして計算を始める

これにより、シミュレーションで不要な初期トランジェントを避けたり、特定の初期状態を作ったりできます

3. 注意点

.ic は DC解析やトランジェント解析で使う

トランジェント解析の場合、コンデンサやインダクタの初期値として作用

代わりに、コンデンサの属性で IC=0 を設定することもできます

💡 まとめ

V(n002)=0 → ノード n002 の電圧を初期値0Vとしてシミュレーション

コンデンサやインダクタが絡む回路で、シミュレーションの開始状態を制御するために使う

解説にはコンデンサの属性で指定できると書いてあるけど、GUI上の入力欄はなくなっているっぽい

こわれた3Dプリンターからはぎ取ったステッピングモーターの動作確認

少し前に、最初に買った3DPが壊れた。(というかいじっていて壊した。)こわれたものはiUSEとかかいてある格安のやつ。(写真内から同じもののブログ記事

ステッピングモーターを一つ外したところXY42STH40-1684Aというものがついていた。(XYSLDJがブランド名?)

6pinのコネクターがついている。6ピンあるけど2番ピンと5番ピンは使用していない。

1,3番ピンと4,6番ピンがセットで使用する物。

コネクターの種類はモーター側は6ピンのJST-XHコネクター、プリンター側は4ピンのJST-XHコネクターだった。ケーブルの色は黒1番ピン、緑3番ピン、赤4番ピン、青6番ピンだった。

元々の3DPはモータードライバーがA4988だったのでアリでこちらのモジュールを購入

ステッピングモータの(コイルが内部でつながっている)1&3番ピンをモジュールのA1/B1のペア、4&6番ピンをA2/B2のペアに接続。

モーターの動作用に12Vの外部電源を接続。

モジュールの大まかな使い方イメージはこちら参考

以下のソースで動作確認。12Vの外部電源でパルスが5000マイクロセカンド未満だと、早すぎてうまく回ってくれなかった。

const int DIR  = 8;
const int STEP = 9;
const int SLEEP_PIN = 7;
const int ENABLE_PIN = 6;
const int pals = 5000;

void setup() {
  Serial.begin(115200);
  pinMode(DIR, OUTPUT);
  pinMode(STEP, OUTPUT);
  digitalWrite(DIR, LOW);
  digitalWrite(STEP, LOW);
}

void loop() {
  
  digitalWrite(DIR, HIGH);
  Serial.println("HIGH");
  for (int i=0; i<200; i++) {
    digitalWrite(STEP, HIGH);
    delayMicroseconds(pals);
    digitalWrite(STEP, LOW);
    delayMicroseconds(pals);
  }

  delay(1000);

  digitalWrite(DIR, LOW);
  Serial.println("LOW");
  for (int i=0; i<200; i++) {
    digitalWrite(STEP, HIGH);
    delayMicroseconds(pals);
    digitalWrite(STEP, LOW);
    delayMicroseconds(pals);
  }

  delay(1000);

}