สารบัญ:

ตัวจับเวลาควบคุมระยะไกลด้วย NodeMCU: 14 ขั้นตอน
ตัวจับเวลาควบคุมระยะไกลด้วย NodeMCU: 14 ขั้นตอน

วีดีโอ: ตัวจับเวลาควบคุมระยะไกลด้วย NodeMCU: 14 ขั้นตอน

วีดีโอ: ตัวจับเวลาควบคุมระยะไกลด้วย NodeMCU: 14 ขั้นตอน
วีดีโอ: ESP8266 Project using Blynk Google Assistant with Timer and Sensor | IoT Projects 2022 2024, พฤศจิกายน
Anonim
ตัวจับเวลาควบคุมระยะไกลด้วย NodeMCU
ตัวจับเวลาควบคุมระยะไกลด้วย NodeMCU

เราจะสร้างตัวจับเวลาโดยใช้ NodeMCU และ Adafruit เรากำลังจะแสดงตัวจับเวลาด้วยแถบ LED และเราจะสามารถควบคุมได้โดยใช้โทรศัพท์หรือคอมพิวเตอร์ของเรา!

เป้าหมายของพวกเรา:

สร้างตัวจับเวลาโดยใช้แถบ LED ที่เราสามารถทำได้: เริ่ม หยุดชั่วคราว และรีเซ็ตโดยใช้โทรศัพท์หรือคอมพิวเตอร์ของเรา

เสบียง

ฮาร์ดแวร์:

  • NodeMCU ESP 8266
  • Adafruit NeoPixel แถบ LED

ห้องสมุด:

  • Adafruit_NeoPixel.h
  • AdafruitIO_WiFi.h

อื่น:

การเชื่อมต่อ WiFi ที่ดี

ขั้นตอนที่ 1: มาสร้างฟีดใน Adafruit กันเถอะ

มาสร้างฟีดใน Adafruit กันเถอะ!
มาสร้างฟีดใน Adafruit กันเถอะ!

เมื่อเราได้ทุกสิ่งที่ต้องการแล้ว เราก็พร้อมที่จะเริ่มสร้าง! ก่อนอื่นเราต้องสร้างฟีดใน Adafruit Adafruit เป็นบริการที่ทำให้เราเชื่อมต่อ Arduino กับอินเทอร์เน็ตได้อย่างง่ายดาย และสร้างคุณสมบัติการควบคุมระยะไกลที่มีประโยชน์ หากคุณยังไม่ได้สมัครใช้งาน Adafruit

มาสร้างฟีดใหม่กันเถอะ

เราสามารถตั้งชื่อฟีดของเราอะไรก็ได้ที่เราต้องการ ฉันเรียกมันว่า 'ตัวจับเวลา'

สิ่งที่ฟีดทำคือบันทึกทุกสิ่งที่เราทำในแดชบอร์ดของเรา (ซึ่งเราจะสร้างขึ้นภายในเวลาเพียงไม่กี่นาที) และส่งข้อมูลนั้นไปยังบอร์ดของเรา แต่นั่นคือสิ่งที่เราจะดูเมื่อเรามีข้อมูลที่จะส่ง

ขั้นตอนที่ 2: ตอนนี้ มาสร้างแดชบอร์ดกัน.

มาทำแดชบอร์ดกันเถอะ.
มาทำแดชบอร์ดกันเถอะ.
มาทำแดชบอร์ดกันเถอะ.
มาทำแดชบอร์ดกันเถอะ.
มาทำแดชบอร์ดกันเถอะ.
มาทำแดชบอร์ดกันเถอะ.

ในลักษณะเดียวกับที่เราสร้างฟีด เราจะสร้างแดชบอร์ดใหม่ ฉันจะเรียกแดชบอร์ดของฉันว่า 'อินเทอร์เฟซตัวจับเวลา' เพราะนั่นคือสิ่งที่แดชบอร์ดของเราจะเป็น: อินเทอร์เฟซที่มีปุ่มสำหรับควบคุมตัวจับเวลาของเรา

ขั้นตอนที่ 3: รับกุญแจของเรา

รับกุญแจของเรา
รับกุญแจของเรา

หากเราต้องการเชื่อมต่อ Arduino กับฟีด เราจำเป็นต้องได้รับคีย์ Adafruit นี่คือรหัสผ่านลับของคุณที่จะทำให้แน่ใจว่ามีเพียงคุณเท่านั้นที่สามารถเชื่อมต่อกับฟีดของคุณได้

