プロが教える店舗&オフィスのセキュリティ対策術

ArduinoのGPIOにled1が接続されスイッチが押下されると点滅するようになってます。
さらにled2を追加しled1とは逆のタイミングで光らせたいです。踏切の遮断機の赤のライトが左右交互に光るイメージです。しかしながら使用可能なGPIOはもうありません。
なるべく安価な方法でled1とは逆に光るled2を増設するにはどうしたら良いですか?
トランジスタなどで実現可能だと良いです。アナログ回路的な知識があまりないので質問致しました。
宜しくお願いいたします。

質問者からの補足コメント

  • 質問が曖昧とのご指摘を受けたので補足いたします。
    最終的にやりたい事はモーメンタリスイッチを押下してる間だけ、2つのledを交互に点滅させたいです。最初からどちらか一方のledが光ってるのもダメです。2つのledはスイッチを離した時は両方共に消灯して欲しいです。また必ずしもスイッチを離した瞬間に2つのLEDが消灯して欲しいわけではなく、スイッチを離した瞬間のラインをまたいでの発光等についてはこだわりません。マイコン(ATtiny85)の出力ピンには空きがなくGPIO一本でこれを実現したいです。またプログラムの変更は可能です。

      補足日時:2024/02/16 09:28
  • 先の補足について訂正させて頂きます。先の補足ではモーメンタリスイッチと表記しましたが、説明を簡素にする為で、実はこの物理的なスイッチはマイコン(ATtiny85 開発はArduino)には直接繋がっておらずI2C経由でその先のEsp32 に接続され、さらに無線を通じた先のモーメンタリースイッチなのでスイッチの信号を利用するのは不可能です。説明を簡略した事より誤解を生じさせ申し訳ありません。

      補足日時:2024/02/16 11:38
  • >ただし、GPIOにled1をどう接続しているか、その情報が必要です。
    Led1とGPIOは抵抗をかませて繋いでます。幼稚園レベルの接続です。
    ご回答の程、宜しくお願いいたします。

    No.1の回答に寄せられた補足コメントです。 補足日時:2024/02/19 09:59

A 回答 (15件中1~10件)

デジタルICの7404のようなインバーターを1つ通すか(そうすると1と0,あるいはONとOFFが反転する)、トランジスターを1個使っても信号を反転できます。



電子回路屋さんなら幼稚園レベルの簡単なことです。ただし、GPIOにled1をどう接続しているか、その情報が必要です。
この回答への補足あり
    • good
    • 1
この回答へのお礼

うーん・・・

お礼日時:2024/02/13 23:27

No10です。


前の回答と関連しますが、もしこの出力ポートがアナログ出力が可能なのであれば(内部にA/D変換機があるならば)3つの状態をアナログ値として出すという方法もあります。すなわち、全OFFは 0V、LED1は 1V、LED2は 2V のように出力するのです。外部にコンパレータとロジックが少々必要ですが、入力モードに切り替えるよりは正論的な使い方です。コンパレータは3つの値が識別できればよいのでちゃんとしたコンパレータICでなくとも抵抗分圧とトランジスタといった簡単なもので大丈夫と思います。
    • good
    • 1
この回答へのお礼

m-jiroさん、ご回答ありがとうございます。
残念ながら最後の一本はアナログ出力不可でして、しかしながら、そういう発想は有りませんでした。勉強になります。

お礼日時:2024/02/17 19:13

Arduinoを使っているのだからスイッチもGPIOに接続されていて内部でなにか処理がされていると思っていました。

スイッチがLED点滅用だけでほかに使われていないならもっと簡単です。マイコンは点滅信号を出し続けてスイッチとANDを取るだけです。スケッチは変更なしで1つの74HC00と2個のLEDドライブのトランジスタでできます。スイッチがhigh側にあるかlow側にあるかわからないので必要なら74HC00の余っているゲートで反転させればいいです。スイッチがGPIOに接続されていないならhighでもlowでも好きな方にすればいいし。No.9の555は不要。GPIOとあるところをスイッチに接続。555の出力だったところにATtiny85を接続。

もっと単純にLED点滅にしか使っていないならトランジスタでも7400でも7404でもいいから反転信号を作って交互に点滅させ、スイッチで電源を切ってしまえばいい。発振回路をマイコンで作っただけのものになります。5秒待ちのないブートローダーに書き換えればすぐに起動します。

ATtiny85は厳密にはArduinoではないのでは。
    • good
    • 0
この回答へのお礼

