Arduino MKR WiFi 1010をデータ入力に使う<番外編2>ShiftRegister
ArduinoのライブラリにShift Registersがあります。利用できる74シリーズのICは、74HC165、74HC595、74HC164です。
●環境
- matlab ホームライセンス R2021a update5
- MATLAB Support Package for Arduino バージョン21.1.1
- Windows 10 Pro 21H1 メモリ40Gバイト
●利用する74HC595
Raspberry Pi 4 + Python3入門 <STEP1> (1) 7セグメントLED 74HC595 その1 1桁
で利用したのが、秋月電子通商の74HC595と7セグメントLEDの組み合わせです。
の記事のように、どんどんつなげていけます。6桁の状態で使います。
●プログラム
Control 7-Segment Display with 74HC595 Shift Register
このサンプルに従います。
7セグメントLEDのと点灯の条件は、どちらからシフトするのか、正論理か負論理によって、digitTableのデータは異なります。
最初に'00000000'を6回書き込んでいるは、電源が入ったときの不定な表示をクリアします。
次のループは、1から9を順にシフトしながら表示します。
clear all
a = arduino('COM15', 'MKR1010','Libraries','ShiftRegister');
dataPin = 'D8';
clockPin = 'D10';
latchPin = 'D9';
register = shiftRegister(a,'74HC595',dataPin,clockPin,latchPin)
digitTable = {...
'00111111', ... % 0
'00000110', ... % 1
'01011011', ... % 2
'01001111', ... % 3
'01100110', ... % 4
'01101101', ... % 5
'01111101', ... % 6
'00000111', ... % 7
'01111111', ... % 8
'01101111' ... % 9
};
for iLoop = 1:6
write(register,'00000000');
pause(0.05);
end
for iLoop = 1:10
digit = digitTable{iLoop};
write(register,digit);
pause(0.5);
end