Szukaj kodu

Samouczek ESP32 7/55 - Używanie tablic w programowaniu ESP32 z Arduino - zestaw edukacyjny SunFounder ESP32 IoT

Samouczek ESP32 7/55 - Używanie tablic w programowaniu ESP32 z Arduino - zestaw edukacyjny SunFounder ESP32 IoT

W tym samouczku omówimy, jak używać tablic w programowaniu ESP32 w Arduino. Tablice pozwalają przechowywać wiele wartości w jednej zmiennej, co ułatwia zarządzanie danymi, zwłaszcza gdy mamy do czynienia z kolekcjami podobnych elementów. Ten samouczek przeprowadzi Cię przez definiowanie, dostęp do tablic i ich modyfikowanie, a także wykorzystanie pętli do skutecznej pracy z nimi. Zrozumienie tych koncepcji znacznie zwiększy Twoje możliwości programowania z ESP32.

Omówimy konkretnie użycie różnych typów pętli, takich jak for, while i do while, do iteracji przez elementy tablicy. Pomoże Ci to automatyzować zadania i uczynić programy bardziej wydajnymi. Aby zobaczyć te koncepcje w praktyce, obejrzyj wideo na 2:30, gdzie znajduje się praktyczna demonstracja.

Omówienie sprzętu

Głównym elementem sprzętowym, którego użyjemy w tym samouczku, jest mikrokontroler ESP32. ESP32 to wydajny, niedrogi mikrokontroler wyposażony w Wi-Fi i Bluetooth, co czyni go odpowiednim do szerokiego zakresu aplikacji IoT. Płytka może wykonywać zadania podobne do Arduino Uno, oferując dodatkowe funkcje, takie jak łączność z chmurą.

W tym konkretnym samouczku użyjemy tablicy do sterowania wyjściami przez piny cyfrowe. Każdy pin można ustawić w stan wysoki lub niski, co pozwala tworzyć różne wzorce lub zachowania na podstawie danych przechowywanych w tablicy. Piny GPIO ESP32 zostaną skonfigurowane jako wyjścia, umożliwiając sterowanie podłączonymi urządzeniami lub komponentami.

Instrukcje podłączenia

ESP32-07_74HC595_walking_light_wiring

Aby podłączyć ESP32 do tego samouczka, zacznij od połączenia pinów cyfrowych. Podłącz pin STcp (27) do pinu ST_CP rejestru przesuwnego. Pin SHcp (26) należy podłączyć do pinu SH_CP rejestru przesuwnego. Na koniec podłącz pin DS (25) do pinu DS rejestru przesuwnego. Upewnij się, że masa ESP32 jest połączona z masą rejestru przesuwnego, aby zapewnić wspólny punkt odniesienia.

Zasilaj ESP32 stabilnym napięciem 3,3 V. Jeśli używasz dodatkowych komponentów, upewnij się, że są one kompatybilne z poziomami napięć ESP32. Ważne jest, aby dokładnie sprawdzić połączenia przed włączeniem systemu, aby uniknąć potencjalnych uszkodzeń (na wideo o 4:10).

Przykłady kodu i omówienie

W podanym fragmencie kodu definiujemy tablicę o nazwie datArray, która przechowuje wartości binarne. Każda wartość w tablicy odpowiada innemu wzorcowi, który może być wyprowadzony przez piny GPIO. Tablica jest zdefiniowana w następujący sposób:

int datArray[] = {B00000000, B00000001, B00000011, B00000111, B00001111, B00011111, B00111111, B01111111, B11111111};

Ta tablica zawiera reprezentacje binarne, gdzie każdy bit odpowiada stanowi pinu (włączony lub wyłączony). W funkcji loop() iterujemy przez tablicę, aby wyprowadzić te wzorce za pomocą pętli for:

for(int num = 0; num < 10; num++) {
    digitalWrite(STcp, LOW); 
    shiftOut(DS, SHcp, MSBFIRST, datArray[num]);
    digitalWrite(STcp, HIGH); 
    delay(1000);
}

W tej pętli ciągle wysyłamy dane z datArray do rejestru przesuwnego, tworząc efekt przesuwającego się światła. delay(1000) wprowadza pauzę między każdym wzorcem, umożliwiając zauważenie zmian. Pełny kod znajdziesz poniżej, ponieważ zostanie załadowany dynamicznie.

Demonstracja / Czego się spodziewać

Po zakończeniu podłączania i wgraniu kodu powinieneś zobaczyć efekt przesuwającego się światła na podłączonych urządzeniach. Każdy bit w tablicy zaświeci się sekwencyjnie, tworząc wizualnie atrakcyjny wzorzec. Zachowaj ostrożność przy odwróconych połączeniach, ponieważ mogą one prowadzić do nieoczekiwanego zachowania (na wideo o 8:15).

Znaczniki czasu wideo

  • 00:00 Start
  • 1:24 Wprowadzenie
  • 3:15 Układ 74HC595 rejestr przesuwny
  • 5:25 Podłączenie przesuwającego się światła
  • 18:56 Wyjaśnienie kodu Arduino dla 74HC595
  • 24:24 Demonstracja projektu
  • 25:49 Poprawianie kodu
  • 28:11 Światło porusza się tam i z powrotem
  • 30:28 Przesuwające się światło

Obrazy

ESP32-07_74HC595_walking_light_wiring
ESP32-07_74HC595_walking_light_wiring
ESP32-07_74HC595_walking_light_schematic
ESP32-07_74HC595_walking_light_schematic
807-ESP32 Tutorial 7/55 - Walking Light using 74HC595 and learn array
Język: C++
const int STcp = 27;//ST_CP
const int SHcp = 26;//SH_CP 
const int DS = 25; //DS 

int datArray[] = {B00000000, B00000001, B00000011, B00000111, B00001111, B00011111, B00111111, B01111111, B11111111};

void setup ()
{
  //set pins to output
  pinMode(STcp,OUTPUT);
  pinMode(SHcp,OUTPUT);
  pinMode(DS,OUTPUT);
}
void loop()
{
  for(int num = 0; num <10; num++)
  {
    digitalWrite(STcp,LOW); //ground 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);
  }
}

Zasoby i odniesienia

Pliki📁

Brak dostępnych plików.