คุณสามารถรับรหัสได้โดยคลิกปุ่มคีย์ AIO สีเหลืองที่ด้านบนขวาของหน้าจอใน Adafruit

เก็บกุญแจนี้ไว้ที่ไหนสักแห่ง เราต้องการมันในภายหลัง

อย่าแชร์คีย์ของคุณ! มิฉะนั้น ผู้ที่มีเจตนาไม่ดีสามารถเชื่อมต่อกับฟีดและอุปกรณ์ของคุณได้

ขั้นตอนที่ 4: เปิดตัวอย่างการอ่านฟีด

เปิดตัวอย่างการอ่านฟีด
เปิดตัวอย่างการอ่านฟีด

ตอนนี้มาเปิด Arduino IDE ของเราและเริ่มขั้นตอนการเข้ารหัส ก่อนอื่นเราต้องติดตั้งไลบรารี Adafruit IO Arduino

ไม่ทราบวิธีการติดตั้งไลบรารี? นี่คือคำแนะนำที่ดีโดย Adafruit: Arduino Libraries

Adafruit มีตัวอย่างที่สร้างไว้ล่วงหน้ามากมายให้เราใช้และเรียนรู้ หนึ่งในตัวอย่างเหล่านี้คือ: adafruitio_21_feed_read คุณสามารถหาตัวอย่างนี้ได้ที่นี่: ไฟล์ - ตัวอย่าง Adafruit IO Arduino adafruitio_21_feed_read

(ขออภัยอินเทอร์เฟซภาษาดัตช์ของฉันในภาพ)

ขั้นตอนที่ 5: มาตั้งค่าการเชื่อมต่อของเรากันเถอะ

หากคุณเปิดภาพร่าง adafruitio_21_feed_read ได้สำเร็จ คุณจะเห็น 2 แท็บในภาพสเก็ตช์ของคุณ: adafruitio_21_feed_read และ config.h ร่างนี้จัดทำขึ้นเพื่อให้เราสามารถเชื่อมต่อกับฟีดที่เราทำในขั้นตอนที่ 1

ในการเชื่อมต่อกับฟีดนี้ เราจำเป็นต้องกรอกรายละเอียดเล็กน้อยเกี่ยวกับ WiFi และบัญชี Adafruit ของเรา

ไปที่ config.h กัน เราจะกรอกรายละเอียดดังต่อไปนี้:

ชื่อผู้ใช้ Adafruit ของคุณ:

#define IO_USERNAME "joopert"

รหัส Adafruit ของคุณ:

#define IO_KEY "1234567890abcdefghijklmnop"

ชื่อ WiFi ของคุณ:

#define WIFI_SSID "MyWifi"

และรหัสผ่าน WiFi ของคุณ:

#define WIFI_PASS "aVerySecretPassword"

กลับไปที่แท็บ adafruitio_21_feed_read แล้วกรอก:

ชื่อผู้ใช้ Adafruit ของคุณ… อีกครั้ง:

#define FEED_OWNER "joopert"

และสุดท้ายชื่อฟีดของคุณ (จากฟีดที่เราทำในขั้นตอนที่ 1):

AdafruitIO_Feed *sharedFeed = io.feed("ตัวจับเวลา", FEED_OWNER);

ขั้นตอนที่ 6: ตรวจสอบการเชื่อมต่อกับ Adafruit IO

ตรวจสอบการเชื่อมต่อกับ Adafruit IO
ตรวจสอบการเชื่อมต่อกับ Adafruit IO

เพื่อตรวจสอบว่าขั้นตอนที่เราดำเนินการก่อนหน้านี้ดำเนินการอย่างถูกต้องหรือไม่ เราจะอัปโหลดภาพร่างของเราไปยัง NodeMCU หากคุณเปิดจอภาพแบบอนุกรม ควรมีลักษณะเหมือนภาพด้านบน ขั้นแรก จอภาพแบบอนุกรมแสดงให้คุณเห็นว่ากำลังพยายามเชื่อมต่อกับ WiFi และ Adafruit ของคุณ ถ้าเสร็จแล้วก็ควรพูดว่า:

เชื่อมต่อ Adafruit IO แล้ว

นี่เป็นข่าวดี! ตอนนี้เราสามารถเริ่มเพิ่มฟังก์ชันการทำงานให้กับตัวจับเวลาของเราได้แล้ว…

