ความรู้แน่น ฟรีสำหรับชุมชน ArduinoAll ที่นี่เท่านั้น

ฟรีและดีที่สุด คอร์สอบรม Arduino + NodeMCU
ทำเพื่อแบ่งปัน ห้ามนำไปจำหน่าย หรือเก็บเงินค่าเรียน
  !!!


  


AllNewStep รับประกันคุณภาพทุกชิ้น วันจันทร์-ศุกร์แจ้งชำระสินค้าก่อน 14.00 จัดส่งทันทีวันนี้ค่ะ

กรุงเทพ /ภาคกลาง ได้พรุ่งนี้


*** สินค้าทุกชิ้น ถ้าสามารถทำรายการสั่งซื้อได้ แสดงว่ามีครบทุกรายการค่ะ *** 

พิมพ์ค้นหาบทความ หัวข้อกระทู้ และสินค้าในเว็บ AllNewStep ได้ที่นี่
QUOTE 

[SOLVED]การสั่งให้ทำงานตามเงื่อนไข ทุก 10 นาที

pppp

อยากทราบว่าจะใช้ฟังก์ชั่นไหนในการกำหนดให้โปรแกรมที่เขียนทำงานทุกๆ 10นาทีครับ ผมทำเครื่องแตะบัตรแล้วแตะครั้งแรกแล้วบันทึกค่าหลังจากนั้นครั้งต่อๆไปอยากให้ครบ 10 นาทีถึงจะแตะเเล้วบันทึกค่าอีกครั้งนึงครับ

QUOTE 
ความคิดเห็นที่ #1
เจ้าของร้าน

ไม่ยากดัดแปลงโคดนิดหน่อยก็ได้แล้ว ในโคดนี้ LED จะทำงานทุก 1 วินาที

ตามตัวอย่างนี้ครับ

https://www.arduino.cc/en/Tutorial/BlinkWithoutDelay

QUOTE 
ความคิดเห็นที่ #2
pppp

ได้แล้วครับ ขอบคุณมากครับ

มีคำถามจะถามเพิ่มครับ เกี่ยวกับ esp ถ้าเราให้มันต่อเน็ตเป็น web server ถ้าในวงเดียวกันเราก็จะเข้าไป ip ของมันได้ เเล้วถ้าอยากเข้าจากที่ไม่ใช่วงเดียวกัน อยู่ต่างจังหวัดเเล้วเข้าหน้าเว็บได้ ต้องทำยังไงครับ

QUOTE 
ความคิดเห็นที่ #3
เจ้าของร้าน

ทำได้ครับ ลองดูการต่อกล้องวงจรปิด ที่ดูผ่านมือถือได้ ก็ใช้หลักการเดียวกัน

ดูเรื่อง No-IP ครับ

QUOTE 
ความคิดเห็นที่ #4
เจ้าของร้าน

เพิ่มเติมครับ ถ้าเปิดอุปกรณ์ทำงานตลอดเวลา

 

การใช้คำสั่ง millis() จะให้ค่าตัวแปรเป็นประเภท unsigned long

ซึ่งตัวแปรจะล้นหรือ overflow ทำให้โปรแกรมเราทำงานผิดพลาดหลังจาก 49 วัน

วิธีแก้คือให้เช็คว่าค่า millis ค่าเป็น overflow แล้ว ดังตัวอย่างนี้ https://www.baldengineer.com/arduino-how-do-you-reset-millis.html

เมื่อโปรแกรมจับได้ว่า overflow เราก็สั่งให้โปรแกรม reset ตามโคดนี้ http://forum.arduino.cc/index.php?topic=49581.0

 

software_Reset() ;
void software_Reset() // Restarts program from beginning but does not reset the peripherals and registers
{
asm volatile ("  jmp 0");  
}  
QUOTE 
ความคิดเห็นที่ #5
pppp

ขอบคุณครับ เดี๋ยวจะไปศึกเพิ่มเติมครับ 

มีเรื่องถามต่อครับจากคำถามเเรก ในลูปเครื่องเเตะบัตรจะรันโค้ดที่รอบัตรมาเเตะตลอดเวลา พอเเต่เเล้วก็จะบวกจำนวนครั้งที่เเตะไปเรื่อยๆสำหรับเเต่ละคน ทีนี้อยากจะทำปุ่มสักปุ่มนึง พอกดเเล้วจะเป็นโหมดการเชคว่าเเตะไปกี่ครั้งเเล้ว ปัญหาคือไม่เข้าใจะว่าจะเขีนโค้ดยังไงให้เมื่อกดปุ่มเเล้วให้รันอยู่ในลูปของการเชค(กดปุ่มเเล้วเอาบัตรเเตะเเละโชว์ค่า)โดยที่ให้มันค้างอยู่ในลูปนั้นอะครับ พอจะเข้าใจไหมครับ

QUOTE 
ความคิดเห็นที่ #6
เจ้าของร้าน

แบบนี้เรียกว่าการ interrupt ใช้ขา interrupt เช็คครับ เมื่อมีคำสั่ง interrupt เข้ามา โคดก่อนหน้าจะหยุดการทำงานไว้ แล้วไปทำคำสั่งใน interrupt ก่อน เมื่อเสร็จแล้วก็จะกระโดดมาทำคำสั่งที่ค้างไว้ต่อไป https://www.arduino.cc/en/Reference/AttachInterrupt

ปกติ arduino เป็น single task ทำงานทีละอย่าง แต่ก็มีวิธีจำลองให้ทำให้ทำงานหลายอย่างพร้อมกันได้แรียกว่า multitasking ทำได้ง่าย ๆ ได้โดยใช้ไลบารีนี้ครับ https://create.arduino.cc/projecthub/feilipu/using-freertos-multi-tasking-in-arduino-ebc3cc?ref=tag&ref_id=tasks&offset=1

 

QUOTE 
ความคิดเห็นที่ #7
Nos Z'a Tanarat
แล้วถ้าผมจะทำ ไฟติด 5วินาที แร้ว ดับ 10วินาที ต้องเขียนโค็ตยังไงครับ
QUOTE 
ความคิดเห็นที่ #8
จตุรภัทร

ถ้าเป็น ESP ใช้ตัวไหนครับ 

QUOTE 
ความคิดเห็นที่ #9
นายขนมต้ม
เมื่อเรากดสวิต1ครั้ง relay จะทำงานประมาณ5นาทีแล้วหยุดทำงาน แล้วสามารถทำยังไงได้บ้างให้ relay หยุดทำงานเมื่อเปลี่ยนใจ
แสดงความคิดเห็นที่ 1-9 จากทั้งหมด 9 ความคิดเห็น
ขาย ARDUINO
คุณภาพ อันดับ 1

ได้รับรางวัลร้านยอดเยี่ยม
ตั้งแต่ปี 2558
ขาย Arduino
วีดีโอสอน Arduino

สอน esp8266

สอน Arduino IoT
สอน Arduino แบบเร็ว

สอน NodeMCU

อุปกรณ์ Arduino

MEMBER ZONE

พูดคุย-สอบถาม