ไฟ LED กะพริบด้วย Arduino - บทช่วยสอนที่สมบูรณ์

ลองใช้เครื่องมือของเราเพื่อกำจัดปัญหา





โพสต์นี้จะกล่าวถึงคู่มือการใช้งานโค้ด Arduino ขั้นพื้นฐานสำหรับการกะพริบ LED บนบอร์ด ข้อมูลถูกสร้างทดสอบและเขียนโดย Jack Franko



รหัส: สำหรับ LED ในตัวที่ขา 13 ของ ARDUINO BOARD โดยค่าเริ่มต้นจะมีการตั้งโปรแกรมให้กะพริบบ่อยครั้งที่ 50 Mili Seconds ตามคำอธิบายจะระบุ asms (มิลลิวินาที)

/ * ง่ายแรก
โปรแกรม Arudino โดย JACKFRANKO * /



int l = 13
//where l is pin 13void setup(){ pinMode
(l,OUTPUT) }void loop() { digitalWrite
(l,HIGH) delay(50) digitalWrite
(l,LOW) delay(50)}

หมายเหตุ: ในขณะที่เรากำลังศึกษาการเขียนโปรแกรมบอร์ด Arduino UNO R3 หากคุณไม่ใช่โปรแกรมเมอร์หรือนักออกแบบหรือมือสมัครเล่นในฐานะนักเรียนคุณต้องเริ่มจากพื้นฐาน

สิ่งแรกคือการทำความเข้าใจ Arduino Uno R3 โดยการซื้อชุดที่มีจำหน่ายในร้านค้าออนไลน์

คำอธิบาย:

ตามธรรมเนียมแล้วคือการได้รับชื่อของเราก่อนที่โปรแกรมจะเริ่มเป็น IDEA ที่ดีนี่คือโปรแกรมพื้นฐานแรกของฉันที่ระบุไว้ข้างต้นได้เริ่มต้นด้วยเครื่องหมายนี้ / * และข้อความของชื่อและสิ่งที่คุณต้องการพิมพ์ / ซึ่งไม่มีผลต่อโปรแกรมและไม่ได้เป็นส่วนหนึ่งของโปรแกรมเนื่องจากคอมไพเลอร์โปรแกรม Arduino รู้ว่าสิ่งที่อยู่ระหว่างเครื่องหมาย“ / *, * /“ ต้องข้ามมันเป็นเพียงแค่ชื่อของโปรแกรมเท่านั้น

/ * ง่ายแรก

โปรแกรมบน Arudino BY JACKFRANKO * / Next Line int l = 13

// โดยที่ l คือพิน 13

เป็นส่วนการประกาศของโปรแกรมที่เราจะประกาศจำนวนเต็มด้วยคำสั่ง 'int' ตามด้วยอักษรตัวเล็ก L ซึ่งมีค่าเท่ากับ 13 และลงท้ายด้วยเครื่องหมายอัฒภาคแล้วหลังจากทับ '//' สองครั้งและข้อความบางส่วน

ที่นี่เราได้ให้คำสั่ง int ซึ่งเรามักจะพูดว่าจำนวนเต็มและ L เล็กเท่ากับ 13 และเราลงท้ายด้วยอัฒภาคที่นี่เราพูดกับคอมไพเลอร์ว่าค่า“ l” เท่ากับ 13 ซึ่งอยู่ที่หมายเลขพิน สิบสามบนบอร์ด arduino ที่นี่“ l” เป็นเพียงค่าที่กำหนดให้ปักหมุดเลขที่ 13 โดยที่“ l” ไม่ใช่ฟังก์ชันหรือสคริปต์ใด ๆ สำหรับคอมไพเลอร์ แต่อย่างใดเราต้องสร้างโค้ดให้เป็นมิตรกับ“ l” ใน โครงการนี้ย่อมาจาก LED

ฉันต้องการทำให้โค้ดเล็กลงและประหยัดพื้นที่ ณ จุดนี้หากคุณไม่ต้องการเก็บเป็น“ l” ให้บอกว่าคุณต้องการเก็บไว้สำหรับเช่น“ ฉัน” จากนั้นในรหัสทั้งหมดที่เคยมี“ l” คุณต้องเปลี่ยนเป็น“ ฉัน” มิฉะนั้น คอมไพเลอร์จะไม่ทำงานและจะทำให้คุณมีข้อผิดพลาด

คำสั่งนี้ประกอบด้วยส่วนที่สองซึ่งตามด้วย“ //” และข้อความบางส่วนในที่นี้เราต้องเข้าใจว่าข้อความใดก็ตามที่ตามด้วย“ //” เมื่อเปิดและไม่มีการปิดใด ๆ คอมไพเลอร์จะไม่อ่านคำสั่งนั้น สามารถอยู่ในหลายบรรทัดโดยไม่ต้องปิด สิ่งนี้มีไว้เพื่อให้เราอ้างอิงและบันทึกในรหัสเพื่อความเข้าใจ

ก่อนที่จะเข้าใจส่วนที่เหลือของโค้ดเราต้องเข้าใจฟังก์ชั่นพื้นฐานของโค้ดนั่นคือ 'การตั้งค่าเป็นโมฆะ' และ 'การวนซ้ำเป็นโมฆะ' ซึ่งทั้งสองฟังก์ชันนี้มีความสำคัญมากเพราะเราจะประกาศ INPUT, OUTPUT และประเภทของงาน ทำโดยในนั้น เริ่มต้นด้วยการตั้งค่าเป็นโมฆะนี่เป็นส่วนหนึ่งของรหัสที่เราจะระบุอินพุตและเอาต์พุตของเราซึ่งจะต้องทำงานครั้งเดียวสำหรับโครงการของเรา ที่นี่เราจะพูดถึงเอาต์พุตเพียงหนึ่งเดียวตามรหัสของเรา

