# 回路図(https://circuit.sapp.jp)の指示文(全部入り) 以下の内容をそのまま生成 AI に渡してから、作りたい回路を伝えてください。 --- これから回路を、回路図作図ツール「回路図」(https://circuit.sapp.jp)のテキスト記法で書いてもらいます。以下の規則だけを使ってください。規則にない書き方はエラーになります。説明は不要で、テキスト記法だけを 1 つのコードブロックで出力してください。 ## 文の種類 1 行に 1 つの文を書きます。`#` から行末まではコメントです。文は次の 4 種類だけです。 1. 部品を置く: `名前 = 種類 値` - 名前は英字で始まる英数字と `_`(例 `R1`、`D1`、`U1`)。同じ名前は二度使えません。`GND` は名前に使えません。 - 値は省略できます。書いたとおりに図に出るだけで、計算には使いません(例 `220Ω`、`4.7k`、`10µF`、`赤`、`2SC1815`)。値に `#`・`"`・`--` は使えません。 2. つなぐ: `A -- B -- C` - `--` の前後には必ず空白を入れます。並べたものはすべて同じ接続になります。 - `部品名.ピン名` は部品のピンです(例 `U1.D13`、`D1.K`、`C1.+`)。 - 置いていない名前は接続の名前です。`GND` と、`5V`・`3.3V`・`12V`・`-12V` のような「数字 + V」は電源の記号として描かれます(`+5V` は `5V` と同じ電源)。それ以外の名前(例 `out`、`n1`、`TRIG`)は線で結ばれ、名前は図に出ません。接続の名前に使える文字は英数字と `_` `+` `-` です(`.` は部品のピンと紛れるので使えません)。 3. 部品の種類を定義する(マイコン基板、センサー、IC など): ``` part 種類名 "説明": top ピン名 ピン名 left ピン名 ピン名 | ピン名 right ピン名 bottom ピン名 ``` - 種類名に空白・`.`・`=`・`:`・`#` は使えません。`-` は使えます(例 `HC-SR04`)。組み込みの部品と同じ種類名は使えません。 - 字下げした行に、ピンを出す辺(`top` / `left` / `right` / `bottom`)とピン名を書きます。1 つの辺は 1 行にまとめます。使わない辺は書きません。 - 左右の辺は上から、上下の辺は左から書いた順に並びます。`|` を 1 つ書くごとに 1 つ空きを入れます。 - `D13/SCK` のように `/` で別名を付けられます。どちらの名前でも同じピンを指します。 - IC など物理ピン番号を図に出したいときは、`VCC@14` のように `@` の後に番号を書きます(つなぐときは `U1.VCC` と名前で書きます)。 - 電源は上(`top`)、GND は下(`bottom`)、入力は左、出力は右に置くと図が読みやすくなります。 - マイコン基板やセンサーの機種(Arduino Uno、Nano など)は組み込みにないので、必ず `part` で定義します。使うピンだけを定義しても構いません。 4. 配置のヒント(省略可): `place A below B` - 部品 A(を含む連鎖の行、または箱)を B の下に置きます。`below` のほかに `above`(上)・`left`(左)・`right`(右)。 - 書かなければすべて自動で置かれます。図が見にくいときだけ使ってください。同じ連鎖の中の部品どうしは離せません。 ## 連鎖 ピンが 2 本の部品(`NOT` ゲートを除く)は、ピンを書かずに連鎖の途中に部品名だけを置けます。 ``` U1.D13 -- R1 -- D1 -- GND ``` - 連鎖の入る側(左)が、下の表のピンの 1 番目になります。極性のある部品では 1 番目がアノード・+ です。つまり上の例では、D1 のアノードが R1 側、カソードが GND 側です。 - 部品名だけを書けるのは連鎖の途中だけです。連鎖の端(最初と最後)には書けません。端ではピンで書きます(例 `E1.+ -- S1 -- L1 -- E1.-`)。 - 1 つの部品を部品名だけで書けるのは 1 回だけです。2 回目からはピンで書きます。 - ピンが 2 本でない部品(トランジスタ、ボリューム、MOS FET、オペアンプ、論理ゲート、`part` で定義した部品のうちピンが 2 本でないもの)と `NOT` ゲートは、必ず `部品名.ピン名` で書きます。 - `part` で定義した部品でもピンが 2 本だけなら、抵抗などと同じく連鎖の途中に置け、先に書いたピンが連鎖の入る側になります。 ## 組み込みの部品 | 種類 | 部品 | ピン(1 番目が連鎖の入る側) | |---|---|---| | `R` | 抵抗 | `1` `2` | | `VR` | 可変抵抗 | `1` `2` | | `POT` | ボリューム(しゅう動接点付き抵抗器) | `1` `2` `3`(`2` がしゅう動接点、つまり真ん中の足) | | `C` | コンデンサ | `1` `2` | | `CE` | 電解コンデンサ | `+` `-` | | `L` | コイル | `1` `2` | | `D` | ダイオード | `A` `K` | | `ZD` | ツェナーダイオード | `A` `K` | | `LED` | 発光ダイオード | `A` `K` | | `BAT` | 電池(直流電源) | `+` `-` | | `AC` | 交流電源 | `1` `2` | | `SW` | スイッチ | `1` `2` | | `PB` | 押しボタンスイッチ(タクトスイッチ) | `1` `2` | | `LAMP` | 電球 | `1` `2` | | `AM` | 電流計 | `+` `-` | | `VM` | 電圧計 | `+` `-` | | `M` | モーター | `1` `2` | | `NPN` | NPN トランジスタ | `B` `C` `E` | | `PNP` | PNP トランジスタ | `B` `C` `E` | | `NMOS` | N チャネル MOS FET(エンハンスメント形) | `G` `D` `S` | | `PMOS` | P チャネル MOS FET(エンハンスメント形) | `G` `D` `S` | | `NMOSD` | N チャネル MOS FET(デプレッション形) | `G` `D` `S` | | `PMOSD` | P チャネル MOS FET(デプレッション形) | `G` `D` `S` | | `OPAMP` | オペアンプ | `+` `-` `OUT` `V+` `V-`(`V+`・`V-` は省略可) | | `NOT` | NOT ゲート | `A` `Y` | | `AND` | AND ゲート | `A` `B` `Y` | | `OR` | OR ゲート | `A` `B` `Y` | | `NAND` | NAND ゲート | `A` `B` `Y` | | `NOR` | NOR ゲート | `A` `B` `Y` | | `XOR` | XOR ゲート | `A` `B` `Y` | ## 守ってほしいこと - LED には必ず電流を制限する抵抗を直列に入れます。 - 極性のある部品(`D`・`ZD`・`LED`・`CE`・`BAT`・`AM`・`VM`)の向きを確かめます。逆向きに使うときは、連鎖に入れずにピンで書きます(例 `D2.K -- 5V`)。 - 電流計は回路に直列、電圧計は測る部品に並列に入れ、`+` を電位の高い側にします。 - 分岐する点は、接続の名前を付けて表します(例 `a -- R1 -- b` と `a -- R2 -- b` で R1 と R2 が並列)。 - 接続の名前は 2 回以上書くときだけ使ってください(1 回しか書かれていない名前は書き間違いとして警告されます)。 - オペアンプの電源のピン `V+`・`V-` は省略できます。電源の電圧を図に示したいときは `U1.V+ -- 12V`、`U1.V- -- -12V` のようにつなぎます。単電源なら `U1.V- -- GND` とします。 ## 例 1: Arduino と LED と超音波センサーとマイク ``` part ArduinoUno "Arduino Uno": top VIN 5V 3.3V IOREF left RESET AREF | A0 A1 A2 A3 A4/SDA A5/SCL right D0 D1 D2 D3 D4 D5 D6 D7 | D8 D9 D10/SS D11/MOSI D12/MISO D13/SCK bottom GND part HC-SR04 "超音波距離センサー": top VCC left TRIG ECHO bottom GND part GY-MAX4466 "マイクアンプ(MAX4466)": top VCC right OUT bottom GND U1 = ArduinoUno R1 = R 220Ω D1 = LED 赤 U2 = HC-SR04 U3 = GY-MAX4466 U1.D13 -- R1 -- D1 -- GND U1.D7 -- U2.TRIG U1.D8 -- U2.ECHO U1.5V -- 5V U2.VCC -- 5V U1.GND -- GND U2.GND -- GND U1.A0 -- U3.OUT # マイクの出力をアナログ入力へ U3.VCC -- 5V U3.GND -- GND ``` ## 例 2: 電池・スイッチ・電球・電流計と、電球に並列な電圧計 ``` E1 = BAT 1.5V S1 = SW L1 = LAMP A1 = AM V1 = VM E1.+ -- S1 -- L1 -- A1 -- E1.- V1.+ -- L1.1 V1.- -- L1.2 ``` ## 例 3: トランジスタで LED を点ける ``` part ArduinoNano "Arduino Nano": top 5V right D3 bottom GND U1 = ArduinoNano Q1 = NPN 2SC1815 R1 = R 1k R2 = R 330Ω D1 = LED U1.D3 -- R1 -- Q1.B 5V -- R2 -- D1 -- Q1.C Q1.E -- GND U1.5V -- 5V U1.GND -- GND ``` ## 例 4: オペアンプの反転増幅回路(交流の入力を 10 倍にする) ``` U1 = OPAMP LM358 E1 = AC 入力 R1 = R 10k R2 = R 100k E1.1 -- R1 -- U1.- E1.2 -- GND U1.- -- R2 -- U1.OUT U1.+ -- GND U1.V+ -- 12V U1.V- -- -12V ```