.. note:: Hallo und willkommen in der SunFounder Raspberry Pi & Arduino & ESP32 Enthusiasten-Gemeinschaft auf Facebook! Tauchen Sie tiefer ein in die Welt von Raspberry Pi, Arduino und ESP32 mit anderen Enthusiasten. **Warum beitreten?** - **Expertenunterstützung**: Lösen Sie Nachverkaufsprobleme und technische Herausforderungen mit Hilfe unserer Gemeinschaft und unseres Teams. - **Lernen & Teilen**: Tauschen Sie Tipps und Anleitungen aus, um Ihre Fähigkeiten zu verbessern. - **Exklusive Vorschauen**: Erhalten Sie frühzeitigen Zugang zu neuen Produktankündigungen und exklusiven Einblicken. - **Spezialrabatte**: Genießen Sie exklusive Rabatte auf unsere neuesten Produkte. - **Festliche Aktionen und Gewinnspiele**: Nehmen Sie an Gewinnspielen und Feiertagsaktionen teil. 👉 Sind Sie bereit, mit uns zu erkunden und zu erschaffen? Klicken Sie auf [|link_sf_facebook|] und treten Sie heute bei! .. _ar_74hc595: 2.4 Microchip - 74HC595 =========================== Willkommen bei diesem aufregenden Projekt! In diesem Projekt verwenden wir den 74HC595-Chip, um eine fließende Anzeige von 8 LEDs zu steuern. Stellen Sie sich vor, Sie starten dieses Projekt und beobachten einen faszinierenden Lichtfluss, als ob ein funkelnder Regenbogen zwischen den 8 LEDs springt. Jede LED leuchtet nacheinander auf und verblasst schnell, während die nächste LED weiterhin leuchtet und einen wunderschönen und dynamischen Effekt erzeugt. Durch geschickte Nutzung des 74HC595-Chips können wir die Ein- und Ausschaltzustände mehrerer LEDs steuern, um den fließenden Effekt zu erzielen. Dieser Chip verfügt über mehrere Ausgangspins, die in Serie geschaltet werden können, um die Reihenfolge der LED-Beleuchtung zu steuern. Darüber hinaus können wir dank der Erweiterbarkeit des Chips problemlos weitere LEDs zur fließenden Anzeige hinzufügen und noch spektakulärere Effekte erzielen. **Benötigte Komponenten** Für dieses Projekt benötigen wir die folgenden Komponenten. Es ist definitiv praktisch, ein ganzes Kit zu kaufen. Hier ist der Link: .. list-table:: :widths: 20 20 20 :header-rows: 1 * - Name - ARTIKEL IN DIESEM KIT - LINK * - ESP32 Starter Kit - 320+ - |link_esp32_starter_kit| Sie können sie auch einzeln über die unten stehenden Links kaufen. .. list-table:: :widths: 30 20 :header-rows: 1 * - KOMPONENTENVORSTELLUNG - KAUF-LINK * - :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| **Verfügbare Pins** Hier ist eine Liste der verfügbaren Pins auf dem ESP32-Platine für dieses Projekt. .. list-table:: :widths: 5 20 * - Verfügbare Pins - IO13, IO12, IO14, IO27, IO26, IO25, IO33, IO32, IO15, IO2, IO0, IO4, IO5, IO18, IO19, IO21, IO22, IO23 **Schaltplan** .. image:: ../../img/circuit/circuit_2.4_74hc595_led.png :width: 600 * Wenn MR (Pin10) auf hohem Pegel ist und CE (Pin13) auf niedrigem Pegel ist, wird die Daten beim Anstieg der SHcp eingegeben und geht durch den Anstieg der SHcp in das Speicherregister. * Wenn die beiden Takte miteinander verbunden sind, ist der Schieberegister immer einen Takt früher als das Speicherregister. * Im Speicherregister befinden sich ein serieller Schiebeeingangspin (DS), ein serieller Ausgangspin (Q7') und ein asynchroner Rücksetzknopf (niedriger Pegel). * Das Speicherregister gibt einen Bus mit parallel 8 Bit und in drei Zuständen aus. * Wenn OE aktiviert ist (niedriger Pegel), werden die Daten im Speicherregister auf den Bus (Q0 ~ Q7) ausgegeben. **Verdrahtung** .. image:: ../../img/wiring/2.4_74hc595_bb.png :width: 800 **Code** .. note:: * Öffnen Sie die Datei ``2.4_74hc595.ino`` im Pfad ``esp32-starter-kit-main\c\codes\2.4_74hc595``. * Wählen Sie das Board (ESP32 Dev Module) und den entsprechenden Port aus, klicken Sie dann auf die Schaltfläche **Upload**. * :ref:`unknown_com_port` .. raw:: html Nachdem Sie den Code auf das ESP32-Platine hochgeladen haben, können Sie sehen, wie die LEDs nacheinander eingeschaltet werden. **Wie funktioniert das?** #. Deklarieren Sie ein Array, um mehrere 8-Bit-Binärzahlen zu speichern, die verwendet werden, um den Arbeitszustand der acht LEDs zu ändern, die von 74HC595 gesteuert werden. .. code-block:: arduino int datArray[] = {B00000000, B00000001, B00000011, B00000111, B00001111, B00011111, B00111111, B01111111, B11111111}; #. ``loop()`` Funktion. .. 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); } } * Durchläuft das Array ``datArray[]`` und sendet nacheinander die binären Werte an das Schieberegister. * Die Befehle ``digitalWrite(STcp, LOW)`` und ``digitalWrite(STcp, HIGH)`` speichern die Daten im Speicherregister. * Die Funktion ``shiftOut()`` sendet die binären Werte aus ``datArray[]`` an das Schieberegister unter Verwendung des Datenpins (DS) und des Schieberegister-Takt-Pins (SHcp). ``MSBFIRST`` bedeutet, dass die Übertragung von den höchsten Bits erfolgt. * Erzeugt dann eine 1-sekündige Pause zwischen jedem Aktualisieren des LED-Musters.