ฟังก์ชันอื่น ๆ เป็นโมฆะลูปเป็นส่วนที่สองของโค้ดซึ่งจะทำงานในรูปแบบของลูป ที่นี่ฟังก์ชั่นทั้งสองนี้ประกอบด้วยวงเล็บโค้งเปิดและปิดจากนั้นหลังจากเปิดวงเล็บปีกกาโดยถือรหัสบางส่วนและวงเล็บปีกกาปิด ฉันจะให้ข้อมูลเกี่ยวกับวงเล็บเหล่านี้ในโปรแกรมถัดไป ที่นี่เราต้องเน้นที่วงเล็บปีกกาซึ่งเรามีรหัสอยู่ระหว่างวงเล็บเหล่านี้

void setup(){ pinMode
(l,OUTPUT) }

ที่นี่เราได้ระบุฟังก์ชันที่ต้องทำงานหนึ่งครั้งสำหรับโครงการของเราและเป็นผลลัพธ์ของเรา หากคุณสังเกตเห็นว่าเราได้เขียนโค้ดของเราในวงเล็บปีกกาซึ่งเราได้ประกาศว่า pinMode l จะส่งออกในวงเล็บโค้งและลงท้ายด้วยอัฒภาค

ที่นี่ pinMode เป็นฟังก์ชันที่กำหนดให้เป็นจำนวนเต็ม l เป็น OUTPUT

ดังนั้น l ถูกกำหนดให้ pin no 13 บนคอมไพเลอร์ arduino จะเข้าใจว่า pin no 13 เรียกว่า l และ l คือ pin no 13 ถ้าเราใส่ 13 ที่ตำแหน่ง l หลังฟังก์ชัน PinMode
เนื่องจากเอาต์พุตจะพิจารณาทั้ง 13 และ l

ถ้าเราลบ int l = 13 มันจะไม่พิจารณาตัวอักษร l และจะทำให้คุณมีข้อผิดพลาด ที่นี่เราได้ตั้งพิน
ไม่มี 13 ซึ่งเป็นตัวอักษร l เป็นเอาต์พุตจะเขียนด้วยตัวอักษรตัวพิมพ์ใหญ่เสมอเป็น OUTPUT และฟังก์ชันพินโหมดจะเขียนในโหมดพินโดยเริ่มต้นด้วยตัวอักษรขนาดเล็กโดยไม่มีช่องว่างคำอื่น ๆ โหมดเริ่มต้นด้วยตัวอักษรตัวพิมพ์ใหญ่ซึ่งคอมไพเลอร์เข้าใจซึ่งคำนึงถึงตัวพิมพ์เล็กและใหญ่

ต่อไปเราจะเข้าสู่โหมดวนซ้ำของโปรแกรมของเราที่นี่เราจะระบุฟังก์ชันทั้งหมดที่ต้องทำงานในวง
เป็นเวลานานไม่ จำกัด

void loop() { digitalWrite
(l,HIGH) delay(50) digitalWrite
(l,LOW) delay(50)}

ที่นี่เราได้ประกาศจำนวนเต็ม l เป็น HIGH ด้วยฟังก์ชัน digitalWrite คำสั่งนี้ digitalWrite จะทำให้จำนวนเต็ม l HIGH หมายถึงเมื่อ บน มันจะกลับมา บน พินหมายเลข 13 บนบอร์ด Arduino ตามที่เราได้ระบุไว้ว่าพินหมายเลข 13 คือ l ซึ่งคั่นด้วยลูกน้ำในวงเล็บโค้ง
ที่นี่หลังจากที่เรากล่าวว่าล่าช้า (50) คำสั่งนี้จะนับเวลาเป็นมิลลิวินาที (มิลลิวินาที) โดยที่ 1,000 มิลลิวินาทีเท่ากับ 1 วินาที ในโปรแกรมนี้ฉันต้องการให้ led ของฉันแฟลช 20 ครั้งในการคำนวณทางคณิตศาสตร์หนึ่งวินาที
ให้ค่า 50 แก่ฉันซึ่งอยู่ในวงเล็บ

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

แม้ว่าเราจะบอกว่าดีเลย์เป็นเวลา 50 มิลลิวินาที ดังนั้นเราจึงได้รับคำสั่งให้ปิดไฟ LED
ใน digitalWrite (l, LOW) หลังจากระบุคำสั่งนี้แล้ว LED จะไม่ปิดเนื่องจากลูปไม่สมบูรณ์หากไม่มี ล่าช้า (50) ก่อนอื่นเราเปิดไฟ LED จากนั้นเรารอ 50ms จากนั้นเราก็ปิด LED จากนั้นเรารอ 50ms เพื่อให้ลูปหนึ่งวงเสร็จสมบูรณ์ซึ่งจะเล่นเป็นเวลานานตราบเท่าที่ Arduino เปิดอยู่ จะเปิดและปิดไฟ led ของคุณที่หมายเลขพิน
13 เป็นเวลา 20 ครั้งต่อวินาที




ก่อนหน้านี้: SPDT Solid State DC Relay Circuit โดยใช้ MOSFET ถัดไป: วงจรควบคุมมอเตอร์ย้อนกลับของ Incubator