ขั้นตอนที่ 7: ให้ LED

ให้ LED
ให้ LED
ให้ LED
ให้ LED

ตอนนี้ได้เวลาเปิดแถบ LED ของเราแล้ว!

เชื่อมต่อแถบ LED ของคุณกับ PIN D5 (หากคุณไม่พบ D5 ให้เชื่อมต่อกับ PIN อื่นและเปลี่ยน LED_PIN ในรหัส)

กำหนดแถบ LED

รหัสต่อไปนี้จะเพิ่มไลบรารี NeoPixel (เรียนรู้เพิ่มเติมเกี่ยวกับไลบรารีนี้ที่นี่: https://learn.adafruit.com/adafruit-neopixel-uberguide/arduino-library-use) และทำให้แน่ใจว่า Arduino ของเรารู้ว่าแถบ LED ของเราอยู่ที่ไหนและ มีไฟกี่ดวง หากแถบ LED ของคุณมีข้อกำหนดต่างกัน ให้เปลี่ยนในโค้ด

เพิ่มรหัสต่อไปนี้เหนือการตั้งค่าโมฆะ ():

// ตั้งค่าการเชื่อมต่อ NeoPixel#include #ifdef _AVR_ #include #endif

#define LED_PIN D5 // แถบ LED เชื่อมต่อกับที่ไหน

#define LED_COUNT 30 // มีกี่พิกเซล?

#define BRIGHTNESS 50 // ความสว่าง NeoPixel, 0 (นาที) ถึง 255 (สูงสุด)

Adafruit_NeoPixel แถบ (LED_COUNT, LED_PIN, NEO_GRB + NEO_KHZ800);

เริ่มต้นแถบ LED

ตอนนี้ เราจะเริ่มต้นแถบ LED และตั้งค่าความสว่าง (ความสว่างเพิ่มจาก 0 นาทีเป็น 255 สูงสุด แต่ฉันแนะนำว่า 50… 255 สว่างจริงๆ)

เพิ่มรหัสต่อไปนี้ในการตั้งค่าโมฆะ ():

แถบ.begin(); // เริ่มต้นวัตถุแถบ NeoPixel (REQUIRED)strip.show(); // ปิดพิกเซลทั้งหมด ASAP strip.setBrightness(50); // ตั้งค่าความสว่างเป็นประมาณ 1/5 (สูงสุด = 255)

ledsOn(); // เรียกใช้ฟังก์ชันเพื่อเปิดไฟ LED แต่ละดวงทีละดวง

เปิดไฟ

บางทีคุณอาจสังเกตเห็นแล้วว่าเรากำลังเรียกใช้ฟังก์ชันที่ยังไม่มีอยู่ ซึ่งจะเป็นส่วนต่อไปของการเข้ารหัส หากเราต้องการเปิดไฟ เราต้องสร้าง 'for loop' ที่จะเปิดไฟ LED แต่ละดวงทีละดวง (ไม่รู้ว่า for loop คืออะไร ลองดูที่นี่: www.arduino.cc/reference/ en/language/structure/control-structure/for/).

ตอนนี้เรากำลังจะสร้างฟังก์ชัน: ledsOn();

เพิ่มรหัสต่อไปนี้ด้านล่างเป็นโมฆะ handleMessage():

เป็นโมฆะ ledsOn () { สำหรับ (int i = 0; i < strip.numPixels (); i++) { // สำหรับแต่ละพิกเซลในแถบ … strip.setPixelColor (i, 0, 0, 255); // ตั้งค่าสีของพิกเซลเป็น blue strip.show(); // อัปเดตแถบให้ตรงกัน } }

ที่อัพโหลด

ตอนนี้เป็นส่วนที่สนุกแล้ว มาอัปโหลดโค้ดของเราไปที่ NodeMCU… หากทุกอย่างถูกต้องแล้วแถบ LED ของคุณควรเปลี่ยนเป็นสีน้ำเงินทั้งหมด!

ไม่มีพิกเซลปรากฏขึ้นหรือไม่: คุณเชื่อมต่อแถบกับ PIN ที่ถูกต้องหรือไม่ หรือบางทีการเชื่อมต่ออินเทอร์เน็ตของคุณอาจขาดหายไป

มีบางพิกเซลเท่านั้นที่ไม่แสดงหรือไม่: ตรวจสอบว่าคุณกำหนดจำนวนพิกเซลที่เหมาะสมหรือไม่!

ขั้นตอนที่ 8: เพิ่มเวลาให้กับตัวจับเวลา

ตอนนี้เราจะทำให้แน่ใจว่าตัวจับเวลาของเรา… ก็… ครั้ง บางอย่าง

มีหลายวิธีในการกำหนดเวลากับ Arduino วิธีหนึ่งคือการหน่วงเวลา () ซึ่งจะหยุดการประมวลผลของบอร์ดของเราตามระยะเวลาที่กำหนด เราจะไม่ใช้สิ่งนี้เนื่องจากโดยทั่วไป Arduino ของเราจะหยุดทำงานในช่วงดีเลย์ และเราต้องการให้บอร์ดของเราอัปเดตเป็นประจำ ดังนั้นเราจะใช้ Millis() ซึ่งเป็นวิธีการจับเวลาที่สวยงามกว่าใน Arduino โดยที่ Millis() ยังคงเรียกใช้โค้ดระหว่างช่วงเวลาได้

หากคุณสนใจวิธีการทำงาน คุณสามารถดูบทความนี้:

มาเพิ่มรหัสสำหรับ Millis():

ใส่รหัสนี้เหนือการตั้งค่าโมฆะ ()

ก่อนหน้าMillis แบบยาวที่ไม่ได้ลงนาม = 0; // จะเก็บครั้งสุดท้ายที่แถบ LED ได้รับการปรับปรุง ช่วงเวลา = 1,000; // ช่วงเวลาของตัวจับเวลาของเรา (มิลลิวินาที)

และใส่รหัสนี้ใน void loop():

ไม่ได้ลงนามยาว currentMillis = millis();// เริ่ม TIMER RYTHM ********************************************* ********* ถ้า (currentMillis - PreviousMillis >= ช่วง) { PreviousMillis = currentMillis;

// สิ้นสุด TIMER RYTHM ********************************************* ***********

สิ่งที่เราเพิ่งทำคือสร้างจังหวะสำหรับแถบ LED ของเราเพื่อปิด LED ในขั้นตอนต่อไป เราจะเพิ่มโค้ดเพื่อทำสิ่งนั้น

ขั้นตอนที่ 9: นับถอยหลัง

ในขั้นตอนนี้: เราจะสร้างฟังก์ชันที่จะทำให้แน่ใจว่าในแต่ละวินาที (หรือช่วงเวลาใดก็ตามที่คุณตั้งไว้) เราจะปิด LED หนึ่งดวงที่ส่วนท้ายของแถบจนกว่าไฟ LED ทั้งหมดของเราจะปิด

เราจะสร้าง 'int' ที่ด้านบนเรียกว่า 'leds' สิ่งนี้จะบอกตัวจับเวลาของเราในภายหลังว่ายังต้องปิดไฟ LED กี่ดวง

เพิ่มรหัสต่อไปนี้เหนือการตั้งค่าโมฆะ ():

int leds = LED_COUNT-1; // บอกจำนวนพิกเซลที่ควรสว่าง

ตอนนี้เรามาเพิ่มฟังก์ชัน 'timer();' กัน ซึ่งจะเป็นการดับไฟทุก ๆ วินาที

เพิ่มรหัสต่อไปนี้ด้านล่างเป็นโมฆะ ledsOn():

ตัวจับเวลาเป็นโมฆะ () { strip.setPixelColor (ไฟ LED, 0, 0, 0);

ถ้า (ไฟ LED > -1) { ไฟ LED--; } อื่น ๆ { กะพริบตา (); } }

เราต้องการให้ข้อเสนอแนะแก่ผู้ใช้ว่าตัวจับเวลาเสร็จสิ้นหลังจากไฟทั้งหมดดับลง ด้วย 'blinkie();' ไฟ LED จะกะพริบเป็นสีแดงหลังจากตั้งเวลาเสร็จ!

เพิ่มรหัสต่อไปนี้เหนือการตั้งค่าโมฆะ ():

int กะพริบสถานะ = 1; // บอกไฟกระพริบ (); ทำงานไม่ว่าแสงควรจะเปิดหรือปิด

เพิ่มรหัสต่อไปนี้ด้านล่างตัวจับเวลาเป็นโมฆะ ():

เป็นโมฆะ blinkie () { ถ้า (blinkStatus == 1) {

กะพริบสถานะ = 0; แถบ. clear(); } อื่น ๆ { blinkStatus = 1; for (int i = 0; i < strip.numPixels(); i++) { // สำหรับแต่ละพิกเซลในแถบ… strip.setPixelColor(i, 255, 0, 0); // ตั้งค่าสีของพิกเซล (ใน RAM) strip.show(); // อัปเดตแถบให้ตรงกัน } } } }

สุดท้ายเราต้องเรียกใช้ฟังก์ชันใน void loop();, จำ TIMER RYTHM ที่เราเพิ่มในขั้นตอนที่ 8 ได้หรือไม่ ในคำสั่ง if เราจะเรียกฟังก์ชัน timer();

TIMER RYTHM ควรมีลักษณะดังนี้:

// เริ่ม TIMER RYTHM ********************************************* *********

ถ้า (currentMillis - PreviousMillis >= ช่วง) { PreviousMillis = currentMillis; จับเวลา (); strip.show();} // สิ้นสุด TIMER RYTHM ************************************** ******************

ตอนนี้อัปโหลดรหัสนี้!

ตอนนี้แถบ LED ของคุณควรปิด LED 1 ดวงในแต่ละวินาทีและกะพริบเป็นสีแดงเมื่อเสร็จสิ้น…

ตอนนี้มาทำการควบคุมระยะไกลสำหรับคนรักแม่กันเถอะ!

ขั้นตอนที่ 10: ทำให้เป็นรีโมทคอนโทรล: ตอนที่ I

ทำให้เป็นรีโมทคอนโทรล: ตอนที่ I
ทำให้เป็นรีโมทคอนโทรล: ตอนที่ I
ทำให้เป็นรีโมทคอนโทรล: ตอนที่ I
ทำให้เป็นรีโมทคอนโทรล: ตอนที่ I

เรามีตัวจับเวลา ไม่เป็นไรและดูดี แต่ฉันสัญญากับคุณว่าคุณจะสามารถควบคุมมันด้วยโทรศัพท์ของคุณใช่ไหม เข้าสู่ขั้นตอนสุดท้ายของโครงการของเรา: ทำให้ตัวจับเวลาควบคุมด้วยรีโมท

ยังเปิดแท็บ Adafruit ของคุณอยู่ไหม กลับไปที่ io.adafruit.com และไปที่แดชบอร์ดอินเทอร์เฟซตัวจับเวลาของเราและสร้างบล็อกใหม่: TOGGLE

  1. เชื่อมต่อการสลับกับฟีด TIMER
  2. ตั้งค่า ON เป็น: 1
  3. ตั้งค่า OFF เป็น: 0

เหตุผลก็คือ Adafruit ไม่ได้ส่งข้อมูลข้อความไปยัง NodeMCU ของเรา แต่จะส่งเฉพาะตัวเลขเท่านั้น

คุณยังสามารถตั้งชื่อ Toggle ได้หากต้องการ บางที: 'สวิตช์เปิด/ปิด'

ตอนนี้กลับไปที่ Arduino IDE

เพื่อให้แน่ใจว่ารหัสของเราเป็นปัจจุบัน ให้อัปโหลดรหัสของเราอีกครั้ง

เปิดการตรวจสอบซีเรียลเมื่ออัปโหลดเสร็จแล้ว และกด TOGGLE บนแดชบอร์ด Adafruit ของเราสองสามครั้ง ตอนนี้เราควรจะเห็นสิ่งนี้ปรากฏขึ้นในมอนิเตอร์แบบอนุกรมของเรา:

ได้รับ <- 0 ได้รับ <- 1 ได้รับ <- 0 ได้รับ <- 1 ได้รับ <- 0

ซึ่งหมายความว่าเราสามารถส่งการควบคุมไปยัง NodeMCU ของเราได้จริง!

หากคุณไม่ได้รับข้อความเหล่านี้ ให้ตรวจสอบว่าข้อมูล Adafruit ของคุณใน config.h ยังคงถูกต้องหรือไม่

ขั้นตอนที่ 11: ทำให้เป็นรีโมทคอนโทรล: ตอนที่ II

ตอนนี้เหลือแค่ทำอะไรกับการควบคุมที่ได้รับของเรา

ในการทำเช่นนั้น เราต้องแก้ไข TIMER RYTHM if คำสั่งใน void loop(); นิดหน่อย.

เราจะบอก NodeMCU ว่าควรเริ่มตัวจับเวลาเมื่อเราได้รับ '1' (ซึ่งหมายถึง: เปิด) จาก Adafruit เท่านั้น

มาเก็บข้อมูลที่อดาฟรุ๊ตส่งมาให้กันก่อน

เพิ่มรหัสต่อไปนี้เหนือการตั้งค่าโมฆะ ():

int adaData; // รวบรวมข้อมูลที่ AdaFruit ส่งให้เรา

มาเก็บข้อมูลกันเถอะ

เพิ่มรหัสต่อไปนี้ภายใน void handleMessage():

adaData = data->toInt();

มาเปลี่ยน void loop();

TIMER RYTHM ควรมีลักษณะดังนี้:

// เริ่ม TIMER RYTHM ********************************************* *********if (currentMillis - PreviousMillis >= ช่วง) { PreviousMillis = currentMillis; ถ้า (adaData == 0) { Serial.println ("ฉันไม่ได้ทำงาน"); } else if (adaData == 1) { ตัวจับเวลา (); } strip.show(); } // สิ้นสุด TIMER RYTHM ******************************************** ************

อัปโหลดรหัสของคุณ…

ตอนนี้คุณควรจะสามารถเปิดและปิดตัวจับเวลาได้โดยใช้สวิตช์ใน Adafruit!

ขั้นตอนที่ 12: เล่นไปรอบ ๆ! เราเสร็จแล้ว…หรือเรา?

ตอนนี้คุณควรมีตัวจับเวลาระยะไกลที่ทำงานได้อย่างสมบูรณ์! ถ้านั่นคือคุณ ขอบคุณที่มาร่วมโครงการนี้!

หากคุณต้องการดำเนินการต่ออีกสักหน่อย ในไม่กี่ขั้นตอนถัดไป เราจะเพิ่มปุ่ม RESET สำหรับตัวจับเวลาของเรา!

ขั้นตอนที่ 13: พิเศษ: สร้างปุ่มชั่วขณะ

พิเศษ: สร้างปุ่มชั่วขณะ
พิเศษ: สร้างปุ่มชั่วขณะ

กลับไปที่แดชบอร์ดของเรากัน ตอนนี้เราต้องการสร้างบล็อกใหม่อีกครั้ง

  1. สร้างปุ่มชั่วขณะ
  2. เชื่อมต่อกับฟีด 'ตัวจับเวลา'
  3. ตั้งค่าการกดเป็น: 2
  4. ลบค่าการปล่อย
  5. ให้สีสวย!

สะดวก ปุ่มชั่วขณะนั้นเรียกว่า 'รีเซ็ต' แล้ว!

เมื่อคุณสร้างบล็อกนี้แล้ว ให้ทดสอบปุ่มนี้ หากคุณได้รับ:

ได้รับ <- 2

ในจอภาพแบบอนุกรมของคุณ

หากคุณไม่เห็นข้อความนี้ ให้ลองอัปโหลดภาพสเก็ตช์อีกครั้ง

ขั้นตอนที่ 14: พิเศษ: เพิ่มฟังก์ชันรีเซ็ต

ในการทำให้ปุ่มรีเซ็ตทำอะไรก็ได้ เราจำเป็นต้องเพิ่มฟังก์ชันที่รีเซ็ต LED ทั้งหมดกลับเป็นสถานะเดิม

เพิ่มรหัสต่อไปนี้ด้านล่าง void blinkie():

เรียกใช้ซ้ำเป็นโมฆะ () { leds = LED_COUNT; ledsOn(); }

เหลือเพียงการเรียกใช้ฟังก์ชันของเรา เพื่อที่เราต้องเปลี่ยน TIMER RYTHM เป็นครั้งสุดท้าย

TIMER RYTHM ควรมีลักษณะดังนี้:

// เริ่ม TIMER RYTHM ********************************************* *********if (currentMillis - PreviousMillis >= ช่วง) { PreviousMillis = currentMillis ถ้า (adaData == 0) { Serial.println ("ฉันไม่ทำงาน"); } else if (adaData == 1) { ตัวจับเวลา (); } else if (adaData == 2) { เรียกใช้ซ้ำ (); } strip.show(); } // สิ้นสุด TIMER RYTHM ******************************************** ************

อัปโหลดรหัสของคุณ…

ตอนนี้คุณควรจะสามารถรีเซ็ตตัวจับเวลาได้ด้วยการกดปุ่ม!

แนะนำ: