HOME  >>  LED電子工作集 > Tinkercad Arduinoを使う

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