37 個のセンサーとアクチュエーターに関する言及はインターネット上で広く広まっていますが、実際には、Arduino と互換性のあるセンサー モジュールは 37 個以上あるはずです。手持ちのセンサーとアクチュエーターのモジュールがいくつかあるという事実を考慮して、学習とコミュニケーションの目的で、真の知識を実践する(やらなければならない)というコンセプトに従って、一連の実験を試してみるつもりです。 1つは、成功(プログラムが完了する)かどうかに関係なく、他の人にインスピレーションを与えることを期待して、小さな進歩や解決できない問題などを記録します。
【Arduino】168種類のセンサーモジュールシリーズ実験(データコード+シミュレーションプログラミング+グラフィックスプログラミング)
実験99:8X32 LEDドットマトリクスディスプレイモジュール MAX7219出力カソードコモン5V 4ビットドットマトリクスモジュール
知識ポイント: MAX7219 は
、米国の MAXIM 社が発売した多桁 LED ディスプレイ ドライバです. データの送信に 3 線式シリアル インターフェイスを使用しており、シングルチップ インターフェイスに直接接続できます. ユーザーはその内部を簡単に変更できます多桁LED表示を実現するためのパラメータです。ハードウェアダイナミックスキャン回路、BCDデコーダ、セグメントドライバ、ビットドライバが含まれています。さらに、内部には 8X8 ビットのスタティック RAM が含まれており、8 桁の表示データを保存するために使用されます。明らかに、64 セグメント LED ドットマトリックス ディスプレイを直接駆動できます。複数のMAX7219をカスケード接続すると、より多くのLEDドットマトリックスディスプレイを制御できます。表示されたデータはシングルチップマイコンで処理された後、MAX7219に送信されて表示されます。
MAX7219/MAX7221は、マイクロプロセッサを8桁7セグメントLEDディスプレイ、バーグラフディスプレイまたは64個の個別LEDに接続する統合シリアル入出力コモンカソードディスプレイドライバです。オンチップのBタイプBCDエンコーダ、マルチチャンネルスキャン回路、セグメントドライバ、各データを保存する8*8スタティックRAMを内蔵しています。各 LED のセグメント電流を設定するために使用される外部レジスタは 1 つだけです。MAX7221はSPI™、QSPI™、およびMICROWIRE™と互換性があり、スルー電流を制限してEMI(電磁妨害)を低減するセグメントドライブを備えています。便利な 4 線式シリアル インターフェイスは、すべての一般的なマイクロプロセッサと接続できます。すべての表示を書き換えることなく、各データのアドレスを更新できます。MAX7219/MAX7221では、各データをエンコードするかどうかをユーザーが選択することもできます。デバイス全体には、150μAの低電力シャットダウンモード、アナログおよびデジタルの輝度制御、ユーザーが1~8ビットのデータを表示できるスキャンリミットレジスタ、およびすべてのLEDを点灯させる検出モードが含まれています。
8X32 LED ドットマトリックスディスプレイモジュール MAX7219 出力コモンカソード 5V 4 ビットドットマトリックスモジュール
8X32 LEDドットマトリックスディスプレイカスケードモジュールのMAX7219は、統合型シリアル入出力コモンカソードディスプレイドライバで、マイクロプロセッサと8桁7セグメントデジタルLEDディスプレイを接続し、棒グラフディスプレイまたは64個の個別ディスプレイにも接続できます。 LED。オンチップのBタイプBCDエンコーダ、マルチチャンネルスキャン回路、セグメントドライバ、各データを保存する8*8スタティックRAMを内蔵しています。各 LED のセグメント電流を設定するために使用される外部レジスタは 1 つだけです。便利な 4 線式シリアル インターフェイスは、すべての一般的なマイクロプロセッサと接続できます。すべての表示を書き換えることなく、各データのアドレスを更新できます。MAX7219では、各データをエンコードするかどうかをユーザーが選択することもできます。デバイス全体には、150μAの低電力シャットダウンモード、アナログおよびデジタルの輝度制御、ユーザーが1~8ビットのデータを表示できるスキャンリミットレジスタ、およびすべてのLEDを点灯させる検出モードが含まれています。1 つのドットマトリックスを駆動するのに必要な IO ポートは 3 つだけです。ドットマトリクス表示時のちらつきなし!カスケードがサポートされています。
8X32 LED ドットマトリックス ディスプレイ モジュールの参考回路図
Arduino実験の配線図
【Arduino】168種類のセンサーモジュールシリーズ実験(データコード+シミュレーションプログラミング+グラフィックプログラミング)
実験99:8X32 LEDドットマトリクスディスプレイカスケードモジュールMAX7219出力コモンカソード5Vモジュール
1.ライブラリをダウンロードしてインストール:
GitHub | riyas-org /max7219 https://github.com/riyas-org/max7219
2. プロジェクト: 文字ライブラリの作成、縦スクロールテキスト表示
3. 接続:
VCC → 5V
GND → GND
DIN to D11 (MOSI)
CS to D10 (SS )
CLK to D13 (SCK)
/*
【Arduino】108种传感器模块系列实验(资料+代码+图形+仿真)
实验一百零三: 8X32 LED点阵显示级联模块 MAX7219 输出 共阴 5V 模组
1、下载安装库:
GitHub | riyas-org/max7219 https://github.com/riyas-org/max7219
2、项目:建立字母库,立式滚动文本显示
3、连线:
VCC → 5V
GND → GND
DIN 接 D11 (MOSI)
CS 接 D10 (SS)
CLK 接 D13 (SCK)
*/
#include <MaxMatrix.h>
#include <avr/pgmspace.h>
PROGMEM const unsigned char CH[] = {
3, 8, B00000000, B00000000, B00000000, B00000000, B00000000, // space
1, 8, B01011111, B00000000, B00000000, B00000000, B00000000, // !
3, 8, B00000011, B00000000, B00000011, B00000000, B00000000, // "
5, 8, B00010100, B00111110, B00010100, B00111110, B00010100, // #
4, 8, B00100100, B01101010, B00101011, B00010010, B00000000, // $
5, 8, B01100011, B00010011, B00001000, B01100100, B01100011, // %
5, 8, B00110110, B01001001, B01010110, B00100000, B01010000, // &
1, 8, B00000011, B00000000, B00000000, B00000000, B00000000, // '
3, 8, B00011100, B00100010, B01000001, B00000000, B00000000, // (
3, 8, B01000001, B00100010, B00011100, B00000000, B00000000, // )
5, 8, B00101000, B00011000, B00001110, B00011000, B00101000, // *
5, 8, B00001000, B00001000, B00111110, B00001000, B00001000, // +
2, 8, B10110000, B01110000, B00000000, B00000000, B00000000, // ,
4, 8, B00001000, B00001000, B00001000, B00001000, B00000000, // -
2, 8, B01100000, B01100000, B00000000, B00000000, B00000000, // .
4, 8, B01100000, B00011000, B00000110, B00000001, B00000000, // /
4, 8, B00111110, B01000001, B01000001, B00111110, B00000000, // 0
3, 8, B01000010, B01111111, B01000000, B00000000, B00000000, // 1
4, 8, B01100010, B01010001, B01001001, B01000110, B00000000, // 2
4, 8, B00100010, B01000001, B01001001, B00110110, B00000000, // 3
4, 8, B00011000, B00010100, B00010010, B01111111, B00000000, // 4
4, 8, B00100111, B01000101, B01000101, B00111001, B00000000, // 5
4, 8, B00111110, B01001001, B01001001, B00110000, B00000000, // 6
4, 8, B01100001, B00010001, B00001001, B00000111, B00000000, // 7
4, 8, B00110110, B01001001, B01001001, B00110110, B00000000, // 8
4, 8, B00000110, B01001001, B01001001, B00111110, B00000000, // 9
2, 8, B01010000, B00000000, B00000000, B00000000, B00000000, // :
2, 8, B10000000, B01010000, B00000000, B00000000, B00000000, // ;
3, 8, B00010000, B00101000, B01000100, B00000000, B00000000, // <
3, 8, B00010100, B00010100, B00010100, B00000000, B00000000, // =
3, 8, B01000100, B00101000, B00010000, B00000000, B00000000, // >
4, 8, B00000010, B01011001, B00001001, B00000110, B00000000, // ?
5, 8, B00111110, B01001001, B01010101, B01011101, B00001110, // @
4, 8, B01111110, B00010001, B00010001, B01111110, B00000000, // A
4, 8, B01111111, B01001001, B01001001, B00110110, B00000000, // B
4, 8, B00111110, B01000001, B01000001, B00100010, B00000000, // C
4, 8, B01111111, B01000001, B01000001, B00111110, B00000000, // D
4, 8, B01111111, B01001001, B01001001, B01000001, B00000000, // E
4, 8, B01111111, B00001001, B00001001, B00000001, B00000000, // F
4, 8, B00111110, B01000001, B01001001, B01111010, B00000000, // G
4, 8, B01111111, B00001000, B00001000, B01111111, B00000000, // H
3, 8, B01000001, B01111111, B01000001, B00000000, B00000000, // I
4, 8, B00110000, B01000000, B01000001, B00111111, B00000000, // J
4, 8, B01111111, B00001000, B00010100, B01100011, B00000000, // K
4, 8, B01111111, B01000000, B01000000, B01000000, B00000000, // L
5, 8, B01111111, B00000010, B00001100, B00000010, B01111111, // M
5, 8, B01111111, B00000100, B00001000, B00010000, B01111111, // N
4, 8, B00111110, B01000001, B01000001, B00111110, B00000000, // O
4, 8, B01111111, B00001001, B00001001, B00000110, B00000000, // P
4, 8, B00111110, B01000001, B01000001, B10111110, B00000000, // Q
4, 8, B01111111, B00001001, B00001001, B01110110, B00000000, // R
4, 8, B01000110, B01001001, B01001001, B00110010, B00000000, // S
5, 8, B00000001, B00000001, B01111111, B00000001, B00000001, // T
4, 8, B00111111, B01000000, B01000000, B00111111, B00000000, // U
5, 8, B00001111, B00110000, B01000000, B00110000, B00001111, // V
5, 8, B00111111, B01000000, B00111000, B01000000, B00111111, // W
5, 8, B01100011, B00010100, B00001000, B00010100, B01100011, // X
5, 8, B00000111, B00001000, B01110000, B00001000, B00000111, // Y
4, 8, B01100001, B01010001, B01001001, B01000111, B00000000, // Z
2, 8, B01111111, B01000001, B00000000, B00000000, B00000000, // [
4, 8, B00000001, B00000110, B00011000, B01100000, B00000000, // \ backslash
2, 8, B01000001, B01111111, B00000000, B00000000, B00000000, // ]
3, 8, B00000010, B00000001, B00000010, B00000000, B00000000, // hat
4, 8, B01000000, B01000000, B01000000, B01000000, B00000000, // _
2, 8, B00000001, B00000010, B00000000, B00000000, B00000000, // `
4, 8, B00100000, B01010100, B01010100, B01111000, B00000000, // a
4, 8, B01111111, B01000100, B01000100, B00111000, B00000000, // b
4, 8, B00111000, B01000100, B01000100, B00101000, B00000000, // c
4, 8, B00111000, B01000100, B01000100, B01111111, B00000000, // d
4, 8, B00111000, B01010100, B01010100, B00011000, B00000000, // e
3, 8, B00000100, B01111110, B00000101, B00000000, B00000000, // f
4, 8, B10011000, B10100100, B10100100, B01111000, B00000000, // g
4, 8, B01111111, B00000100, B00000100, B01111000, B00000000, // h
3, 8, B01000100, B01111101, B01000000, B00000000, B00000000, // i
4, 8, B01000000, B10000000, B10000100, B01111101, B00000000, // j
4, 8, B01111111, B00010000, B00101000, B01000100, B00000000, // k
3, 8, B01000001, B01111111, B01000000, B00000000, B00000000, // l
5, 8, B01111100, B00000100, B01111100, B00000100, B01111000, // m
4, 8, B01111100, B00000100, B00000100, B01111000, B00000000, // n
4, 8, B00111000, B01000100, B01000100, B00111000, B00000000, // o
4, 8, B11111100, B00100100, B00100100, B00011000, B00000000, // p
4, 8, B00011000, B00100100, B00100100, B11111100, B00000000, // q
4, 8, B01111100, B00001000, B00000100, B00000100, B00000000, // r
4, 8, B01001000, B01010100, B01010100, B00100100, B00000000, // s
3, 8, B00000100, B00111111, B01000100, B00000000, B00000000, // t
4, 8, B00111100, B01000000, B01000000, B01111100, B00000000, // u
5, 8, B00011100, B00100000, B01000000, B00100000, B00011100, // v
5, 8, B00111100, B01000000, B00111100, B01000000, B00111100, // w
5, 8, B01000100, B00101000, B00010000, B00101000, B01000100, // x
4, 8, B10011100, B10100000, B10100000, B01111100, B00000000, // y
3, 8, B01100100, B01010100, B01001100, B00000000, B00000000, // z
3, 8, B00001000, B00110110, B01000001, B00000000, B00000000, // {
1, 8, B01111111, B00000000, B00000000, B00000000, B00000000, // |
3, 8, B01000001, B00110110, B00001000, B00000000, B00000000, // }
4, 8, B00001000, B00000100, B00001000, B00000100, B00000000, // ~
};
int DIN = 11; // DIN pin of MAX7219 module
int CLK = 13; // CLK pin of MAX7219 module
int CS = 10; // CS pin of MAX7219 module
int maxInUse = 4;
MaxMatrix m(DIN, CS, CLK, maxInUse);
byte buffer[10];
char text[]= "Hello Eagler8"; // Scrolling text
void setup() {
m.init(); // module initialize
m.setIntensity(0); // dot matix intensity 0-15
}
void loop() {
printStringWithShift(text, 100); // (text, scrolling speed)
}
// Display=the extracted characters with scrolling
void printCharWithShift(char c, int shift_speed) {
if (c < 32) return;
c -= 32;
memcpy_P(buffer, CH + 7 * c, 7);
m.writeSprite(32, 0, buffer);
m.setColumn(32 + buffer[0], 0);
for (int i = 0; i < buffer[0] + 1; i++)
{
delay(shift_speed);
m.shiftLeft(false, false);
}
}
// Extract the characters from the text string
void printStringWithShift(char* s, int shift_speed) {
while (*s != 0) {
printCharWithShift(*s, shift_speed);
s++;
}
}
【Arduino】168種類のセンサーモジュールシリーズ実験(データコード+シミュレーションプログラミング+グラフィックスプログラミング)
実験99:8X32 LEDドットマトリクスディスプレイカスケードモジュールMAX7219出力コモンカソード5Vモジュール
1、ダウンロードライブラリ https://www.pjrc.com/ Teensy/arduino_libraries/Matrix_Sprite.zip
2. プロジェクト: 表示文字
3. 接続:
VCC → 5V
GND → GND
DIN から D11 (MOSI)
CS から D10 (SS)
CLK から D13 (SCK)
/*
【Arduino】108种传感器模块系列实验(资料+代码+图形+仿真)
实验一百零三: 8X32 LED点阵显示级联模块 MAX7219 输出 共阴 5V 模组
1、下载库 https://www.pjrc.com/teensy/arduino_libraries/Matrix_Sprite.zip
2、项目:显示字母
3、连线:
VCC → 5V
GND → GND
DIN 接 D11 (MOSI)
CS 接 D10 (SS)
CLK 接 D13 (SCK)
*/
#include <Sprite.h> // Sprite before Matrix
#include <Matrix.h>
//DIN, CLK, CS, #chips
Matrix myLeds = Matrix(11, 13, 10, 3);
Sprite letter_L = Sprite(5, 8,
B11000,
B11000,
B11000,
B11000,
B11000,
B11000,
B11111,
B11111
);
Sprite letter_E = Sprite(5, 8,
B11111,
B11111,
B11000,
B11110,
B11110,
B11000,
B11111,
B11111
);
Sprite letter_D = Sprite(6, 8,
B111100,
B111110,
B110111,
B110011,
B110011,
B110111,
B111110,
B111100
);
Sprite letter_S = Sprite(5, 8,
B01110,
B11111,
B11000,
B11110,
B01111,
B00011,
B11111,
B01110
);
void setup() {
myLeds.clear();
myLeds.setBrightness(0);
myLeds.write(3, 0, letter_L);
myLeds.write(10, 0, letter_E);
myLeds.write(18, 0, letter_D);
myLeds.write(26, 0, letter_S);
}
void loop() {
}
Matrix ライブラリのいくつかの関数
基本的な使用法、ピクセルのみ
Matrix myLeds = Matrix(DIN, CLK, LOAD, numChips);
選択した名前で Matrix オブジェクトのインスタンスを作成します。DIN、CLK、LOAD は、これらの信号が接続されているピン番号です。個別に接続された複数の MAX7219 チップが接続されている場合、複数のオブジェクトを作成できます。
私のLED。clear();
表示全体をクリアします。
私のLED。setBrightness(15);
ディスプレイの明るさを 0 ~ 15 (最も明るい) で設定します。
私のLED。write(x, y, value);
単一ピクセルを変更します。オフの場合は値を LOW、オンの場合は値を HIGH にする必要があります。
基本的な使い方は、Sprite
Sprite myIcon = Sprite(width, height, B11000, B11000, B11111, B11111); を使用し
てスプライト オブジェクトを作成します。スプライトは必要な数だけ作成でき、それぞれに一意の名前を付けることができます。幅は各データ値のビット数と一致し、高さはデータ値の数と一致する必要があります。
私のLED。write(x, y, myIcon);
ディスプレイ上に点滅するスプライトを描画します。
スプライト ライブラリを使用すると、マトリックス ライブラリで使用する画像スプライトを作成できます。
スプライトは
LCD ライブラリを起動します。
width() は
スプライトの幅をピクセル単位で返します。
height() は
スプライトの高さをピクセル単位で返します。
write()
はスプライトの X、Y 位置にデータを書き込みます。
read()
は、スプライトの X、Y 位置に格納されているデータを返します。
Arduinoの実験シーン図
実験的なオープンソース グラフィックス プログラミング (Mind+、学習しながらプログラミング)
実験的なオープンソース シミュレーション プログラミング (Linkboy V5.33)
Arduinoの実験シーン図