スイッチを使ってLEDを点灯させよう!(RaspberryPi,C言語)

スイッチを使ってLEDを点灯させよう!(RaspberryPi,C言語) RaspberryPi
スポンサーリンク

こんにちは。駆け出しエンジニアのまっきーです。

本記事は「Lチカだけじゃつまらない、ほかに簡単にできることないの?」と思っている方におすすめです!

さて、Lチカを終え、次に挑戦するのはスイッチとの連動です。

やることはとっても単純、「スイッチを押したらLEDが光るようにする」

これだけです。

早速始めていきましょう!

目的

タクトスイッチを押しLED4つが点灯をするプログラム作成

前回のプログラムに付け加える形でコードを書いていきます。

前回の記事はこちら↓

準備するもの

RaspberryPi3B+

LED 4つ(1つでも問題ないです)

タクトスイッチ 1つ

抵抗(400Ω) 4つ

ジャンパー線(オス・メス)5本ほど

ジャンパー線(オス・オス)2本ほど

上記のものは全てAmazonで手に入ります。

ちなみに私は、こちらのセットで揃えました。

Amazon.co.jp: OSOYOO(オソヨー) Raspberry Pi 学ぶ電子工作キット 初心者演習用パーツセット ラズパイ11実例 回路配線図とサンプルスケッチ有り プログラミング ラズベリー パイ 超入門 スターター学習キット LED制御 スイッチ I2C LCD 温湿度センサー マイクロサーボ 人体感知センサー A/Dコンバータ ブザー 大気圧センサー リレーモジュール制御 赤外線リモコン等IoTを実践する電子部品セット (Pi 3 DIY Kit 22in1): Kindleストア
Amazon.co.jp: OSOYOO(オソヨー) Raspberry Pi 学ぶ電子工作キット 初心者演習用パーツセット ラズパイ11実例 回路配線図とサンプルスケッチ有り プログラミング ラズベリー パイ 超入門 スターター学習キット LED制御 スイッチ I2C LCD 温湿度センサー マイクロサーボ 人体感知...

タクトスイッチとは

タクタルスイッチとも呼ばれる「感触のあるスイッチ」です。

押したときのクリック感は最高です。

また、押してる間だけON、話したらOFFになる「モーメンタリ」と言われる動作をします。

プルアップ、プルダウン抵抗とは

プルアップ抵抗(プルアップていこう、: pull-up resistor)は、電子回路においてなんらかの信号線への入力が切り離されたような状態[1]になっても、その信号線を内部でVddなどの電位が高い電圧源にその抵抗を通して接続しておくことにより、電位が不安定な状態にさせず[2]、じゅうぶんに高い電位に保っておくための抵抗である[3]。また同様にして、電位が低いグラウンド(アース)[4]などに接続して、じゅうぶんに低い電位に保っておくための抵抗が プルダウン抵抗である。(Wikipedia)

マイコンなどの機器は1,0もしくはON,OFFで信号の判断をしています。

簡単に説明をしますと、

プルアップ、ダウンの設定をしないと「ON,OFFどちらでもない状態」となってしまうためマイコンが困ってしまいます。

今回は、慣例的に使われるというプルアップ抵抗で設定を行っていきます。

つまり「スイッチが押されたときはLOW,押されていないときはHIGH」ということです。

詳しく知りたい方はこちらのサイトを見てください。とても詳しく書いてあります。

プルアップ抵抗・プルダウン抵抗とは?電子回路に必須の考え方
スイッチやセンサーなど、外部信号をマイコンに入力する時に必要となるのが『プルアップ』『プルダウン』抵抗です。この抵抗は必須でありながら効果が良く分かっていなかったり、逆に省いてしまっている方もいると思います 本記事では、スイッチ入力に使うプルアップ・プルダウン抵抗について解説します。 スイッチ入力を安定な状態に保つプル...

ラズパイにはソフトウェア側でプルアップ・プルダウンの設定ができますのでプログラムの中で紹介します。(内部プルアップ抵抗と呼ばれています)

電子回路

電子回路図です。

プログラム

前回とプログラムはほとんど同じです。

注目していただきたい部分は13,14,17行目です。

新しい関数が出てきていますね。この3つを押さえれば今回は十分です。

それでは一つずつ見ていきましょう。

関数詳細

    pinMode(ピンの番号,INPUT)

 ・LEDでもやりましたね。今回はスイッチ入力なのでINPUTに設定します。

   pullUpDnControl(ピンの番号,PUD_UP)

 ・この関数が内部プルアップ・プルダウン抵抗の設定です。

 ・2つ目の引数に設定できる値が3つあります

   1 PUD_UP      プルアップ抵抗を使用

   2 PUD_DOWN   プルダウン抵抗を使用

   3 PUD_OFF     内部抵抗を使用しない

 digitalRead(ピンの番号)

 ・スイッチが押されているか押されていないかを確認する関数です。

 ・今回は押されているときLOWになるので注意してください。

ビルド、実行をすると…

スイッチのON,OFFでLEDを制御することができました!

まとめ

・プルアップに設定→押されていないときHIGH、押されているときLOW

・プルダウンに設定→押されていないときLOW、押されているときHIGH 

 pinMode(ピンの番号,INPUT)

 pullUpDnControl(ピンの番号,PUD_UP)

 digitalRead(ピンの番号)

この3つの関数を使ってタクトスイッチの制御ができる!

最後まで見て頂き、ありがとうございました。

次回はPWM制御というものを行っていきたいと思います。

こちらは参考書籍です。

Amazon.co.jp: C言語ではじめるRaspberry Pi徹底入門 eBook: 菊池 達也, 実践教育訓練学会: Kindleストア
Amazon.co.jp: C言語ではじめるRaspberry Pi徹底入門 eBook: 菊池 達也, 実践教育訓練学会: Kindleストア
タイトルとURLをコピーしました