Search Code

Návod na ESP32 7/55 - Používanie poľa s programovaním ESP32 Arduino - výučbová súprava ESP32 IoT od SunFounder

Návod na ESP32 7/55 - Používanie poľa s programovaním ESP32 Arduino - výučbová súprava ESP32 IoT od SunFounder

V tomto návode si ukážeme, ako používať polia v programovaní ESP32 v Arduine. Polia vám umožňujú uložiť viacero hodnôt do jednej premennej, čo uľahčuje správu údajov, najmä pri práci s kolekciami podobných položiek. Tento návod vás prevedie definovaním, prístupom k poliam a ich úpravou, ako aj využitím cyklov na efektívnu prácu s nimi. Pochopenie týchto konceptov výrazne zlepší vašu schopnosť programovať s ESP32.

Konkrétne sa zameriame na používanie rôznych typov cyklov, ako sú for, while a do while, na prechádzanie prvkami poľa. To vám pomôže automatizovať úlohy a zefektívniť vaše programy. Ak chcete vidieť tieto koncepty v praxi, nezabudnite si pozrieť video v čase 2:30 pre praktickú ukážku.

Vysvetlenie hardvéru

Hlavným hardvérovým komponentom, ktorý budeme používať v tomto návode, je mikrokontrolér ESP32. ESP32 je výkonný a lacný mikrokontrolér, ktorý ponúka funkcie Wi-Fi aj Bluetooth, vďaka čomu je vhodný pre širokú škálu IoT aplikácií. Doska dokáže vykonávať úlohy podobné Arduinu Uno a zároveň ponúka ďalšie funkcie, ako je pripojenie do cloudu.

V tomto konkrétnom návode použijeme pole na ovládanie výstupov cez digitálne piny. Každý pin môže byť nastavený na vysokú alebo nízku úroveň, čo nám umožňuje vytvárať rôzne vzory alebo správanie na základe údajov uložených v poli. GPIO piny ESP32 budú nakonfigurované ako výstupy, čo nám umožní ovládať pripojené zariadenia alebo komponenty.

Pokyny na zapojenie

ESP32-07_74HC595_walking_light_wiring

Na zapojenie ESP32 pre tento návod začnite pripojením digitálnych pinov. Pripojte pin STcp (27) na pin ST_CP vášho posuvného registra. Pin SHcp (26) by mal byť pripojený na pin SH_CP posuvného registra. Nakoniec pripojte pin DS (25) na pin DS posuvného registra. Uistite sa, že uzemnenie ESP32 je pripojené k uzemneniu posuvného registra, aby ste zabezpečili spoločný referenčný bod.

Nezabudnite napájať ESP32 stabilným napätím 3,3 V. Ak používate ďalšie komponenty, uistite sa, že sú kompatibilné s napäťovými úrovňami ESP32. Je dôležité skontrolovať zapojenie pred zapnutím systému, aby ste predišli možnému poškodeniu (vo videu v čase 4:10).

Príklady kódu a vysvetlenie

V poskytnutom úryvku kódu definujeme pole s názvom datArray, ktoré obsahuje binárne hodnoty. Každá hodnota v poli zodpovedá inému vzoru, ktorý možno výstupovať cez GPIO piny. Pole je definované takto:

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

Toto pole obsahuje binárne reprezentácie, kde každý bit zodpovedá stavu pinu (zapnutý alebo vypnutý). Vo funkcii loop() prechádzame pole a výstupujeme tieto vzory pomocou cyklu for:

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

V tomto cykle nepretržite posielame dáta z datArray do posuvného registra, čím vytvárame efekt bežiaceho svetla. Funkcia delay(1000) vkladá pauzu medzi jednotlivé vzory, aby boli zmeny viditeľné. Pre celý kód sa pozrite nižšie, pretože sa načíta dynamicky.

Ukážka / Čo očakávať

Po dokončení zapojenia a nahraní kódu by ste mali vidieť efekt bežiaceho svetla na pripojených zariadeniach. Každý bit v poli sa postupne rozsvieti, čím vytvorí vizuálne zaujímavý vzor. Buďte opatrní pri obrátených pripojeniach, pretože môžu viesť k neočakávanému správaniu (vo videu v čase 8:15).

Časové značky videa

  • 00:00 Začiatok
  • 1:24 Úvod
  • 3:15 Čip posuvného registra 74HC595
  • 5:25 Zapojenie bežiaceho svetla
  • 18:56 Vysvetlenie kódu Arduina pre 74HC595
  • 24:24 Ukážka projektu
  • 25:49 Oprava kódu
  • 28:11 Svetlo sa pohybuje tam a späť
  • 30:28 Bežiace svetlo

Images

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

Resources & references

Files📁

No files available.