Кодты іздеу

ESP32 оқулығы 18/55 - ESP32 көмегімен қисаюды анықтау | SunFounder компаниясының ESP32 IoT оқу жинағы

ESP32 оқулығы 18/55 - ESP32 көмегімен қисаюды анықтау | SunFounder компаниясының ESP32 IoT оқу жинағы

Бұл оқулықта біз SunFounder ESP32 микроконтроллерін қолданып, еңкейту қосқышы арқылы еңкейтуді анықтайтын қарапайым жоба жасаймыз. Еңкейту қосқышы іске қосылғанда, LED сөнеді, ал ол тік күйінде болғанда, LED жанады. Бұл жоба еңкейту сенсорларымен жұмыс істеуге тамаша кіріспе ғана емес, сонымен қатар әртүрлі робототехника қосымшаларына негіз болады. Егжей-тегжейлі көрнекі нұсқаулық үшін жоғарыда көрсетілген бейнені міндетті түрде қараңыз (бейнеде 00:00).

еңкейту_қосқышы

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

Бұл жобада қолданылатын негізгі компоненттерге ESP32 микроконтроллері, еңкейту қосқышы және LED жатады. ESP32 - кірістірілген Wi-Fi және Bluetooth бар қуатты микроконтроллер, бұл оны IoT қосымшалары үшін өте қолайлы етеді. Еңкейту қосқышы - ішінде металл шар бар қарапайым құрылғы. Еңкейтілген кезде шар қозғалады және тізбекті үзеді, бұл бізге еңкейту күйін анықтауға мүмкіндік береді. LED қосқыштың күйіне байланысты еңкейту күйін көрнекі түрде көрсетеді. Осы компоненттерден басқа, біз токты шектеу және төмен тарту (pull-down) үшін резисторларды да қолданамыз. LED-ге қосылған 220 Ом резистор LED-тің тым көп ток тұтынбай қауіпсіз жұмыс істеуін қамтамасыз етеді. 10к Ом резистор еңкейту қосқышы үшін төмен тарту (pull-down) ретінде әрекет етеді, қосқыш іске қосылмаған кезде кіріс пинінің белгілі күйді оқуын қамтамасыз етеді.

Деректер парағының мәліметтері

Өндіруші SunFounder
Бөлшек нөмірі ESP32
Логика/IO кернеуі 3.3 В
Қоректендіру кернеуі 5 В
Шығыс тогы (арнаға) 12 мА
Ең жоғары ток (арнаға) 40 мА
PWM жиілігі бойынша нұсқау 1 кГц
Кіріс логикалық шектері 0.8 В (төмен), 2.0 В (жоғары)
Кернеу төмендеуі / RDS(on) / қанығу 0.2 В
Жылулық шектер 85 °C
Қаптама ESP32 модулі
Ескертулер / нұсқалар Wi-Fi және Bluetooth мүмкіндіктерін қамтиды

 

  • LED-ті зақымданудан қорғау үшін дұрыс резистор мәндерін қамтамасыз етіңіз.
  • Қысқа тұйықталуды болдырмау үшін сымдарды ұқыпты ұстаңыз.
  • Еңкейту қосқышынан тұрақты көрсеткіштерді қамтамасыз ету үшін төмен тарту (pull-down) резисторларын қолданыңыз.
  • Компоненттердің істен шығуын болдырмау үшін тізбекті қуаттандыру алдында қосылымдарды тексеріңіз.
  • Дәл жұмыс істеуі үшін еңкейту қосқышының бағытын тексеріңіз.

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

ESP32-18_tile_wiring

Компоненттерді қосу үшін полярлығы жоқ еңкейту қосқышынан бастаңыз, сондықтан оны кез келген бағытта қосуға болады. Еңкейту қосқышының бір пинін 3.3В қоректендіруге, ал екінші пинін ESP32-дегі 14 пинге қосыңыз. Қосқыш іске қосылмаған кезде 14 пиннің белгілі күйді оқуын қамтамасыз ету үшін сол пиннен жерге 10к Ом резистор қосыңыз. Әрі қарай, LED-ті алып, оны ұзын аяғымен (анод) 220 Ом резисторға қосып, макет тақтасына орнатыңыз. Резистордың екінші ұшын ESP32-дегі 26 пинге қосыңыз. LED-тің қысқа аяғы (катод) жерге қосылуы керек. Соңында, ESP32-нің жер пинін макет тақтасының жер шинасына және 3.3В пинін қуат шинасына қосыңыз. Қысқа тұйықталуды немесе қате көрсеткіштерді болдырмау үшін барлық қосылымдарды қайта тексеріңіз. Осы қадамдарды орындасаңыз, бағдарламалауға дайын функционалды еңкейту сенсорын орнатуыңыз болады.

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

