質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Raspberry Pi

Raspberry Piは、ラズベリーパイ財団が開発した、名刺サイズのLinuxコンピュータです。 学校で基本的なコンピュータ科学の教育を促進することを意図しています。

Q&A

2回答

2652閲覧

RaspberryPi2|GPIO2のdirection設定とvalue値について

退会済みユーザー

退会済みユーザー

総合スコア0

Raspberry Pi

Raspberry Piは、ラズベリーパイ財団が開発した、名刺サイズのLinuxコンピュータです。 学校で基本的なコンピュータ科学の教育を促進することを意図しています。

0グッド

0クリップ

投稿2015/09/26 14:26

◼︎
「ラズベリーパイで手作り目覚まし時計!ストップボタン編」
http://deviceplus.jp/hobby/raspberrypi_entry_019/

ーー
こちらのページを見てタクトスイッチのON/OFF状態をechoしたのですが、スイッチがON/OFFのどちらの状態でもGPIO2のvalue値が常に1になってしまいます。
上記ページに書かれてある通りにタクトスイッチの向きやプルダウン抵抗等を見直したりしたのですが・・

で、理論的には、おかしい話しなのですが、GPIO2のdirectionをinではなくてoutに設定して試したところ、スイッチONの時にはvalue値が1。OFFの時には0と期待通りになりました。

これは上記ページの説明がおかしいのでしょうか・・


また、もう少し調べたところGPIO2はSDAという種類のピンの様でI²Cという用途に使用されるという記事を見つけました。
http://raspberrypi.stackexchange.com/questions/4919/unable-to-read-from-sda-scl-as-gpio

記事にも書かれてあるようにボタン(スイッチ)の入力を取得するには向いていない。どうしてもGPIO2(SDA)を入力として使用する場合はソフトの方で、なんとか調整する必要があるみたいなことが書かれてありました。

◼︎
上記記事を見てSDAではないピンGPIO25をinputとして使用したところ、期待通りの結果が得られました!
やはりSDAなピンを使用する時は、何か気をつける点や勉強しておくことがあるのでしょうか。。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

SDA/SCLは、I2Cという外部モジュールとの通信で利用する為の信号線として、定義されています。
ラズパイなどでは、デフォルトでは、I2C用に設定されているようです。

他にも、USART(UART)、SPI、I2C、1 Wire・・・など、さまざまな通信用の信号線がありますので、
今後は、ピンアサインされる前に、1度資料を読まれることをお勧めします。

ざっくりと、気をつけるピンかと。

SDAx
SCLx

UARTx_TXD
UARTx_RXD

SPI_x_MOSI
SPI_x_MISO
SPI_x_SCLK
SPI_x_CEx
SPI_x_CEx

GPCLKx

PCMx_DOUT
PMW_CLK

などなど、
GPIOxx/yyyy

と記載されているピンは、yyyyの別の用途での利用が可能なピンです。
ますは、避けて置くのがよいかと思います。

他にも、

・ハード割り込み可能なピンかどうか
・入出力が両方可能かどうか
・供給電流が多く取れるピンなのかどうか

などなど、実際にはピンの選択ではいろいろ気をつけることがありますが、得てして、ブログなどで記載されている工作例などでは、制作者がある程度の方だと、自然にそれなりのピンを選択していたりして、初心者の方には、なかなか、なぜそのピンなのか?わかりにくかったりします。

何にしても、まずは、ピンがどのように使用できるかは、何かしらできちんと確認しましょう。
最終的にはデータシートがきちんと読めるようになるといいですね。

投稿2015/11/03 05:26

ItoTomonori

総合スコア1283

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

長文失礼。
検索ワード
Raspberry pi 2 ピンアサイン
などで、
基本的なI/O信号線の初期設定状態を把握してください。
ハードウェアよりな事を行う場合は、
回路図の入手、ピンアサインの理解、は当然とされます。
ハードウェアの理解、I/O初期化&初期設定の把握、
最低限のソフトウェア、必要なドライバに対する理解は
マイコン系、組込系を使う為の、最低限の前提条件です。
⇒Raspberry Pi / Pi2 でも全てでは有りませんが、要求される部分です。

Raspberry Pi 用と、Pi2用では、ピンが異なったりしますので、
古い記事を参照する場合は注意します。
その上で、
用途が特定されているI/O ピンは(掲示のSDA/SCLなど)
避けて使用します。
やむを得ず使用する場合は、GPIOの場合は、設定を変更しますが、
この場合に、実際上のピンに接続されている物(ICだったり、LEDだったり、抵抗だったり)
と、目的とする用途によっては、使用できない事は理解しておく必要があります。
GPIOの使用においては、1ピン毎に流せる、電流と、GPIO全体での電流の制約に注意します。
ソース/シンクでの制約もあります。
例えば、ソレノイドや、モーターを駆動したい場合は、GPIO直で駆動可能な場合、出来ない場合が
なぜ起きるか?
GPIO直でL成分(コイルなど)を駆動した場合に、保護回路が必要とされるが、
なぜかとか
では、それぞれに付いて、どうすれば良いかなど。
は、知っている人に取っては当然、知らない人は想定しない部分。

今では、コンピュータのハードよりの事柄は、専門学校でも学部廃止の様子ですし、
出来る方々向けのサイトでは当然として、そうでないサイトでも、
マイコン系を扱う上での常識としていて、解説していなかったりします。

電子工作推進マガジン エレキジャック
などは初心者むけ記事もありますし、他サイトを検索する場合の、検索ワード用のネタにはなります。

投稿2015/11/03 03:08

daive

総合スコア2028

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問