2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

GPIOのALT機能(alternate function)を使う

Last updated at Posted at 2022-06-25

大学の課外活動で開発していて、こんな問題に遭遇しました。

「ラズパイ使うのはいいけどさ、PWMピンが足らなくない…?」

どうしたものかと思って色々探していたらALT(alternate function)というものを使えばいいらしいということを知りました。
これを使うとピンの機能を変更できるらしい。

ただこのALT、いまいちやり方が分からない。

ということで、調べた結果を記事にいたしました。qiitaに記事を書くのは初めてな上、そこまで詳しいわけでも無いのでミス等は多めに見ていただけると助かります…。

使用したのはraspberrypi4 modelBでOSはraspbianです。

ALT機能の使い方

今回は例として12番ピンをALT5に変更します。

ターミナル開いて

$ gpio -g mode 18 ALT5

これで終わり。
ここで、modeの次に打ち込む値(今回は18)はBCMの番号で、ハードのピン番号ではないことに注意してください。

ALT3なら、

$ gpio -g mode 18 ALT3

にすればokです。

BCMの確認は

$ gpio readall

で見ることができます。
Oops 18だかなんだかと出てきたらwiring.piを更新してあげれば解決します。更新の方法は熟練者たちが丁寧に解説してくださっているので、ここでは割愛します。

調べるのに一日近くかかってこれだけ…?
解決したから良いですが…。

変更できたか不安だったら、先ほどと同様に

$ gpio readall

を打ち込んで、確認しましょう。

起動時に自動実行させる

ただ、このままでは起動時に毎回コマンドを打ち込む必要があります。
面倒ですね。
そこでrc.localを用いて起動時に自動で打ち込むように指示します。

$ sudo nano /etc/rc.local

を入力し、

#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.

# Print the IP address
_IP=$(hostname -I) || true
if [ "$_IP" ]; then
  printf "My IP address is %s\n" "$_IP"
fi

exit 0

のexit 0の前の行に利用したいALTのコマンドを入力してください。
打ち込んだら、ctrl+Oで保存。

再起動し、gpio readallで適応されているか確認してください。

お疲れ様でした。

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?