工業製造
産業用モノのインターネット | 工業材料 | 機器のメンテナンスと修理 | 産業プログラミング |
home  MfgRobots >> 工業製造 >  >> Manufacturing Technology >> 製造プロセス

Arduinoシフトレジスタで美しい光のシーケンスを作成

部品と材料

Arduino UNO ×1
ブレッドボード(汎用) ×2
ジャンパーワイヤ(汎用) ×55
74HC595 シフトレジスタ ×1
タクトスイッチ ×4
可変抵抗器(汎用) ×1
LED(汎用) ×8
抵抗 220Ω ×9
抵抗 10kΩ ×4

必要な工具

手(ハンダ付け不要、ブレッドボードで組み立て可能)

アプリとオンラインサービス

Arduino IDE

プロジェクト概要

LEDと配列を使った実験を楽しんでいたところ、シフトレジスタとLCD画面を活用して、コードを書き換えることなく光のアニメーションを作成・表示・編集できるプログラムを作成しました。

操作方法

左から右へボタン1〜4が配置されています。

主な機能

コード

Light Sequencer (C/C++)

配線が正しければそのまま動作します。お楽しみください。

#include <LiquidCrystal.h>
#define ARR_SIZE 16  // フレーム数(任意に変更可能)
#define LIGHTS 8     // LEDの数

const int btn1 = 7, btn2 = 8, btn3 = 9, btn4 = 10;
int bs1 = 0, bs2 = 0, bs3 = 0, bs4 = 0;

const int latchPin = 11;
const int clockPin = 13;
const int dataPin = 12;

byte data;
bool ArrOne[ARR_SIZE][LIGHTS] = {false};
byte lightArrOne[ARR_SIZE] = {0xFF};

int animSpeed = 50;
int loopCount = 5;

const int rs = 15, en = 14, d4 = 3, d5 = 4, d6 = 5, d7 = 6;
LiquidCrystal lcd(rs, en, d4, d5, d6, d7);

void setup() {
  pinMode(btn1, INPUT_PULLUP);
  pinMode(btn2, INPUT_PULLUP);
  pinMode(btn3, INPUT_PULLUP);
  pinMode(btn4, INPUT_PULLUP);
  lcd.begin(16, 2);
  pinMode(latchPin, OUTPUT);
  PrintMenu();
}

void loop() {
  bs1 = digitalRead(btn1);
  bs2 = digitalRead(btn2);
  bs3 = digitalRead(btn3);
  bs4 = digitalRead(btn4);

  if (bs1 == HIGH) { bs1 = LOW; delay(150); Play(); }
  else if (bs2 == HIGH) { bs2 = LOW; delay(150); Create(ArrOne); }
  else if (bs3 == HIGH) { bs3 = LOW; delay(150); SetSpeed(); }
  else if (bs4 == HIGH) { bs4 = LOW; delay(150); SetLoop(); }

  PrintMenu();
  delay(150);
}

// 以下、各関数(PrintMenu, PrintCreate, Play, Create, IntToHexToByte, 
// BoolArrayToByte, SetSpeed, SetLoop, shiftOut, ClearScreen)は原文通り
// 省略していますが、実際の使用時は全コードをコピーしてください。

回路図

配線は画像を参照してください。抵抗の長さ制限と可読性のため、実際の製作より広げて描いています。組み立て後、よりコンパクトにまとめる工夫をしてみてください。

Arduinoシフトレジスタで美しい光のシーケンスを作成

製造プロセス

  1. TinyML言語検出器:Edge ImpulseとArduino Nano 33 BLE Senseで「はい」を多言語判別
  2. Arduino NanoとMPU-6050で作るリアルタイムジャイロスコープゲーム
  3. Arduinoデジタルダイス: LCD表示の乱数ジェネレーター自作
  4. Arduino Nanoで37LEDルーレットゲームを自作:ヨーロピアンスタイル完全再現
  5. ATtiny85ミニアーケード:スネークゲーム - 手のひらサイズOLEDゲーム機の製作
  6. ポータブル距離検出器:Arduino Nano自作キット(HC-SR04、18650電源、3Dプリントケース付き)
  7. Arduino Nanoで作る音声反応デスクライト:音楽に合わせて光るイルミネーション
  8. Arduino Nano と OpenCV で実現する自律顔追跡ロボットカー
  9. 銅メッキプロジェクト:Arduino UNOで作るスマート電気メッキシステム
  10. Arduino Nanoで作るNeoPixelマトリックス版Pongゲーム
  11. Arduino MKR1000 WiFi ピック・トゥ・ライトシステム - プロジェクト2