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:
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).
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);
}
}