.. note:: こんにちは、SunFounderのRaspberry Pi & Arduino & ESP32愛好家コミュニティへようこそ!Facebook上でRaspberry Pi、Arduino、ESP32についてもっと深く掘り下げ、他の愛好家と交流しましょう。 **参加する理由は?** - **エキスパートサポート**:コミュニティやチームの助けを借りて、販売後の問題や技術的な課題を解決します。 - **学び&共有**:ヒントやチュートリアルを交換してスキルを向上させましょう。 - **独占的なプレビュー**:新製品の発表や先行プレビューに早期アクセスしましょう。 - **特別割引**:最新製品の独占割引をお楽しみください。 - **祭りのプロモーションとギフト**:ギフトや祝日のプロモーションに参加しましょう。 👉 私たちと一緒に探索し、創造する準備はできていますか?[|link_sf_facebook|]をクリックして今すぐ参加しましょう! .. _ar_74hc595: 2.4 マイクロチップ - 74HC595 =============================== このエキサイティングなプロジェクトへようこそ!このプロジェクトでは、74HC595チップを使用して8つのLEDの流れるような表示を制御します。 このプロジェクトを起動すると、8つのLED間で飛び交うかのような魅惑的な光の流れが目の前に広がります。一つ一つのLEDが順に点灯し、すぐに消えていく間に、次のLEDが輝き続け、美しくダイナミックな効果を生み出します。 74HC595チップを巧みに利用することで、複数のLEDのオン/オフ状態を制御し、流れるような効果を実現できます。このチップには複数の出力ピンがあり、LEDの点灯順序を制御するために直列に接続できます。さらに、チップの拡張性により、流れる表示にさらに多くのLEDを簡単に追加し、より壮観な効果を作り出すことができます。 **必要な部品** このプロジェクトには以下のコンポーネントが必要です。 一式を購入するのが便利です。こちらがリンクです: .. list-table:: :widths: 20 20 20 :header-rows: 1 * - 名前 - このキットのアイテム - リンク * - ESP32 Starter Kit - 320+ - |link_esp32_starter_kit| もちろん、以下のリンクから個別に購入することもできます。 .. list-table:: :widths: 30 20 :header-rows: 1 * - コンポーネントの紹介 - 購入リンク * - :ref:`cpn_esp32_wroom_32e` - |link_esp32_wroom_32e_buy| * - :ref:`cpn_esp32_camera_extension` - |link_esp32_extension_board| * - :ref:`cpn_breadboard` - |link_breadboard_buy| * - :ref:`cpn_wires` - |link_wires_buy| * - :ref:`cpn_resistor` - |link_resistor_buy| * - :ref:`cpn_led` - |link_led_buy| * - :ref:`cpn_74hc595` - |link_74hc595_buy| **利用可能なピン** このプロジェクトでESP32ボードに利用可能なピンのリストです。 .. list-table:: :widths: 5 20 * - 利用可能なピン - IO13, IO12, IO14, IO27, IO26, IO25, IO33, IO32, IO15, IO2, IO0, IO4, IO5, IO18, IO19, IO21, IO22, IO23 **回路図** .. image:: ../../img/circuit/circuit_2.4_74hc595_led.png :width: 600 * MR(ピン10)がハイレベルで、CE(ピン13)がローレベルのとき、SHcpの立ち上がりエッジでデータが入力され、SHcpの立ち上がりエッジを通してメモリレジスタに移動します。 * 2つのクロックを接続すると、シフトレジスタはメモリレジスタよりも常に1パルス早くなります。 * メモリレジスタには、シリアルシフト入力ピン(DS)、シリアル出力ピン(Q7')、非同期リセットボタン(ローレベル)があります。 * メモリレジスタは、3状態の並列8ビットバスを出力します。 * OEが有効(ローレベル)のとき、メモリレジスタのデータがバス(Q0 ~ Q7)に出力されます。 **配線図** .. image:: ../../img/wiring/2.4_74hc595_bb.png :width: 800 **コード** .. note:: * ``esp32-starter-kit-main\c\codes\2.4_74hc595`` のパスの下にある ``2.4_74hc595.ino`` ファイルを開きます。 * ボード(ESP32 Dev Module)を選択し、適切なポートを選んだ後、 **アップロード** ボタンをクリックします。 * :ref:`unknown_com_port` .. raw:: html コードをESP32ボードにアップロードすると、LEDが次々と点灯するのを見ることができます。 **どのように動作するのか?** #. 74HC595で制御される8つのLEDの作業状態を変更するために使用されるいくつかの8ビットバイナリ数値を格納するために配列を宣言します。 .. code-block:: arduino int datArray[] = {B00000000, B00000001, B00000011, B00000111, B00001111, B00011111, B00111111, B01111111, B11111111}; #. ``loop()`` 関数。 .. code-block:: arduino 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秒の一時停止を作ります。