見出し画像

半導体を使って回路をつくろう!(終)

準備①:Lチカ実践!

オリィさんからもらった資料「Lチカのやり方」をみながら、とりあえず回路を作る
抵抗はいくつのものを使えばいいのかわからなかったけど、前に使ったらしき抵抗が220オウムだったのでそれを使います
一応、220オウムなのかテスターを使って測った

GNDは黒のワイヤーを使うこと!

プログラム

IDE(コードを書くところ)を開いて、
ファイル→スケッチ例→basics→Blink
を開くと、もうすでにLチカのプログラムが書いてある!
オリィさんからもらった資料を見ながらピン番号を入れて、書き込み!

#define LED_PIN 25
// the setup function runs once when you press reset or power the board
void setup() // initialize digital pin LED_BUILTIN as an output.  
pinMode(LED_PIN, OUTPUT);
}

// the loop function runs over and over again forever
void loop() {  
digitalWrite(LED_PIN, HIGH);   // turn the LED on (HIGH is the voltage level)  
delay(1000);                       // wait for a second  
digitalWrite(LED_PIN, LOW);    // turn the LED off by making the voltage 
LOW  
delay(1000);                       // wait for a second
}

*書き込みが終わったらリセットすること!

Lチカできた!!!

スイッチ付きのハブに付け替えて、ボルトの値を測るゾ

テスターを使って抵抗のボルトを測ってみた

あれ?1.1Vだ…
5Vじゃないのか?(抵抗使ってるから?)

準備②:オシロスコープを使おう!

*作業するときは電源を落とす

オシロスコープのプローブを抵抗につけて、オシロスコープで観察!

プローブ

Lチカの波形を調査する!

1、0、1、0になってる!
スケールを大きくして「M: 1.0s」にすると、1秒ごとにLチカしてるのが波形としてわかるようになった!

ついてる時間は0.5sで待機時間は1sにしてみた!

void loop() {  
digitalWrite(LED_PIN, HIGH);   // turn the LED on (HIGH is the voltage level)  
delay(500);                       // wait for a second  
digitalWrite(LED_PIN, LOW);    // turn the LED off by making the voltage 
LOW  
delay(1000)

オシロスコープでみると波形が変わった!

ついてる時間と待機時間を10msにしてみた!

void loop() {  
digitalWrite(LED_PIN, HIGH); 
delay(10);                   
digitalWrite(LED_PIN, LOW); 
LOW  
delay(10)

オシロスコープでみると…スケールが1sだと波形がわからない汗

だからスケールを10msにしてみたら、波形がわかるようになった!

インバーターをテスト!

ブレッドボードの配線がつながっているか、テスターを使って確認する!
*オシロスコープの電源は落とす
オウム(GND-GND)もボルト(V-V)も導通していることが確認できた!

オウム(GND-GND)の導通確認

次にGND-V同士もつながっていることを確認!

先生が指定してくれた数字通りに、今回作ったチップの番号に差し込む!
*GNDから差し込むこと!

今回のミッション:インバーターを成功させる!

やっと本題です😌
今回のミッションはインバーターを成功させること!

そのためにやってきたことを振り返ります~

回路図(インバーター)

KLayoutとKiCadを使用し、インバーター作成しました

KLayoutのバージョン:0.28.10
KiCadのバージョン:7.0.6-0
OS:macOS Sonoma 14.3.1

PMOSとNMOSを1個ずつ使ったインバーター(NOTゲート)
・入力:A (PIN番号:62)
・出力:X (PIN番号:64)
・電源:VDD (PIN番号:63)
    GND/VSS (PIN番号:2)
    ESD用VDD (PIN番号:1)
・電源電圧:5V

レイアウト図

ちなみに…今回チップに入れたロゴ

あさがおプロジェクトのあさがおさんをチップに載せてもらいました!
やったー!ありがとうございます!

二値化ver.

チップの写真
https://github.com/MakeLSI/ChipPhoto/blob/master/23PTS.jpg

左上にあさがおさん

評価回路構成

ここからが今回やったことです!

lESP32からGNDと5Vを供給した
 ・オシロスコープ(Owon SDS1104) を回路に繋げた
  ・CH1(黄) に回路のピン番号62(入力A) を接続
  ・CH2(青) に回路のピン番号64(出力X) を接続
lESP32に電源を入れ、入力用のプログラムを走らせた

*アドバイス
評価回路構成は、wokwiで途中まで描いてスクショを使って描くのもいいかも!

入力用のプログラム

arduino 1.8.19

/*
  Blink

  Turns an LED on for one second, then off for one second, repeatedly.

  Most Arduinos have an on-board LED you can control. On the UNO, MEGA and ZERO
  it is attached to digital pin 13, on MKR1000 on pin 6. LED_BUILTIN is set to
  the correct LED pin independent of which board is used.
  If you want to know what pin the on-board LED is connected to on your Arduino
  model, check the Technical Specs of your board at:
  https://www.arduino.cc/en/Main/Products

  modified 8 May 2014
  by Scott Fitzgerald
  modified 2 Sep 2016
  by Arturo Guadalupi
  modified 8 Sep 2016
  by Colby Newman

  This example code is in the public domain.

  https://www.arduino.cc/en/Tutorial/BuiltInExamples/Blink
*/
#define LED_PIN 25
// the setup function runs once when you press reset or power the board
void setup() {
  // initialize digital pin LED_BUILTIN as an output.
  pinMode(LED_PIN, OUTPUT);
}

// the loop function runs over and over again forever
void loop() {
  digitalWrite(LED_PIN, HIGH);   // turn the LED on (HIGH is the voltage level)
  delay(10);                       // wait for a second
  digitalWrite(LED_PIN, LOW);    // turn the LED off by making the voltage LOW
  delay(10);                       // wait for a second
}

測定結果:インバーター成功!

入力波形(黄)が出力波形(青)で反転された状態であるのを確認した
インバーターとして正しく動作した!

感想

専門でもなんでもないのに、制作に参加することができて嬉しかったですし、楽しかったです!
はじめて知ることもたくさんあり、ワクワクしました!
あさがおマークも入れてもらって満足です!
先生をはじめとする皆さん、本当にありがとうございました!



いいなと思ったら応援しよう!