Raspberry Pi Pico Wースイッチとトランジスタ

この記事を読めば「Raspberry Pi Pico W」でスイッチを使ったものを作れるようになります!

電子工作をするうえで、スイッチを使います。
スイッチが使えるようになると、「Raspberry Pi Pico W」でできることがぐっと広がります。
そうなると、センサーを使ったり、より複雑な回路を用いた物を作ることができるようになります!

わからないことがありましたら、問い合わせページから連絡をください!
Youtubeもありますので、ぜひ見てみてください!

https://youtu.be/WZ_DYJnUhU8

使うもの

この記事で使っているものを紹介します。
*このリンクは、アフィリエイトリンクです。
こちらのリンクから購入されると、投稿主にインセンティブが発生します。
より良い記事のために、ぜひ購入する際は以下のリンクよりお願いします。。

実際に投稿主が購入したキットを紹介します。
こちらのキットは、マイコンと電子工作に必要な部品がセットになったものです。
こちら購入すればすぐに電子工作始められます!
また、公式HPでモジュール、プログラムの解説もされているので、非常におススメです。

購入はこちらをクリック!
*画像はリンク先より引用

個別に購入したい方は、以下のリンクよりどうぞ

購入はこちらをクリック!
*画像はリンク先より引用

購入はこちらをクリック!
*画像はリンク先より引用

購入はこちらをクリック!
*画像はリンク先より引用

購入はこちらをクリック!
*画像はリンク先より引用

購入はこちらをクリック!
*画像はリンク先より引用

スイッチを使ってみよう

仕組みを述べる前にまずは実践してみましょう!
百聞は一見に如かずです!

動かし方1

まずは、回路を作っていきましょう!
まずは、↓のイラストのように回路を組んでみてください!

そうしましたら、前回ダウンロードした「Thonny」にプログラムを打ち込みます。

from machine import Pin#ライブラリのインストール
led = Pin(15,Pin.OUT)#15番ピンを出力に設定
while True:#以下を繰り返す
    led.on()#15番ピンから電気を流す

コードを書いたら、「Raspberry Pi Pico W」に名前を付けて保存します。
後からわかるように名前を設定してください。
ここでは、「LED_SWICH.py」という名前で、保存します。

それでは、動かしていきましょう!
スイッチを押すと、、、

ちゃんと光りました!
もし光らない場合は、回路かコードを見直してみましょう。
それでもできない場合は、問い合わせフォームに送ってください!

スイッチで動く仕組み

動かすことができましたね
それでは、スイッチで動く仕組みについてみていきましょう。

スイッチを押していない間は、
縦方向では常に通電しています。
スイッチを押すと横方向に通電します。

なので、一つ目の回路で動作するのは、スイッチを押すと15番ピンからLED抵抗まで流れ
LEDが光るという回路になっています。

Raspberry Pi Pico W入出力を使ってみよう

↓のように回路を組んでみてください

ラズパイの特定のピンに入力があった場合に、LEDを光らせるプログラムです

from machine import Pin#ライブラリのインストール
import time#ライブラリのインストール
seich=Pin(16,Pin.OUT)#16番ピンを出力に設定
input_swich=Pin(17,Pin.IN,machine.Pin.PULL_DOWN)#17番ピンを入力に設定しGNDのように扱う
LED=Pin(18,Pin.OUT)#18番ピンを出力に設定
while True:#以下を繰り返す
    if input_swich.value() ==1:#もし17番ピンに電気が流れてきたら
        LED.value(1)#18番ピンに電気を流す
    else:
        LED.value(0)#18番ピンに電気を流さない
        
    time.sleep(0.1)#0.1秒停止

プログラムを実行してボタンを押すと、、、

きちんと光りました!
ボタンが押されると入力ピンまで電気が流れます。
電気が流れてきたら、IF文を用いて、LEDまで電気を流します。

ここで、一つ抵抗の話をしましょう。
電子工作で回路を作る際に途中に必ずと言っていいほど、抵抗をつかいます。
では、どうして抵抗を使うのでしょうか?

抵抗を使う理由

電子工作をする際、LEDを光らせようとするとほとんどの場合は抵抗を回路に入れます。
なせ、抵抗を回路に入れるのでしょうか?

その理由は大きく分けて2つの理由があります。

LEDの保護

LEDの許容電流を超えないようにするために抵抗が使用されます。
LEDは、それほど高い電流を使いません。
なので、高い電流が流れるとLEDが壊れてしまいます。

安定化

電源の電圧や環境の温度変化で、LEDの交流が不安定になるのを防ぎます。

今回使ったLEDは小さい電流でも光るLEDを使用しました。
必要電流の高いモーターなどを使う場合は、トランジスタを使う必要があります。

トランジスタとは?

トランジスタとは簡単に言うと、「小さい電力で大きい電力をコントロールする部品」です。

スイッチは物理的なスイッチで、トランジスタは電子的なスイッチとイメージしていただければ結構です。
詳しくは↓のイラストを見てください!

トランジスタを使ってみよう

↓のように回路を組んでみましょう

まずは、↓のコードを「Thonny」に打ち込みます。

from machine import Pin#ライブラリのインストール
import time#ライブラリのインストール
toranjist=Pin(13,Pin.OUT)#13番ピンを出力に設定
led=Pin(15,Pin.OUT)#15番ピンを出力に設定
while true:#以下を繰り返す
    led.on()#15番ピンに電気を流す
    toranjist.on()#13番ピンに電気を流す

そうしたら↓の画像のように回路を作ります。
そうしたら、スイッチを押してみましょう

光りました!
time.sleep()の()内の数字の大きさを変えると点滅の速さを変更できます。

動かない原因

コードも間違っていない、きちんと回路を組めている
でも、動かないそうなる場合の大きな理由を説明します
大きく分けて二つあります。
チャタリングと電源不足です

まずは、チャタリングを見ていきましょう。

チャタリング

今回のプログラムではチャタリングが原因で光らないということはないと思います。

では、どういったときにチャタリングが起こるのでしょうか?
例えば、
スイッチを1回押したら○○をする。
スイッチを2回押したら○○をする。というようなプログラムがあったとしましょう。
その場合、私たちが1回しか押していないつもりでも、
機械側では、3,4回押されたと認識する場合があります。

原因は、機械の認識速度と私たちがスイッチを押す時間に差があるからです。

機械は常に信号を受け付けています。
私たちが1回押して離してをしている間に、機械は2,3回押されたと認識してしまう場合があります。
そうならないようにプログラムを付け加える必要があります。

チャタリングは、また別の記事でまとめるので、少々お待ちください。

電圧不足

今回使うのは、LEDなので特に問題はないと思います。
しかし、皆さんがモーター等を動かそうとした場合は、少し変わってきます。
モーターの種類によっても変わってきますが、必要な電圧電流をチェックしましょう。

終わりに

最後までご覧いただきありがとうございました。
もし、わからないこと等ありましたら、問い合わせページよりご連絡ください!

Raspberry Pi Pico Wカテゴリの最新記事