Search Code

ESP32 оқулығы 7/55 - ESP32 Arduino бағдарламалауында массивті қолдану - SunFounder ESP32 IoT оқу жиынтығы

ESP32 оқулығы 7/55 - ESP32 Arduino бағдарламалауында массивті қолдану - SunFounder ESP32 IoT оқу жиынтығы

Бұл оқулықта біз ESP32 Arduino бағдарламалауында массивтерді қалай қолдану керектігін қарастырамыз. Массивтер бір айнымалыда бірнеше мәнді сақтауға мүмкіндік береді, бұл деректерді басқаруды жеңілдетеді, әсіресе ұқсас элементтер жиынтығымен жұмыс істегенде. Бұл оқулық массивтерді анықтау, қол жеткізу және өзгерту, сондай-ақ олармен тиімді әрекеттесу үшін циклдарды пайдалану арқылы сізді бағыттайды. Осы тұжырымдамаларды түсіну ESP32-мен бағдарламалау қабілетіңізді айтарлықтай арттырады.

Біз әсіресе массив элементтерін қайталау үшін for, while және do while сияқты әртүрлі цикл түрлерін қолдануды қарастырамыз. Бұл тапсырмаларды автоматтандыруға және бағдарламаларыңызды тиімдірек етуге көмектеседі. Осы тұжырымдамаларды іс жүзінде көру үшін практикалық демонстрация үшін 2:30-дағы бейнені міндетті түрде тексеріңіз.

Аппараттық құрал түсіндірмесі

Бұл оқулықта қолданатын негізгі аппараттық құрамдас ESP32 микроконтроллері болып табылады. ESP32 - бұл Wi-Fi және Bluetooth мүмкіндіктеріне ие қуатты, арзан микроконтроллер, оны IoT қолданбаларының кең ауқымына қолайлы етеді. Плата Arduino Uno-ға ұқсас тапсырмаларды орындай алады, сонымен қатар бұлттық байланыс сияқты қосымша функцияларды ұсынады.

Осы нақты оқулықта біз цифрлық түйреуіштер арқылы шығыстарды басқару үшін массивті қолданамыз. Әрбір түйреуіш жоғары немесе төмен етіп орнатылуы мүмкін, бұл массивте сақталған деректерге негізделген әртүрлі үлгілерді немесе мінез-құлықтарды жасауға мүмкіндік береді. ESP32-нің GPIO түйреуіштері шығыс үшін конфигурацияланады, бұл қосылған құрылғыларды немесе компоненттерді басқаруға мүмкіндік береді.

Сым қосу нұсқаулары

ESP32-07_74HC595_walking_light_wiring

Осы оқулық үшін ESP32-ді сымдау үшін цифрлық түйреуіштерді қосудан бастаңыз. STcp түйреуішін (27) ауысым регистрінің ST_CP түйреуішіне қосыңыз. SHcp түйреуіші (26) ауысым регистрінің SH_CP түйреуішіне қосылуы керек. Соңында, DS түйреуішін (25) ауысым регистрінің DS түйреуішіне қосыңыз. ESP32-нің жері ауысым регистрінің жеріне қосылғанына көз жеткізіңіз, бұл ортақ анықтаманы қамтамасыз етеді.

ESP32-ді тұрақты 3.3 В қоректендіру көзімен қуаттандырыңыз. Егер қосымша компоненттерді қолдансаңыз, олардың ESP32-нің кернеу деңгейлеріне сәйкес келетініне көз жеткізіңіз. Жүйені қосу алдында қосылымдарыңызды екі рет тексеру маңызды, ықтимал зақымдануды болдырмау үшін (бейнеде 4:10).

Код мысалдары және түсіндірме

Берілген код үзіндісінде біз екілік мәндерді сақтайтын datArray деп аталатын массивті анықтаймыз. Массивтегі әрбір мән GPIO түйреуіштері арқылы шығарылуы мүмкін әртүрлі үлгіге сәйкес келеді. Массив келесідей анықталады:

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

Бұл массив екілік көріністерді қамтиды, мұнда әрбір бит түйреуіш күйіне (қосулы немесе өшірулі) сәйкес келеді. loop() функциясында біз for циклін қолданып, осы үлгілерді шығару үшін массивті қайталаймыз:

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

Бұл циклде біз datArray-дан ауысым регистріне деректерді үздіксіз жібереміз, жүретін жарық эффектісін жасаймыз. delay(1000) әрбір үлгі арасында үзіліс енгізеді, өзгерістердің көрінуіне мүмкіндік береді. Толық код үшін төменде қараңыз, ол динамикалық түрде жүктеледі.

Демонстрация / Не күтуге болады

Сымды қосуды аяқтап, кодты жүктегеннен кейін қосылған құрылғыларда жүретін жарық эффектісін көруіңіз керек. Массивтегі әрбір бит ретімен жанады, көзге тартымды үлгі жасайды. Қайта қосылған қосылымдардан сақ болыңыз, өйткені олар күтпеген мінез-құлыққа әкелуі мүмкін (бейнеде 8:15).

Бейне уақыт белгілері

  • 00:00 Бастау
  • 1:24 Кіріспе
  • 3:15 74HC595 ауысым регистрі чипі
  • 5:25 Жүретін жарық сымдары
  • 18:56 74HC595 үшін Arduino коды түсіндірілді
  • 24:24 Жобаның демонстрациясы
  • 25:49 кодты түзету
  • 28:11 Жарық алға-артқа қозғалады
  • 30:28 Жүретін жарық

Суреттер

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
Тіл: 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);
  }
}

Ресурстар мен сілтемелер

Файлдар📁

Файлдар жоқ.