#include <Adafruit_GFX.h>
#include <Adafruit_NeoMatrix.h>
#include <Adafruit_NeoPixel.h>
#ifdef __AVR__
#include <avr/power.h>
#endif
#define PIN 5 // 出力ピン番号
#define MATRIX_WIDTH 32 // マトリクスの幅
#define MATRIX_HEIGHT 8 // マトリクスの高さ
Adafruit_NeoMatrix matrix = Adafruit_NeoMatrix(MATRIX_WIDTH, MATRIX_HEIGHT, PIN,
NEO_MATRIX_TOP + NEO_MATRIX_LEFT +
NEO_MATRIX_COLUMNS + NEO_MATRIX_ZIGZAG,
NEO_GRB + NEO_KHZ800);
//このマトリクスプレートの配置結線部分がGPT君は作れなかった。
//当然、私の説明不足、至らない結果である。
int currentColumn = 0; // 現在の列の位置
void setup() {
matrix.begin();
matrix.setBrightness(50);
matrix.setTextWrap(false);
matrix.setTextColor(matrix.Color(255, 255, 255));
}
void loop() {
// 色相環を表現
for (int col = 0; col < MATRIX_WIDTH; col++) {
// 色相の計算
float hue = map(col + currentColumn, 0, MATRIX_WIDTH, 0, 360);
// 色相からRGB値を取得
uint32_t color = HSBtoRGB(hue, 1.0, 1.0);
// 全ドットに色を設定
for (int row = 0; row < MATRIX_HEIGHT; row++) {
matrix.drawPixel(col, row, color);
}
}
matrix.show(); // 表示更新
delay(10); // 表示の更新間隔
currentColumn++; // 列の位置を更新
// 右端に到達した場合は左端に戻る
if (currentColumn >= MATRIX_WIDTH) {
currentColumn = 0;
}
}
// HSBからRGBへの変換
uint32_t HSBtoRGB(float hue, float saturation, float brightness) {
if (saturation == 0) {
// 彩度が0の場合、明度に応じた灰色を返す
uint8_t value = round(brightness * 255);
return matrix.Color(value, value, value);
}
hue = fmod(hue, 360); // 色相を0-359の範囲に正規化
float hueSector = hue / 60.0;
int sector = floor(hueSector);
float fractionalPart = hueSector - sector;
uint8_t p = round(brightness * (1 - saturation) * 255);
uint8_t q = round(brightness * (1 - saturation * fractionalPart) * 255);
uint8_t t = round(brightness * (1 - saturation * (1 - fractionalPart)) * 255);
switch (sector) {
case 0:
return matrix.Color(round(brightness * 255), t, p);
case 1:
return matrix.Color(q, round(brightness * 255), p);
case 2:
return matrix.Color(p, round(brightness * 255), t);
case 3:
return matrix.Color(p, q, round(brightness * 255));
case 4:
return matrix.Color(t, p, round(brightness * 255));
default:
return matrix.Color(round(brightness * 255), p, q);
}
}
数行をのぞき、CHATGPTが生成したプログラムになります。
このプログラムをご利用されて、著作権を主張することはしないでください。私も主張しません。
悪意を持って改変しないでください。CHATGPT3.5が何を思って作成しているか全く不明です。
これは、同じハード構成にすればきちんと動作します。
世界のどこかで、似たプログラムがあった場合ご連絡ください。
お詫びして、著作権情報を付加したいと思います。