xs200さん、ご回答ありがとうございます。質問をわかりやすくするためにモーメンタリスイッチと記しましたが実際はsx200さんが思ってたとおり「内部でなにか処理がされている」のが実情で本当は物理的なスイッチは存在しません。ですので、知りたかった事はNO.9の様なご回答です。またATtinyを使ってますが開発プラットフォームはArduinoを使っております。

お礼日時:2024/02/16 11:27

質問者さんの相談内容には、曖昧なところがあります。



(1)GPIOの出力をONにしたときに、LED1の点灯(所定の時間だけの点灯)から開始させたいのか、LED2の点灯(同)から開始させたいのか、それともどちらでもいいのか?です。

(2)またGPIOの出力をOFFにしたときは、LED1の点灯(所定の時間だけの点灯)で終わらせたいのか、LED2の点灯(同)で終わらせたいのか、それともどちらでもいいのか?です。

いずれにしても、中途半端な点灯時間を避けるためには、7400のようなナンドゲートだけではデジタル回路(論理回路)の設計はできず、7474(これは例です)のようなフリップフロップが必要になります。

デジタル回路設計技術しては中級になります。
    • good
    • 0
この回答へのお礼

質問が曖昧とのご指摘、ありがとうございます。
難易度判定を幼稚園レベルから中級への訂正とのことですね。了解致しました。

お礼日時:2024/02/15 23:46

回答No.9の回路では、最後は途中でプツンと切れますが、それでもいいのでしょうか?

「しかしながら使用可能なGPIOはもうあり」の回答画像12
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。はい。その様な動きで良いです。

お礼日時:2024/02/15 20:30

>ワンショット


74HC123とかのこと。555でもできる。
単安定マルチバイブレータの別称
トリガをかけると一定時間出力が反転する夕イマーICです。
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。

お礼日時:2024/02/15 20:30

他の方の回答にあるようにLED2はLED1からインバーターを通せば逆動作になります。

しかしOFFの時には点灯したままになりますね。
「 スイッチが押下されると点滅するようになってます。」とのことなのでLED2はこのスイッチとANDを取ったらどうですか? つまり単なるインバーターではなくNAND(AND型のインバーター)にするわけです。もっと簡単にはLED2の電源をこのスイッチから取ってもよいでしょう。

もう一つの方法は、いささか邪道なのですが、出力端子をスリーステートにする方法があります。つまりLEDを共にOFFにする時はポートの機能を「入力」に指定してハイインピーダンスにするのです。この時の出力電圧は(電源電圧が5Vなら)約2.5Vになります(後段回路から逆流してくる)。そして出力が4V以上ではLED1が、1V以下ではLED2が点灯するように後段回路を設計しておきます。
この方法ではプログラムの変更を要します。またポートは入力にも出力にも設定できるものでなくてはなりません。また電源電圧の半分という中途半端な電圧が加わるのでこの電圧で異常を生じないものでなくてはなりません。
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。前者は実現可能ですね、後者の案はno.7さんのご回答と同じ意味ですね、ここまで解説して頂いてわかりました。その発想は無かったです。

お礼日時:2024/02/15 10:36

7404ではできません。

止めてもLED1か2のどちらかが点灯したままになります。

いちばん安くて簡単なのはこれからの拡張が不要であってもNo.3の方法です。オンオフの時間、周期はプログラムで自由に決められます。外付け部品は不要です。秋月で190円。

汎用のICで組むと部品が多くなってしまいます。いまどきロジックを組んで作るなんて複雑で面倒です。

画像はGPIOがHIGHの間は交互に点滅、LOWなら両方とも消灯する回路例。周期など固定されてしまいます。なるべく安くなるようにしましたがめんどくさいと思いませんか?

NE555 20円 x1
TC74HC00AP 30円 x1
2N5401 10円 x2
抵抗、コンデンサ
「しかしながら使用可能なGPIOはもうあり」の回答画像9
    • good
    • 1
この回答へのお礼

ご回答ありがとうございます。知りたかったはこういう事です。

お礼日時:2024/02/14 18:01

片方はワンショット経由で光らす手も有るか・・・

    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。ワンショット経由、当方あまり電子工作界隈に精通しておらず、何を示してるのかわかりません。もう少し詳しくご教授してくださいませ。

お礼日時:2024/02/15 10:43

片方はプルアップ(3.3V)、片方はプルダウンにするとか・・・


明滅停止後入力に切り替えれば、vf x2 > 3.3Vになってうまく両方とも消えそう(^_^;)
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。

お礼日時:2024/02/15 10:37

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A