Код еңкейту қосқышы мен LED үшін пин нөмірлерін анықтаудан басталады. Еңкейту қосқышы 14 пинге, ал LED 26 пинге қосылған. Еңкейту қосқышының күйі tiltState айнымалысында сақталады.


// Пин нөмірлерін орнату
const int tiltPin = 14;  // Еңкейту қосқышы
const int ledPin = 26;   // LED

// Еңкейту күйін сақтауға арналған айнымалы
int tiltState = 0;

Бұл үзінді пин тағайындауларын және еңкейту күйін бақылайтын айнымалының декларациясын көрсетеді. tiltPin қосқыш күйін оқу үшін кіріс ретінде орнатылған. setup() функциясында сериялық байланыс инициализацияланады және еңкейту қосқышы мен LED үшін пин режимдері орнатылады. Бұл ESP32-нің еңкейту қосқышынан кіріс оқуын және LED-ті сәйкесінше басқаруын қамтамасыз етеді.


void setup() {
  Serial.begin(115200);
  // Еңкейту пинін кіріс ретінде инициализациялау
  pinMode(tiltPin, INPUT);
  // LED пинін шығыс ретінде инициализациялау
  pinMode(ledPin, OUTPUT);
}

Бұл бөлім өте маңызды, себебі ол ортаны орнатады, ESP32-ге тиімді байланысуға және еңкейту қосқышының күйіне негізделген шығысты басқаруға мүмкіндік береді. loop() функциясы еңкейту қосқышының күйін үздіксіз тексереді. Егер қосқыш тік болса, LED жанады; еңкейтілген болса, LED сөнеді. Ағымдағы күй қателерді жою үшін сериялық мониторға басып шығарылады.


void loop() {
  // Еңкейту қосқышының күйін оқу
  tiltState = digitalRead(tiltPin);

  Serial.println(tiltState);
  // Егер қосқыш тік болса
  if (tiltState == HIGH) {
    // LED-ті қосу
    digitalWrite(ledPin, HIGH);
  } else {
    // LED-ті өшіру
    digitalWrite(ledPin, LOW);
  }
}

Бұл цикл үздіксіз жұмыс істейді, еңкейту қосқышының күйін нақты уақытта бақылауға және LED-ті сәйкесінше басқаруға мүмкіндік береді. Шығысты сериялық монитордан байқауға болады, бұл функционалдылықты тексеруді жеңілдетеді.

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

Барлығы дұрыс жалғанғанда және код жүктелгенде, қисаю қосқышы тік тұрғанда жарықдиодтың жанатынын көруіңіз керек, ал қисайтқанда ол сөнеді. Қисаю күйі мен жарықдиод жауабы арасындағы бұл тікелей байланыс қисаю қосқышының жұмысын тиімді көрсетеді. Жиі кездесетін қателіктерге сымдардың дұрыс жалғануын қамтамасыз ету және қысқа тұйықталуды болдырмау үшін резисторлардың дұрыс орналастырылғанын тексеру жатады (бейнеде 12:00).

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

  • 00:00 Басталуы
  • 1:44 Жобамен таныстыру
  • 2:49 Құжаттама
  • 6:43 Arduino сымдарының түсіндірмесі
  • 10:39 Arduino кодының түсіндірмесі
  • 13:40 Arduino IDE-де ESP32 платасын және COM портын таңдау
  • 15:22 Жобаның қисаюын көрсету

Суреттер

ESP32-18_tile_wiring
ESP32-18_tile_wiring
tilt_switch
tilt_switch
ESP32-18_tile_schematic
ESP32-18_tile_schematic
817-ESP32 Tutorial 18/55- Arduino code for tilt sensor
Тіл: C++
// Set pin numbers
const int tiltPin = 14;  // Tilt Switch
const int ledPin = 26;   // LED

// Variable for storing the tilt status
int tiltState = 0;

void setup() {
  Serial.begin(115200);
  // Initialize the tilt pin as an input
  pinMode(tiltPin, INPUT);
  // Initialize the LED pin as an output
  pinMode(ledPin, OUTPUT);
}

void loop() {
  // Read the state of the tilt switch
  tiltState = digitalRead(tiltPin);

  Serial.println(tiltState);
  // If the switch is upright
  if (tiltState == HIGH) {
    // Turn LED on
    digitalWrite(ledPin, HIGH);

  } else {
    // Turn LED off
    digitalWrite(ledPin, LOW);
  }
}

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

Файлдар📁

Файлдар жоқ.