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アプリとしては充分に楽しめそうですね。