// ============================================================
// ピン割り当て（Arduino Mega2560）
// ============================================================

// ---- 入力（Digital）----
const uint8_t SQL_DIGITAL_PIN = 22;   // 外部SQL
const uint8_t VOX_DIGITAL_PIN = 23;   // VOX（LM393出力）

// ---- 出力（Digital）----
const uint8_t PTT_PIN  = 24;          // PTT制御
const uint8_t TONE_PIN = 25;          // CW / BEEP 出力

// ---- LED ----
const uint8_t LED_TX   = 26;          // TX LED
const uint8_t LED_RX   = 27;          // RX LED

シンボル横にこう書くと完璧です

SQL   : D22
VOX   : D23
PTT   : D24
TONE  : D25
LED_TX: D26
LED_RX: D27

CPUピンまで書くなら（ATmega2560）
D22 = PA0
D23 = PA1
D24 = PA2
D25 = PA3
D26 = PA4
D27 = PA5

// Nano向け（連番）
D2  TX LED
D3  RX LED
D4  SQL
D5  VOX
D6  PTT
D7  TONE


// ============================================================
// CPU別 ピン割り当て
// ============================================================

#if defined(ARDUINO_AVR_MEGA2560)

// ===== Arduino Mega2560 =====
const uint8_t SQL_DIGITAL_PIN = 22;
const uint8_t VOX_DIGITAL_PIN = 23;

const uint8_t PTT_PIN  = 24;
const uint8_t TONE_PIN = 25;

const uint8_t LED_TX   = 26;
const uint8_t LED_RX   = 27;

#elif defined(ARDUINO_AVR_NANO) || defined(ARDUINO_AVR_UNO)

// ===== Arduino Nano / Uno (ATmega168P / 328P) =====
// LCDなし・最小構成想定
const uint8_t SQL_DIGITAL_PIN = 4;
const uint8_t VOX_DIGITAL_PIN = 5;

const uint8_t PTT_PIN  = 6;
const uint8_t TONE_PIN = 7;

const uint8_t LED_TX   = 2;
const uint8_t LED_RX   = 3;

#else
#error "Unsupported board"
#endif


1) 最も定番：抵抗ミキサ（2ch）＋DCカット

マイク音声（MIC）とTONEをそれぞれ抵抗を通して合流させます。

回路（基本形）
(マイク音声) ── Cmic ── Rm ─┐
                            ├───→ J6 MIC入力へ
(D25 TONE) ── Ctone ─ Rtone ┘
                      │
                    (必要ならVRでレベル調整)
J6 GND ─────────────────────→ GND

具体値（まずこれで動く）

Cmic：1 µF（無極性推奨。電解なら＋を信号側）

Rm：4.7 kΩ〜10 kΩ（まず 10 kΩ）

Ctone：0.1 µF〜1 µF（まず 0.1 µFでOK。低音まで欲しければ1 µF）

Rtone：10 kΩ〜22 kΩ（まず 22 kΩ）

（任意）VR：10 kΩ B（TONEの音量調整に入れるなら）

VRは Rtone の代わり（または直列に）

この方式のメリット：

お互いを隔離できる（引っ張らない）

部品が少ない

失敗しにくい

2) TONE側は「PWMのまま」だとノイズが出やすい → 低域フィルタ推奨

Arduinoの tone() は矩形波です。そのままマイクに入れると高調波が多くて耳障りになりやすいです。

簡易ローパス（おすすめ）

TONEのカップリング後、合流点の手前で：

Rtone（例 22k） のあとに

Cshunt（1nF〜10nF）をGNDへ

例：

Rtone=22k

Cshunt=4.7nF
→ 高域が少し丸くなって聞きやすくなります。

（入れなくても動きますが、音質が改善します）

3) 無線機のマイク入力は種類がある（ここだけ注意）

J6が「無線機のマイク端子」だと、機種によって：

マイクバイアス（数V）が出ている

PTTラインが同じコネクタにある

入力インピーダンスが低い/高い

ことがあります。

だから最低限これを守る

必ずDCカット（コンデンサ）を入れる

抵抗で合流（直結しない）

GNDは確実に共通（ただしノイズが出るなら一点アース）

実装で迷わない「おすすめ最小回路」（今回の目的に最適）

「CW/Beepを確実に小さく混ぜる」目的なら、まずこれが一番無難です：

MIC音声側：C=1µF、R=10k

TONE側：C=0.1µF、R=22k

合流してJ6へ

これで「TONEが大きすぎる」なら、Rtoneを 33k〜47k に上げるか、10k VRで調整。

ここだけ教えてくれれば、値を“確定”できます

J6の「無線機マイク入力」について：

無線機のメーカー/機種（例：IC-xx, FT-xx など）

J6は マイク端子直結？それとも DATA/AF入力？

マイク音声も同じJ6に入れる予定？（=本当にミキシングが必要か）

もし「J6がAFアンプ後の入力（データ端子等）」なら、ミキシングの最適値が少し変わります。
