Kirish: Arduino 101 asoslari Eliesalame


Murakkab arifmetik yoki murakkab topshiriqlar


Download 329 Kb.
bet9/9
Sana13.12.2022
Hajmi329 Kb.
#999315
1   2   3   4   5   6   7   8   9
Bog'liq
2-amaliyot barno

Murakkab arifmetik yoki murakkab topshiriqlar:
Bular arifmetik tenglamaning qisqartmasi. Ularni arifmetik tenglama bilan osongina almashtirish mumkin, lekin ular kodda yanada chiroyli ko'rinadi:
a ++ a=a+1 bilan bir xil a +1 ga oshiradi
a -- a=a-1 bilan bir xil a -1 ga kamayadi a += b a=a+b bilan bir xil a+ba ga oshiradi -= b Xuddi shu a=ab sifatida a ga –ba ga kamayadi *= b a=a*b bilan bir xil a a*ba ga oshiradi /= b a=a/b bilan bir xil a a/b ga kamayadi
Keling, eskizga qaytaylik:
int taymer = 100;
Taymer deb nomlangan int tipidagi o'zgaruvchini 100 qiymati bilan e'lon qiling. Bu keyinchalik Cylon effektini yaratish uchun taymer sifatida ishlatiladi.
bekor o'rnatish() {
uchun (int thisPin = 2; thisPin < 8; thisPin++) {
pinMode (thisPin, OUTPUT);
}
}
Bu for loopidan juda qiziqarli foydalanish. Arduino-da pin rejimlarini OUTPUT ga o'rnatish uchun biz for tsiklidan foydalanamiz. Bu faqat biz foydalanadigan pinlar ketma-ketlikda bo'lsa ishlaydi, biz 2 dan 7 gacha bo'lgan pinlardan foydalanamiz. Bu for loop quyidagi qatorlarni almashtirdi:

  • pinMode (2, OUTPUT);

  • pinMode (3, OUTPUT);

  • pinMode (4, OUTPUT);

  • pinMode (5, OUTPUT);

  • pinMode (6, OUTPUT);

  • pinMode (7, OUTPUT);

void loop() {
uchun (int thisPin = 2; thisPin < 8; thisPin++) {
digitalWrite(thisPin, HIGH);
kechikish (taymer);
digitalWrite (thisPin, LOW);
}
uchun (int thisPin = 7; thisPin >= 2; thisPin--) {
digitalWrite(thisPin, HIGH);
kechikish (taymer);
digitalWrite (thisPin, LOW);
}
}
Ushbu mashqning maqsadi LEDlarni birma-bir chapdan o'ngga, keyin o'ngdan chapga Cylon effekti yoki Knight chavandoz effektini yoqishdir.
Biz bu effektni yorug'likni o'ngdan chapga siljitish uchun bir marta ikkita for loop yaratib, chiroqlarni teskari yo'nalishda harakatlantiramiz.
uchun (int thisPin = 2; thisPin < 8; thisPin++) {
digitalWrite(thisPin, HIGH);
kechikish (taymer);
digitalWrite (thisPin, LOW);
}
Bu for tsiklida biz 2-pindan boshlaymiz va LEDni 7-pinga yetguncha birma-bir yoqamiz, LEDlar 100 millisekundlik “taymer” kechikishi uchun yonib turadi, bu bizga yorug'lik o'tgani haqidagi tasavvurni beradi. o'ngdan chapga.
uchun (int thisPin = 7; thisPin >= 2; thisPin--) {
digitalWrite(thisPin, HIGH);
kechikish (taymer);
digitalWrite (thisPin, LOW);
}
Ikkinchi for tsiklida yorug'lik 7-pinda boshlanadi va 2-pinda to'xtaydi, "taymer" kechikishidan keyin yana o'chadi. Bu ikkala yo'nalishda harakatlanadigan qizil chiroqning ta'sirini yakunlaydi.
Maslahat qo'shishSavol beringIzohYuklab oling
7-qadam: while loop
Ushbu misolda men while tsiklining qanday ishlashini ko'rsataman, bu safar men Arduino IDE-dan eskizdan foydalanmayman, chunki IDE misollarida men etarlicha oddiy eskizni topa olmadim.
Ushbu misol uchun sizga faqat Arduino kerak bo'ladi.
Download 329 Kb.

Do'stlaringiz bilan baham:
1   2   3   4   5   6   7   8   9




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling