注釈
こんにちは、SunFounderのRaspberry Pi & Arduino & ESP32愛好家コミュニティへようこそ!Facebook上でRaspberry Pi、Arduino、ESP32についてもっと深く掘り下げ、他の愛好家と交流しましょう。
参加する理由は?
エキスパートサポート:コミュニティやチームの助けを借りて、販売後の問題や技術的な課題を解決します。
学び&共有:ヒントやチュートリアルを交換してスキルを向上させましょう。
独占的なプレビュー:新製品の発表や先行プレビューに早期アクセスしましょう。
特別割引:最新製品の独占割引をお楽しみください。
祭りのプロモーションとギフト:ギフトや祝日のプロモーションに参加しましょう。
👉 私たちと一緒に探索し、創造する準備はできていますか?[ここ]をクリックして今すぐ参加しましょう!
2.4 マイクロチップ - 74HC595¶
このエキサイティングなプロジェクトへようこそ!このプロジェクトでは、74HC595チップを使用して8つのLEDの流れるような表示を制御します。
このプロジェクトを起動すると、8つのLED間で飛び交うかのような魅惑的な光の流れが目の前に広がります。一つ一つのLEDが順に点灯し、すぐに消えていく間に、次のLEDが輝き続け、美しくダイナミックな効果を生み出します。
74HC595チップを巧みに利用することで、複数のLEDのオン/オフ状態を制御し、流れるような効果を実現できます。このチップには複数の出力ピンがあり、LEDの点灯順序を制御するために直列に接続できます。さらに、チップの拡張性により、流れる表示にさらに多くのLEDを簡単に追加し、より壮観な効果を作り出すことができます。
必要な部品
このプロジェクトには以下のコンポーネントが必要です。
一式を購入するのが便利です。こちらがリンクです:
名前 |
このキットのアイテム |
リンク |
---|---|---|
ESP32 Starter Kit |
320+ |
もちろん、以下のリンクから個別に購入することもできます。
コンポーネントの紹介 |
購入リンク |
---|---|
利用可能なピン
このプロジェクトでESP32ボードに利用可能なピンのリストです。
利用可能なピン |
IO13, IO12, IO14, IO27, IO26, IO25, IO33, IO32, IO15, IO2, IO0, IO4, IO5, IO18, IO19, IO21, IO22, IO23 |
回路図
MR(ピン10)がハイレベルで、CE(ピン13)がローレベルのとき、SHcpの立ち上がりエッジでデータが入力され、SHcpの立ち上がりエッジを通してメモリレジスタに移動します。
2つのクロックを接続すると、シフトレジスタはメモリレジスタよりも常に1パルス早くなります。
メモリレジスタには、シリアルシフト入力ピン(DS)、シリアル出力ピン(Q7')、非同期リセットボタン(ローレベル)があります。
メモリレジスタは、3状態の並列8ビットバスを出力します。
OEが有効(ローレベル)のとき、メモリレジスタのデータがバス(Q0 ~ Q7)に出力されます。
配線図
コード
注釈
esp32-starter-kit-main\c\codes\2.4_74hc595
のパスの下にある2.4_74hc595.ino
ファイルを開きます。ボード(ESP32 Dev Module)を選択し、適切なポートを選んだ後、 アップロード ボタンをクリックします。
コードをESP32ボードにアップロードすると、LEDが次々と点灯するのを見ることができます。
どのように動作するのか?
74HC595で制御される8つのLEDの作業状態を変更するために使用されるいくつかの8ビットバイナリ数値を格納するために配列を宣言します。
int datArray[] = {B00000000, B00000001, B00000011, B00000111, B00001111, B00011111, B00111111, B01111111, B11111111};
loop()
関数。void loop() { for(int num = 0; num <10; num++) { digitalWrite(STcp,LOW); //Set ST_CP and hold low for as long as you are transmitting shiftOut(DS,SHcp,MSBFIRST,datArray[num]); digitalWrite(STcp,HIGH); //pull the ST_CPST_CP to save the data delay(1000); } }
datArray[]
を反復し、バイナリ値をシフトレジスタに順次送信します。digitalWrite(STcp, LOW)
とdigitalWrite(STcp, HIGH)
の命令でデータがストレージレジスタにラッチされます。shiftOut()
関数は、データピン(DS)とシフトレジスタクロックピン(SHcp)を使用して、datArray[]
からバイナリ値をシフトレジスタに送信します。MSBFIRST
は高ビットから移動することを意味します。LEDパターンの更新間に1秒の一時停止を作ります。