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

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

新規登録して質問してみよう
ただいま回答率
85.50%
Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

Q&A

0回答

441閲覧

スイッチでコマンドが2回実行される

hashimon

総合スコア18

Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

0グッド

2クリップ

投稿2017/10/19 09:32

Raspberry piでスイッチでコマンドが実効されるように実装しました。
しかしブレッドボード上のスイッチを押すと時々コマンドが2回実行される時があります。本来は一度スイッチを押すことで1度だけ実行されるようにしたいのですが,何かソースコード上に問題はありますでしょうか?

import RPi.GPIO as GPIO from time import sleep import subprocess def defSwitchLCD(channel): call = "aplay /python3/start.wav" cmd = "sudo sh /shell_scripts/voice-recorder.sh" #実行するコマンド if channel == 21: subprocess.call(call,shell=True) subprocess.call(cmd, shell=True) #コマンドを実効 GPIO.setmode(GPIO.BCM) GPIO.setup(21, GPIO.IN, pull_up_down=GPIO.PUD_UP) #GPIO.RISING(ボタンを押してあげるイベント)を検知するとdefSwitchLCDを呼び出し,500msのあいだ他の命令 を受け付けない GPIO.add_event_detect(21, GPIO.RISING, callback=defSwitchLCD, bouncetime=500) try: while True: sleep(0.01) except KeyboardInterrupt: pass GPIO.cleanup()

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

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

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

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

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

退会済みユーザー

退会済みユーザー

2017/10/19 10:24

どのようなスイッチか参考に教えていただけますか?
退会済みユーザー

退会済みユーザー

2017/10/19 11:56

ありがとうございます、参考になります。
keicha_hrs

2017/10/19 14:22

bouncetimeの値を試験的に思い切り増やしてみても再現するのでしょうか?
hashimon

2017/10/20 05:52

>>keicha_hsrさん ご意見ありがとうございます。bouncetimeの値を試験的に10000msにしたときに正常に一回だけ処理が実行されるようになりました。参考サイトでは200msで実装していたので少々疑問点は残りますが,望んでいた処理が実装できたので良かったです。ありがとうございました。
keicha_hrs

2017/10/22 05:08

10000ms!?1桁間違えていませんか?10秒というのはさすがに巨大すぎるような・・・。
hashimon

2017/10/22 10:14

それが10000msにしました。それでしばらくしてからまた何回か試してみたのですが、やはり10000msにしても数回に一回は2回処理が実行されてしまうことがありました。もしプログラムに問題が無いのであれば、ブレッドボード上に構成した回路の接触不良という可能性もあるかと思いますが、プログラムの方に何か問題はありますでしょうか?
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

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

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

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問