前回: 自作ラズパイ戦車で
お試しでは
今回は
砲塔スペースは
砲塔は

スクリューは

筒を
筒の

問題が
大きすぎると、
また、
(ハイライトされてる


スクリューの

筒の
程度の

これで
TBD62083は、
8chなので、
表面実装も
回路の
エネループ×4 (4.8V)
|
+----+-----+
| LTC3111 | 昇降圧DC/DC 1.5A
+----+-----+
| +5V レール
+---------+---------+------------------+-------------------+
| | | | |
_|_ _|_ | | |
___ 100uF ___ 0.1uF | pin10 COMMON 赤 (COM tap)
| 電解 | セラ | | |
GND GND | +--------+-------------------+--------+
| | TBD62083APG (DIP-18) |
+------------+ | | |
| Pico | | | 28BYJ-48 |
| | | | +--------------+
| GP2 |---------------------| I1 (1) (18) O1 |--| 青 Blue 相A |
| GP3 |---------------------| I2 (2) (17) O2 |--| 桃 Pink 相B |
| GP4 |---------------------| I3 (3) (16) O3 |--| 黄 Yellow相C |
| GP5 |---------------------| I4 (4) (15) O4 |--| 橙 Orange相D |
| | | | +-------------+
| GND |---+ | GND (9) |
+------------+ | +---------+----------+
| | |
USB (5V) +---------------------------+---- 共通GND (必ず1点に集める)Picoの
とりあえずまわれば
// BBフィーダー(オーガ)駆動 28BYJ-48 ステッピングモーター ベンチ確認用スケッチ
//
// 目的: まず「回るか」だけを確認する最小版。一方向・定速。
// 駆動: TBD62083 (8ch シンクドライバ) 経由、full-step 2相励磁(トルク重視)。
//
// 配線 (Pico GPIO -> TBD62083 input -> output -> モーター相線):
// GP2 -> I1(pin1) O1(pin18) -> 青 Blue (相A)
// GP3 -> I2(pin2) O2(pin17) -> 桃 Pink (相B)
// GP4 -> I3(pin3) O3(pin16) -> 黄 Yellow (相C)
// GP5 -> I4(pin4) O4(pin15) -> 橙 Orange (相D)
// TBD62083 COMMON(pin10) -> +5V (モーター赤線 COM と同じ +5V) ← 繋ぎ忘れ厳禁
// TBD62083 GND(pin9) -> 共通GND (Pico GND / LTC3111 GND と1点結線)
// Pico GPIO -> 相A/B/C/D。物理的な巻線隣接順に並べる。
constexpr uint8_t COIL_PINS[4] = {2, 3, 4, 5}; // A, B, C, D
// full-step 2相励磁シーケンス。各行 = その step で励磁する相(常に2相ON)。
// 1回転 = このシーケンスを (2038 / 4) ≒ 510 周ぶん進める。
constexpr uint8_t SEQ_LEN = 4;
constexpr uint8_t STEP_SEQ[SEQ_LEN][4] = {
{1, 1, 0, 0}, // A + B
{0, 1, 1, 0}, // B + C
{0, 0, 1, 1}, // C + D
{1, 0, 0, 1}, // D + A
};
// 1 step あたりの待ち時間 [ms]。大きいほど低速だがトルク余裕大。
// 3ms/step -> 約333pps -> 出力軸 約10rpm(pull-in >500pps 内で安全側)。
// 回りが渋ければまず 4~5ms に上げて切り分ける。
constexpr uint32_t STEP_INTERVAL_MS = 3;
// 28BYJ-48 の実効ステップ数/出力回転(公称2048、実ギア比で約2038)。
constexpr uint32_t STEPS_PER_REV = 2038;
uint8_t seq_index = 0;
uint32_t step_count = 0;
// 指定行の励磁パターンを4相へ出力。
void apply_step(uint8_t index) {
for (uint8_t phase = 0; phase < 4; ++phase) {
digitalWrite(COIL_PINS[phase], STEP_SEQ[index][phase] ? HIGH : LOW);
}
}
void setup() {
Serial.begin(115200);
for (uint8_t phase = 0; phase < 4; ++phase) {
pinMode(COIL_PINS[phase], OUTPUT);
digitalWrite(COIL_PINS[phase], LOW); // 起動時は全相OFF(無励磁)
}
}
void loop() {
apply_step(seq_index);
seq_index = (seq_index + 1) % SEQ_LEN; // 正転。逆転は -1 側へ回す。
++step_count;
if (step_count % STEPS_PER_REV == 0) {
Serial.print("rev = ");
Serial.println(step_count / STEPS_PER_REV);
}
delay(STEP_INTERVAL_MS);
}TBD62083の
COMピン経由で、
これで
速度は
20m
