HOME >> LED電子工作集 > Tinkercad Arduinoを使う
■ はじめに
今回はプログラムで動く Arduino を使ってみることにした。トランジスタやLEDといったアナログ部品のモデルと異なり、デジタルなプログラムに従って入出力ポートを制御すればよいだけなので、そのモデル化はきわめて簡単であると推察するのだ。そして、その動きを指示するシミュレーションプログラムは Arduino と同じにしておけば、シミュレーションは何ら問題ないのである。
boolean a1,a2,a3,a4; int cnt; void setup() { pinMode(2, OUTPUT); pinMode(3, OUTPUT); pinMode(4, OUTPUT); pinMode(5, OUTPUT); pinMode(6, OUTPUT); cnt=0; } void loop() { a1=bitRead(cnt,0); a2=bitRead(cnt,1); a3=bitRead(cnt,2); a4=bitRead(cnt,3); digitalWrite(2, a1); digitalWrite(3, a2); digitalWrite(4, a3); digitalWrite(5, a4); cnt++; delay(500); if(cnt>9){ cnt=0; } }
■ Arduinoと7セグメントデコーダを使ったランダム点滅回路
この組み合わせはLED電子工作集には記載していません。出典は、”つれづれなる備忘録”さんの「TinkercadによるArduinoシミュレーション30 〜 7セグメントディスプレイ」です。 URLは、
https://atatat.hatenablog.com/entry/2020/06/13/194330
です。
このサイトを参考にして、 7セグメントディスプレイの代わりに7個のLEDを点滅させるように変更しました。LEDの色もいろいろ替えてみました。7セグメントデコーダのICは、CD4511を使用しています。
スケッチは参考サイトの内容をそのままコピペして使用しました。ただし、int cnt; の間のスペースが全角のスペースだったので半角のスペースに修正してあります。
作動状態のスクリーンをコピーしてYouTubeにアップしていますので、動作状態を確認してください。LEDの点灯具合が綺麗だったので、動画は拡大して撮影しています。
動画のURLは、https://youtu.be/23iha_vGlzU?si=MHisHvuLxUk57jiX です。
また、Tinkercadの共有リンクは、https://www.tinkercad.com/things/lLg6GdJvneQ-cd4511?sharecode=rK4TfGq_h6QzeGyUnhhVuq5kpHboNkrT_OmAvWJ8Pq0
const int STcp = 12; // 74HC595のST_CPに接続されたピン const int SHcp = 8; // 74HC595のSH_CPに接続されたピン const int DS = 11; // 74HC595のDSに接続されたピン int datArray[] = {B00000000, B00000001, B00000011, B00000110, B00001100, B00011000, B00110000, B01100000, B11000000}; void setup () { // ピンを出力モードに設定 pinMode(STcp, OUTPUT); pinMode(SHcp, OUTPUT); pinMode(DS, OUTPUT); } void loop() { for (int num = 0; num <= 8; num++) { digitalWrite(STcp, LOW); // ST_CPを接地し、送信中は低に保持 shiftOut(DS, SHcp, MSBFIRST, datArray[num]);
// データをシフトアウト、MSBから digitalWrite(STcp, HIGH); // ST_CPを高にしてデータを保存 delay(100); // 0.11秒待機 } delay(500); }
■ Arduinoと8ビットシフトレジスタを使ったLED点灯回路
この組み合わせもLED電子工作集には記載していません。出典は、SunFounderさんの「24. 74HC595を使用した流れる光」です。 URLは、
https://docs.sunfounder.com/projects/beginners-lab-kit/ja/latest/24_flowing_light.html
74HC595 8ビットシフトレジスタを使用して、上記のサイトのように配線しました。スケッチは、一部修正してあります。
動作説明は上記のサイトに説明されているので参照してください。また、動作状態を下記のYouTubeに投稿しています。
動画のURLは、 https://youtu.be/ohwwvjKzzYE?si=y3fIYzhyLP3WRElz です。
また、Tinkercadの共有リンクは、 https://www.tinkercad.com/things/jQ0L5JQZ9RW-?sharecode=rM7JNrqFtVOWtZkycV8yc1un_5lUWQQ3sJIefDgSKQQ です。
boolean a1,a2,a3,a4; int cnt; void setup() { pinMode(2, OUTPUT); pinMode(3, OUTPUT); pinMode(4, OUTPUT); pinMode(5, OUTPUT); pinMode(10, OUTPUT); pinMode(11, OUTPUT); pinMode(12, OUTPUT); cnt=9; } void loop() { a1=bitRead(cnt,0); a2=bitRead(cnt,1); a3=bitRead(cnt,2); a4=bitRead(cnt,3); digitalWrite(2, a1); digitalWrite(3, a2); digitalWrite(4, a3); digitalWrite(5, a4); digitalWrite(10, HIGH); cnt--; delay(1000); if(cnt<0){ digitalWrite(12, HIGH); digitalWrite(10, LOW); delay(2000); digitalWrite(11, HIGH); digitalWrite(12, LOW); delay(4000); digitalWrite(11, LOW); cnt=9; } }
■ Arduinoと7セグメントデコーダを使ったカウントダウン
この組み合わせはLED電子工作集には記載していません。出典は、最初に紹介した”つれづれなる備忘録”さんの「TinkercadによるArduinoシミュレーション30 〜 7セグメントディスプレイ」と同じです。 URLは、https://atatat.hatenablog.com/entry/2020/06/13/194330 です。
今回は、複数のLEDではなく、参考したサイトと同じ7セグメントディスプレイを使用し、スケッチの内容を右のように変更しました。カウントダウンは10から始めたかったのですが表示ディスプレイが1個しかないので、9からカウントダウを始めるようにっしました。
また、待機中、カウントダウン中、爆発中を表示するため、3色LEDを使って点灯させました。また、爆発状態を示すため、Arduinoに過電流が流れるように電流制限抵抗を小さくし、下の図のように派手なシグナルを表示するようにしました。
動作状態を下記のYouTubeに投稿しています。
動画のURLは、 https://youtu.be/TKb0R6-0utM?si=R37eyUGPx0hKS21p です。
また、Tinkercadの共有リンクは、 https://www.tinkercad.com/things/4k1TEE3xmsH-cd4511?sharecode=PmkzGEipjyipL1kakWYnfH98Kw2M1le23BIWN87tvcA
■ まとめ
ArduinoとロジックICを使った回路では、思惑どうりに問題なく作動していました。ホビー用のWebアプリとしては充分に楽しめそうですね。