JH7UBCブログ

アマチュア無線 電子工作 家庭菜園など趣味のブログです

Arduino UNO R4 WiFi LEDマトリクス その1(動き回るLED)

2024-02-13 10:31:01 | Arduino
 Arduino UNO R4 WiFiの特徴の一つであるLEDマトリクスを使ってみます。

 ArduinoのサイトにLEDマトリックスの使い方の説明(チュートリアル)があります。Arduinoのサイトはこちら。これを和訳したサイトはこちら

 パターンやアニメの表示については、上記のサイトを参考にしてください。

 このようなLEDマトリクスを見ると、いずれスカッシュゲームを作ることができないかと考えてしまいます。そこで、第一段階として、LEDをボールに見立てて、壁にぶつかりながら動き回るボールを表示してみます。

 スケッチです。
-------------------------------------------------------------
#include "Arduino_LED_Matrix.h"

ArduinoLEDMatrix matrix;

void setup() {
matrix.begin();
}

uint8_t x = random(11);
uint8_t y = random(7);
uint8_t Dx = 1;
uint8_t Dy = 1;

uint8_t frame[8][12] = {
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }
};

void LED_on(uint8_t column,uint8_t row){
frame[row][column] = 1;
matrix.renderBitmap(frame, 8, 12);
}

void LED_off(uint8_t column,uint8_t row){
frame[row][column] = 0;
matrix.renderBitmap(frame, 8, 12);
}

void loop(){
LED_off(x,y);
  x = x + Dx;
  y = y + Dy;

if(x >= 11 || x <= 0){
    Dx = -Dx;
}

if(y >= 7 || y <= 0){
    Dy = -Dy;
}
LED_on(x,y);
delay(100);
}
-------------------------------------------------------------
100ms(0.1s)ごとに光るLEDが移動し、端っこで反射しながら動き回ります。



 動画でないので分かりにくいですが、光るLEDが次々に移動します。

最新の画像もっと見る

コメントを投稿