0プログラムと電気回路の勉強を兼ねて、論理回路をArduinoマイコンを使って再現してみようと思います。基本の論理回路であるNOT・AND・ORからやってみます。論理入力は、タクトスイッチのON-OFFをdigitalReadする。論理出力は、LEDの点灯・消灯で表す。各基本回路は関数として作成し、loop関数内から呼び出す形で実行する。そんなことをして何の意味があるのか?という素直な疑問が湧きますが、気にしないことにします。a);}上記プログラムで、NOT動作するプログラムになりました。これだと拡張性がないので、もう少し拡張性をもたせるスイッチからの入力だけでなく、他の論理回路の出力値を受け取って入力とする場合にも対応する(変数で動作モードを設定すれば対応できそう)ということは、この関数の出力も値として取得したいので、戻り値として返すようにする以上の観点で改良してみました。a;}このようにして、引数としてモードを設定する値を指定してやります。モード1ならスイッチからの入力、モード2なら値として入力値を渡します。a;}関数の部分のみを記載しています。NOT回路と共通の考え方で、mode=1のときはスイッチの状態を入力とし、mode=2のときは値として入力値を渡して結果を返します。a;}こちらも考え方は同じ。これで基本の3回路が揃いました。組み合わせ回路を再現する上記の3つの基本回路を利用して、NAND回路3つの組み合わせ回路を再現してみます。回路図この回路を再現します。上記回路は一見複雑ですが、実はOR回路です。NAND回路を3つ組み合わせるとOR回路に変換できます、的なアレです。a;}えらく長いですが、こんな感じになりました。回路一つ一つを順に実行して行き、結果を変数に格納しながら順次進めていく方法と、関数同士を入れ子にして一気に実行する方法と、どちらでも動かすことができました。Tips!各基本回路の出力ピンを別々に設定しているので、それぞれにLEDを接続しておけば、出力の途中経過を目で確認出来るようになります。現状だと出力のフィードバックに関数レベルで対応できてない気がするので、もう少し改良の余地がありそうです。引き続き勉強してみることにします。Lチカ!PWM制御でLEDの明るさを制御するArduinoでハイパワーのフルカラーLEDを制御するこの記事を書いた人GOアラサーパパ30代、子育てと仕事に奮闘しつつ、人生を楽しむためのプロジェクト。電子工作・ジャズ(演るのも聴くのも)、カメラが趣味。あと人生について思い悩むこと。コメントをキャンセルメールアドレスが公開されることはありません。新しい投稿をメールで受け取る前の記事Arduinoマイコンの基本まとめGO子育てと仕事に奮闘するアラサーパパ。妻とともに3歳・0歳の息子たちと日々向き合いながら、楽しく生きてます。ついて二児の子育てと仕事に奮闘しながら、充実した人生を送るためのプロジェクト。30代の子育てパパが頑張って執筆しています。