สารบัญ:
- ขั้นตอนที่ 1: Arduinos ประเภทต่างๆ
- ขั้นตอนที่ 2: คุณสมบัติของ Arduino Uno
- ขั้นตอนที่ 3: Arduino IDE
- ขั้นตอนที่ 4: เสียบปลั๊ก
- ขั้นตอนที่ 5: การตั้งค่า
- ขั้นตอนที่ 6: เรียกใช้ Sketch
- ขั้นตอนที่ 7: การตรวจสอบแบบอนุกรม
- ขั้นตอนที่ 8: ดิจิทัลอิน
- ขั้นตอนที่ 9: อะนาล็อกใน
- ขั้นตอนที่ 10: ดิจิตอลเอาท์
- ขั้นตอนที่ 11: แอนะล็อกเอาท์
- ขั้นตอนที่ 12: เขียนโค้ดของคุณเอง
- ขั้นตอนที่ 13: โล่
- ขั้นตอนที่ 14: สร้างวงจรภายนอก
- ขั้นตอนที่ 15: ก้าวต่อไป
2025 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2025-01-13 06:58
Arduino เป็นบอร์ดพัฒนาไมโครคอนโทรลเลอร์โอเพ่นซอร์ส ในภาษาอังกฤษธรรมดา คุณสามารถใช้ Arduino เพื่ออ่านเซ็นเซอร์และควบคุมสิ่งต่างๆ เช่น มอเตอร์และไฟ สิ่งนี้ทำให้คุณสามารถอัปโหลดโปรแกรมไปยังบอร์ดนี้ ซึ่งสามารถโต้ตอบกับสิ่งต่าง ๆ ในโลกแห่งความเป็นจริงได้ ด้วยวิธีนี้ คุณสามารถสร้างอุปกรณ์ที่ตอบสนองและตอบสนองต่อโลกโดยรวมได้
ตัวอย่างเช่น คุณสามารถอ่านเซ็นเซอร์ความชื้นที่เชื่อมต่อกับต้นไม้ในกระถางและเปิดระบบรดน้ำอัตโนมัติหากแห้งเกินไป หรือคุณสามารถสร้างเซิร์ฟเวอร์แชทแบบสแตนด์อโลนที่เสียบเข้ากับเราเตอร์อินเทอร์เน็ตของคุณ หรือคุณสามารถทวีตทุกครั้งที่แมวของคุณเดินผ่านประตูสัตว์เลี้ยง หรือจะตั้งนาฬิกาปลุกในตอนเช้าก็ได้
โดยพื้นฐานแล้ว หากมีบางสิ่งที่ควบคุมด้วยไฟฟ้าในทางใดทางหนึ่ง Arduino สามารถเชื่อมต่อกับมันได้ในลักษณะบางอย่าง และถึงแม้จะไม่ได้ถูกควบคุมด้วยไฟฟ้า คุณก็ยังสามารถใช้สิ่งต่างๆ ที่ (เช่น มอเตอร์และแม่เหล็กไฟฟ้า) เพื่อเชื่อมต่อกับมันได้
ความเป็นไปได้ของ Arduino นั้นแทบจะไร้ขีดจำกัด ด้วยเหตุนี้ จึงไม่มีวิธีใดที่บทช่วยสอนเพียงบทเดียวจะครอบคลุมทุกสิ่งที่คุณอาจจำเป็นต้องรู้ ที่กล่าวว่าฉันได้พยายามอย่างเต็มที่เพื่อให้ภาพรวมพื้นฐานของทักษะและความรู้พื้นฐานที่คุณต้องการเพื่อให้ Arduino ของคุณทำงาน หากไม่มีอะไรเพิ่มเติม สิ่งนี้ควรทำหน้าที่เป็นกระดานกระโดดน้ำในการทดลองและการเรียนรู้เพิ่มเติม
ขั้นตอนที่ 1: Arduinos ประเภทต่างๆ
Arduinos มีหลายประเภทให้เลือก นี่คือภาพรวมคร่าวๆ ของบอร์ด Arduino ทั่วไปบางประเภทที่คุณอาจพบ สำหรับรายชื่อบอร์ด Arduino ที่รองรับในปัจจุบัน โปรดดูหน้าฮาร์ดแวร์ Arduino
Arduino Uno
Arduino รุ่นที่พบบ่อยที่สุดคือ Arduino Uno บอร์ดนี้เป็นสิ่งที่คนส่วนใหญ่พูดถึงเมื่อพูดถึง Arduino ในขั้นตอนต่อไปจะมีภาพรวมที่สมบูรณ์ยิ่งขึ้นของคุณลักษณะต่างๆ
Arduino NG, Diecimila และ Duemilanove (เวอร์ชันดั้งเดิม)
สายผลิตภัณฑ์ Arduino Uno รุ่นเก่าประกอบด้วย NG, Diecimila และ Duemilanove สิ่งสำคัญที่ควรทราบเกี่ยวกับบอร์ดรุ่นเก่าคือไม่มีคุณลักษณะเฉพาะของ Arduino Uno ความแตกต่างที่สำคัญบางประการ:
- Diecimila และ NG ใช้ชิป ATMEGA168 (ตรงข้ามกับ ATMEGA328 ที่ทรงพลังกว่า)
- ทั้ง Diecimila และ NG มีจัมเปอร์อยู่ถัดจากพอร์ต USB และต้องเลือก USB หรือพลังงานจากแบตเตอรี่ด้วยตนเอง
- Arduino NG ต้องการให้คุณกดปุ่มพักบนบอร์ดค้างไว้สองสามวินาทีก่อนที่จะอัปโหลดโปรแกรม
Arduino Mega 2560
Arduino Mega 2560 เป็นรุ่นที่สองของตระกูล Arduino ที่พบได้บ่อยที่สุด Arduino Mega เปรียบเสมือนพี่ชายที่อ้วนกว่าของ Arduino Uno มีหน่วยความจำ 256 KB (มากกว่า Uno ถึง 8 เท่า) นอกจากนี้ยังมีพินอินพุตและเอาต์พุต 54 พิน โดย 16 อันเป็นพินอะนาล็อก และ 14 พินที่สามารถทำ PWM ได้ อย่างไรก็ตาม ฟังก์ชันเพิ่มเติมทั้งหมดต้องเสียค่าแผงวงจรขนาดใหญ่กว่าเล็กน้อย มันอาจทำให้โครงการของคุณมีประสิทธิภาพมากขึ้น แต่ก็จะทำให้โครงการของคุณใหญ่ขึ้นด้วย ตรวจสอบหน้า Arduino Mega 2560 อย่างเป็นทางการสำหรับรายละเอียดเพิ่มเติม
Arduino Mega ADK
Arduino รุ่นพิเศษนี้เป็น Arduino Mega ที่ได้รับการออกแบบมาโดยเฉพาะสำหรับการเชื่อมต่อกับสมาร์ทโฟน Android นี่ก็เป็นรุ่นดั้งเดิมเช่นกัน
Arduino Yun
Arduino Yun ใช้ชิป ATMega32U4 แทน ATmega328 อย่างไรก็ตาม สิ่งที่ทำให้แตกต่างออกไปคือการเพิ่มไมโครโปรเซสเซอร์ Atheros AR9331 ชิปพิเศษนี้ช่วยให้บอร์ดนี้สามารถรัน Linux นอกเหนือจากระบบปฏิบัติการ Arduino ปกติ หากทั้งหมดนั้นไม่เพียงพอ มันยังมีความสามารถ wifi ในตัวอีกด้วย กล่าวอีกนัยหนึ่ง คุณสามารถตั้งโปรแกรมให้บอร์ดทำสิ่งต่างๆ ได้เหมือนกับที่คุณทำกับ Arduino อื่นๆ แต่คุณยังสามารถเข้าถึงฝั่ง Linux ของบอร์ดเพื่อเชื่อมต่ออินเทอร์เน็ตผ่าน wifi ได้ ฝั่ง Arduino และฝั่ง Linux สามารถสื่อสารไปมาได้อย่างง่ายดาย ทำให้บอร์ดนี้ทรงพลังและหลากหลาย ฉันเพิ่งจะเกาพื้นผิวของสิ่งที่คุณสามารถทำได้ด้วยสิ่งนี้ แต่หากต้องการเรียนรู้เพิ่มเติม ให้ตรวจสอบหน้าอย่างเป็นทางการของ Arduino Yun
Arduino นาโน
หากคุณต้องการให้มีขนาดเล็กกว่าบอร์ด Arduino มาตรฐาน Arduino Nano เหมาะสำหรับคุณ! Arduino รุ่นนี้ใช้ชิป ATmega328 แบบยึดพื้นผิว โดยย่อให้มีขนาดเล็กลงจนสามารถใส่ในพื้นที่แคบได้ นอกจากนี้ยังสามารถใส่ลงในเขียงหั่นขนมได้โดยตรง ทำให้ง่ายต่อการสร้างต้นแบบด้วย
Arduino LilyPad
LilyPad ได้รับการออกแบบมาสำหรับการใช้งานที่สวมใส่ได้และสิ่งทออิเล็กทรอนิกส์ มีจุดประสงค์เพื่อเย็บติดกับผ้าและเชื่อมต่อกับส่วนประกอบอื่นๆ ที่เย็บได้โดยใช้ด้ายนำไฟฟ้า บอร์ดนี้ต้องใช้สายเคเบิลการเขียนโปรแกรมซีเรียล FTDI-USB TTL พิเศษ สำหรับข้อมูลเพิ่มเติม หน้า Arduino LilyPad เป็นจุดเริ่มต้นที่ดี
(โปรดทราบว่าลิงก์บางลิงก์ในหน้านี้เป็นลิงก์ในเครือ ซึ่งจะไม่เปลี่ยนต้นทุนของรายการให้คุณ ฉันนำเงินที่ได้รับไปลงทุนใหม่เพื่อสร้างโครงการใหม่ หากคุณต้องการคำแนะนำสำหรับซัพพลายเออร์รายอื่น โปรดแจ้งให้ฉันทราบ ทราบ.)
ขั้นตอนที่ 2: คุณสมบัติของ Arduino Uno
บางคนคิดว่าบอร์ด Arduino ทั้งหมดเป็นไมโครคอนโทรลเลอร์ แต่สิ่งนี้ไม่ถูกต้อง ที่จริงแล้ว บอร์ด Arduino เป็นแผงวงจรที่ออกแบบมาเป็นพิเศษสำหรับการเขียนโปรแกรมและการสร้างต้นแบบด้วยไมโครคอนโทรลเลอร์ Atmel
ข้อดีของบอร์ด Arduino คือราคาค่อนข้างถูก เสียบเข้ากับพอร์ต USB ของคอมพิวเตอร์ได้โดยตรง และติดตั้งง่ายและใช้งานได้จริง (เมื่อเทียบกับบอร์ดพัฒนาอื่นๆ)
คุณสมบัติที่สำคัญบางประการของ Arduino Uno ได้แก่:
- การออกแบบโอเพ่นซอร์ส ข้อดีของการเป็นโอเพ่นซอร์สคือมีชุมชนขนาดใหญ่ของผู้คนที่ใช้และแก้ไขปัญหา ซึ่งช่วยให้หาคนมาช่วยดีบักโปรเจ็กต์ได้ง่าย
- อินเทอร์เฟซ USB ที่ใช้งานง่าย ชิปบนบอร์ดเสียบเข้ากับพอร์ต USB ของคุณโดยตรง และลงทะเบียนบนคอมพิวเตอร์ของคุณเป็นพอร์ตอนุกรมเสมือน สิ่งนี้ทำให้คุณสามารถเชื่อมต่อกับมันได้เหมือนกับเป็นอุปกรณ์ซีเรียล ประโยชน์ของการตั้งค่านี้คือการสื่อสารแบบอนุกรมเป็นโปรโตคอลที่ง่ายมาก (และผ่านการทดสอบตามเวลา) และ USB ทำให้การเชื่อมต่อกับคอมพิวเตอร์สมัยใหม่สะดวกมาก
- การจัดการพลังงานที่สะดวกมากและการควบคุมแรงดันไฟฟ้าในตัว คุณสามารถเชื่อมต่อแหล่งพลังงานภายนอกได้ถึง 12v และมันจะปรับให้เป็นทั้ง 5v และ 3.3v นอกจากนี้ยังสามารถขับเคลื่อนโดยตรงจากพอร์ต USB โดยไม่ต้องใช้พลังงานจากภายนอก
- ไมโครคอนโทรลเลอร์ "สมอง" ที่หาง่ายและสกปรกราคาถูก ชิป ATmega328 ขายปลีกในราคา 2.88 ดอลลาร์สำหรับ Digikey มีคุณสมบัติฮาร์ดแวร์ที่ดีมากมาย เช่น ตัวจับเวลา พิน PWM การขัดจังหวะภายนอกและภายใน และโหมดสลีปหลายโหมด ตรวจสอบแผ่นข้อมูลอย่างเป็นทางการสำหรับรายละเอียดเพิ่มเติม
- นาฬิกา 16 เมกะเฮิร์ตซ์ ทำให้ไม่ใช่ไมโครคอนโทรลเลอร์ที่เร็วที่สุด แต่เร็วพอสำหรับการใช้งานส่วนใหญ่
- หน่วยความจำแฟลช 32 KB สำหรับจัดเก็บรหัสของคุณ
- 13 พินดิจิตอลและ 6 พินอะนาล็อก หมุดเหล่านี้ช่วยให้คุณสามารถเชื่อมต่อฮาร์ดแวร์ภายนอกกับ Arduino ของคุณได้ หมุดเหล่านี้เป็นกุญแจสำคัญในการขยายขีดความสามารถในการประมวลผลของ Arduino ไปสู่โลกแห่งความเป็นจริง เพียงเสียบอุปกรณ์และเซ็นเซอร์ของคุณเข้ากับซ็อกเก็ตที่ตรงกับหมุดเหล่านี้ เท่านี้คุณก็พร้อมแล้ว
- ตัวเชื่อมต่อ ICSP สำหรับการข้ามพอร์ต USB และเชื่อมต่อ Arduino โดยตรงเป็นอุปกรณ์อนุกรม พอร์ตนี้จำเป็นสำหรับการบูตโหลดชิปของคุณใหม่หากเกิดความเสียหายและไม่สามารถพูดคุยกับคอมพิวเตอร์ของคุณได้อีกต่อไป
- LED ออนบอร์ดที่ติดอยู่กับพินดิจิตอล 13 เพื่อการดีบักโค้ดอย่างรวดเร็ว
- และสุดท้าย แต่ไม่ท้ายสุด ปุ่มสำหรับรีเซ็ตโปรแกรมบนชิป
สำหรับบทสรุปที่สมบูรณ์ของ Arduino Uno ทั้งหมด โปรดตรวจสอบหน้า Arduino อย่างเป็นทางการ
ขั้นตอนที่ 3: Arduino IDE
ก่อนที่คุณจะสามารถเริ่มทำอะไรกับ Arduino ได้ คุณต้องดาวน์โหลดและติดตั้ง Arduino IDE (สภาพแวดล้อมการพัฒนาแบบรวม) จากนี้ไปเราจะเรียก Arduino IDE ว่าเป็นโปรแกรมเมอร์ Arduino
โปรแกรมเมอร์ Arduino นั้นใช้ Processing IDE และใช้ภาษาโปรแกรม C และ C++ ที่หลากหลาย
คุณสามารถค้นหา Arduino Programmer เวอร์ชันล่าสุดได้ในหน้านี้
ขั้นตอนที่ 4: เสียบปลั๊ก
เชื่อมต่อ Arduino กับพอร์ต USB ของคอมพิวเตอร์ของคุณ
โปรดทราบว่าถึงแม้ Arduino จะเสียบเข้ากับคอมพิวเตอร์ของคุณ แต่ก็ไม่ใช่อุปกรณ์ USB ที่แท้จริง บอร์ดมีชิปพิเศษที่ช่วยให้แสดงบนคอมพิวเตอร์ของคุณเป็นพอร์ตอนุกรมเสมือนเมื่อเสียบเข้ากับพอร์ต USB นี่คือเหตุผลสำคัญที่ต้องเสียบปลั๊กบอร์ด เมื่อไม่ได้เสียบบอร์ด พอร์ตอนุกรมเสมือนที่ Arduino ใช้งานอยู่จะไม่ปรากฏ (เนื่องจากข้อมูลทั้งหมดเกี่ยวกับบอร์ดนั้นอยู่บนบอร์ด Arduino)
ยังดีที่รู้ว่า Arduino ทุกตัวมีที่อยู่พอร์ตอนุกรมเสมือนที่ไม่ซ้ำกัน ซึ่งหมายความว่าทุกครั้งที่คุณเสียบบอร์ด Arduino อื่นเข้ากับคอมพิวเตอร์ คุณจะต้องกำหนดค่าพอร์ตอนุกรมที่ใช้งานอยู่ใหม่
Arduino Uno ต้องใช้สาย USB A กับสาย USB B ตัวผู้
ขั้นตอนที่ 5: การตั้งค่า
ก่อนที่คุณจะสามารถเริ่มทำอะไรในโปรแกรมเมอร์ Arduino คุณต้องตั้งค่าประเภทบอร์ดและพอร์ตอนุกรม
ในการตั้งค่าบอร์ด ให้ไปที่ต่อไปนี้:
บอร์ดเครื่องมือ
เลือกเวอร์ชันของบอร์ดที่คุณใช้ เนื่องจากฉันเสียบ Arduino Uno ฉันจึงเลือก "Arduino Uno" อย่างชัดเจน
ในการตั้งค่าพอร์ตอนุกรม ให้ไปที่ต่อไปนี้:
เครื่องมือ Serial Port
เลือกพอร์ตอนุกรมที่มีลักษณะดังนี้:
/dev/tty.usbmodem [หมายเลขสุ่ม]
ขั้นตอนที่ 6: เรียกใช้ Sketch
โปรแกรม Arduino เรียกว่าสเก็ตช์ โปรแกรมเมอร์ Arduino มาพร้อมกับภาพสเก็ตช์ตัวอย่างมากมายที่โหลดไว้ล่วงหน้า นี่เป็นสิ่งที่ดีเพราะแม้ว่าคุณจะไม่เคยตั้งโปรแกรมอะไรเลยในชีวิตของคุณ คุณสามารถโหลดภาพร่างเหล่านี้และให้ Arduino ทำบางสิ่งได้
ในการทำให้ LED เชื่อมโยงกับพินดิจิตอล 13 เพื่อเปิดและปิดการกะพริบ ให้โหลดตัวอย่างการกะพริบ
ตัวอย่างการกะพริบสามารถพบได้ที่นี่:
ไฟล์ ตัวอย่าง พื้นฐาน กะพริบตา
ตัวอย่างการกะพริบโดยทั่วไปตั้งค่าพิน D13 เป็นเอาต์พุตแล้วกะพริบ LED ทดสอบบนบอร์ด Arduino เปิดและปิดทุกวินาที
เมื่อตัวอย่างการกะพริบเปิดขึ้น สามารถติดตั้งลงบนชิป ATMEGA328 ได้โดยกดปุ่มอัปโหลด ซึ่งดูเหมือนลูกศรชี้ไปทางขวา
โปรดสังเกตว่า LED แสดงสถานะการยึดพื้นผิวที่เชื่อมต่อกับพิน 13 บน Arduino จะเริ่มกะพริบ คุณสามารถเปลี่ยนอัตราการกะพริบได้โดยเปลี่ยนความยาวของการหน่วงเวลาแล้วกดปุ่มอัปโหลดอีกครั้ง
ขั้นตอนที่ 7: การตรวจสอบแบบอนุกรม
จอภาพแบบอนุกรมช่วยให้คอมพิวเตอร์ของคุณเชื่อมต่อแบบอนุกรมกับ Arduino นี่เป็นสิ่งสำคัญเพราะจะใช้ข้อมูลที่ Arduino ของคุณได้รับจากเซ็นเซอร์และอุปกรณ์อื่น ๆ และแสดงข้อมูลดังกล่าวในแบบเรียลไทม์บนคอมพิวเตอร์ของคุณ การมีความสามารถนี้มีค่ามากในการดีบักโค้ดของคุณและทำความเข้าใจว่าค่าจำนวนใดที่ชิปได้รับจริง
ตัวอย่างเช่น เชื่อมต่อการกวาดตรงกลาง (พินกลาง) ของโพเทนชิออมิเตอร์กับ A0 และต่อพินด้านนอกตามลำดับกับ 5v และกราวด์ ถัดไปอัปโหลดร่างที่แสดงด้านล่าง:
ตัวอย่างไฟล์ 1. Basics AnalogReadSerial
คลิกปุ่มเพื่อใช้งานจอภาพแบบอนุกรมซึ่งดูเหมือนแว่นขยาย ตอนนี้คุณสามารถดูตัวเลขที่อ่านโดยพินอะนาล็อกในมอนิเตอร์แบบอนุกรม เมื่อคุณหมุนปุ่มตัวเลขจะเพิ่มขึ้นและลดลง
ตัวเลขจะอยู่ระหว่าง 0 ถึง 1,023 เหตุผลก็คือขาอนาล็อกกำลังแปลงแรงดันไฟฟ้าระหว่าง 0 ถึง 5V เป็นตัวเลขที่รอบคอบ
ขั้นตอนที่ 8: ดิจิทัลอิน
Arduino มีพินอินพุตสองประเภท ได้แก่ อะนาล็อกและดิจิตอล
เริ่มต้นด้วย ให้ดูที่พินอินพุตดิจิตอล
พินอินพุตดิจิตอลมีสถานะที่เป็นไปได้สองสถานะเท่านั้น ซึ่งเปิดหรือปิด สถานะเปิดและปิดทั้งสองนี้เรียกอีกอย่างว่า:
- สูงหรือต่ำ
- 1 หรือ 0
- 5V หรือ 0V
อินพุตนี้มักใช้เพื่อตรวจจับการมีอยู่ของแรงดันไฟฟ้าเมื่อเปิดหรือปิดสวิตช์
อินพุตดิจิตอลยังสามารถใช้เป็นพื้นฐานสำหรับโปรโตคอลการสื่อสารดิจิทัลจำนวนนับไม่ถ้วน ด้วยการสร้างพัลส์ 5V (สูง) หรือพัลส์ 0V (ต่ำ) คุณสามารถสร้างสัญญาณไบนารี ซึ่งเป็นพื้นฐานของการคำนวณทั้งหมด สิ่งนี้มีประโยชน์สำหรับการพูดคุยกับเซ็นเซอร์ดิจิทัล เช่น เซ็นเซอร์อัลตราโซนิก PING หรือการสื่อสารกับอุปกรณ์อื่นๆ
สำหรับตัวอย่างง่ายๆ ของอินพุตดิจิทัลที่ใช้งาน ให้ต่อสวิตช์จากพินดิจิทัล 2 เป็น 5V, ตัวต้านทาน 10K** จากพินดิจิทัล 2 ลงกราวด์ แล้วรันโค้ดต่อไปนี้:
ตัวอย่างไฟล์ 2.ปุ่มดิจิตอล
**ตัวต้านทาน 10K เรียกว่าตัวต้านทานแบบดึงลง เนื่องจากจะเชื่อมต่อพินดิจิตอลกับกราวด์เมื่อไม่ได้กดสวิตช์ เมื่อกดสวิตช์ การเชื่อมต่อทางไฟฟ้าในสวิตช์จะมีความต้านทานน้อยกว่าตัวต้านทาน และไฟฟ้าจะไม่เชื่อมต่อกับกราวด์อีกต่อไป กระแสไฟฟ้าจะไหลระหว่าง 5V และพินดิจิตอลแทน เนื่องจากไฟฟ้าจะเลือกเส้นทางที่มีความต้านทานน้อยที่สุดเสมอ หากต้องการเรียนรู้เพิ่มเติมเกี่ยวกับเรื่องนี้ โปรดไปที่หน้า Digital Pins
ขั้นตอนที่ 9: อะนาล็อกใน
นอกเหนือจากพินอินพุตดิจิตอลแล้ว Arduino ยังมีพินอินพุตแบบอะนาล็อกจำนวนหนึ่ง
พินอินพุตแบบอะนาล็อกใช้สัญญาณแอนะล็อกและทำการแปลงแอนะล็อกเป็นดิจิทัล (ADC) 10 บิตเพื่อเปลี่ยนเป็นตัวเลขระหว่าง 0 ถึง 1023 (ขั้นตอน 4.9mV)
อินพุตประเภทนี้เหมาะสำหรับการอ่านเซ็นเซอร์ตัวต้านทาน เหล่านี้โดยทั่วไปคือเซ็นเซอร์ที่ให้ความต้านทานต่อวงจร นอกจากนี้ยังเหมาะสำหรับการอ่านสัญญาณแรงดันไฟฟ้าที่แตกต่างกันระหว่าง 0 ถึง 5V สิ่งนี้มีประโยชน์เมื่อเชื่อมต่อกับวงจรแอนะล็อกประเภทต่างๆ
หากคุณทำตามตัวอย่างในขั้นตอนที่ 7 สำหรับการเชื่อมต่อจอภาพแบบอนุกรม แสดงว่าคุณได้ลองใช้พินอินพุตแบบอะนาล็อกแล้ว
ขั้นตอนที่ 10: ดิจิตอลเอาท์
พินดิจิตอลขาออกสามารถตั้งค่าเป็น HIGH (5v) หรือ LOW (0v) ซึ่งจะทำให้คุณสามารถเปิดและปิดสิ่งต่างๆ ได้
นอกเหนือจากการเปิดและปิดสิ่งต่าง ๆ (และทำให้ไฟ LED กะพริบ) เอาต์พุตรูปแบบนี้สะดวกสำหรับการใช้งานจำนวนมาก
ที่โดดเด่นที่สุดคือช่วยให้คุณสามารถสื่อสารแบบดิจิทัลได้ การเปิดและปิดพินอย่างรวดเร็ว คุณกำลังสร้างสถานะไบนารี (0 และ 1) ซึ่งอุปกรณ์อิเล็กทรอนิกส์อื่นๆ นับไม่ถ้วนรู้จักว่าเป็นสัญญาณไบนารี ด้วยวิธีนี้ คุณสามารถสื่อสารโดยใช้โปรโตคอลต่างๆ ได้มากมาย
การสื่อสารดิจิทัลเป็นหัวข้อขั้นสูง แต่หากต้องการทราบแนวคิดทั่วไปเกี่ยวกับสิ่งที่สามารถทำได้ โปรดดูที่หน้า การเชื่อมต่อกับฮาร์ดแวร์
หากคุณทำตามตัวอย่างในขั้นตอนที่ 6 เพื่อให้ LED กะพริบ แสดงว่าคุณได้ลองใช้พินเอาต์พุตดิจิทัลแล้ว
ขั้นตอนที่ 11: แอนะล็อกเอาท์
ดังที่ได้กล่าวไว้ก่อนหน้านี้ Arduino มีฟังก์ชันพิเศษมากมายในตัว หนึ่งในฟังก์ชันพิเศษเหล่านี้คือการมอดูเลตความกว้างพัลส์ ซึ่งเป็นวิธีที่ Arduino สามารถสร้างเอาต์พุตแบบแอนะล็อกได้
การปรับความกว้างพัลส์ - หรือ PWM สำหรับระยะสั้น - ทำงานโดยการหมุนพิน PWM สูง (5V) และต่ำ (0V) อย่างรวดเร็วเพื่อจำลองสัญญาณแอนะล็อก ตัวอย่างเช่น หากคุณต้องเปิดและปิดไฟ LED กะพริบเร็วพอ (แต่ละอันประมาณห้ามิลลิวินาที) ดูเหมือนว่าจะมีความสว่างโดยเฉลี่ยและดูเหมือนว่าจะได้รับพลังงานเพียงครึ่งเดียว อีกวิธีหนึ่ง หากเปิดไฟกะพริบเป็นเวลา 1 มิลลิวินาที แล้วกะพริบเป็น 9 มิลลิวินาที ไฟ LED จะดูเหมือนสว่าง 1/10 และได้รับแรงดันไฟฟ้าเพียง 1/10 เท่านั้น
PWM เป็นกุญแจสำคัญสำหรับการใช้งานจำนวนมากรวมถึงการสร้างเสียง การควบคุมความสว่างของแสง และการควบคุมความเร็วของมอเตอร์
สำหรับคำอธิบายเชิงลึก โปรดดูความลับของหน้า PWM
หากต้องการลองใช้ PWM ด้วยตัวเอง ให้เชื่อมต่อตัวต้านทาน LED และ 220 โอห์มกับพินดิจิตอล 9 โดยต่ออนุกรมกับกราวด์ รันโค้ดตัวอย่างต่อไปนี้:
ตัวอย่างไฟล์ 3. Analog Fading
ขั้นตอนที่ 12: เขียนโค้ดของคุณเอง
ในการเขียนโค้ดของคุณเอง คุณจะต้องเรียนรู้ไวยากรณ์ภาษาโปรแกรมพื้นฐาน กล่าวอีกนัยหนึ่ง คุณต้องเรียนรู้วิธีสร้างโค้ดอย่างถูกต้องเพื่อให้โปรแกรมเมอร์เข้าใจ คุณสามารถนึกถึงการทำความเข้าใจไวยากรณ์และเครื่องหมายวรรคตอนแบบนี้ได้ คุณสามารถเขียนหนังสือทั้งเล่มได้โดยไม่ต้องใช้ไวยากรณ์และเครื่องหมายวรรคตอนที่เหมาะสม แต่จะไม่มีใครสามารถเข้าใจหนังสือได้ แม้ว่าจะเป็นภาษาอังกฤษก็ตาม
สิ่งสำคัญที่ควรทราบเมื่อเขียนโค้ดของคุณเอง:
โปรแกรม Arduino เรียกว่าสเก็ตช์
รหัสทั้งหมดในร่าง Arduino ถูกประมวลผลจากบนลงล่าง
สเก็ตช์ Arduino โดยทั่วไปจะแบ่งออกเป็นห้าส่วน
- สเก็ตช์มักจะเริ่มต้นด้วยส่วนหัวที่อธิบายว่าร่างนั้นกำลังทำอะไรอยู่ และใครเป็นคนเขียน
- ถัดไป มันมักจะกำหนดตัวแปรส่วนกลาง บ่อยครั้งนี่คือที่ที่ชื่อคงที่ให้กับหมุด Arduino ต่างๆ
- หลังจากตั้งค่าตัวแปรเริ่มต้นแล้ว Arduino จะเริ่มรูทีนการตั้งค่า ในฟังก์ชันการตั้งค่า เราตั้งค่าเงื่อนไขเริ่มต้นของตัวแปรเมื่อจำเป็น และเรียกใช้โค้ดเบื้องต้นใดๆ ที่เราต้องการเรียกใช้เพียงครั้งเดียว นี่คือจุดเริ่มต้นของการสื่อสารซีเรียล ซึ่งจำเป็นสำหรับการรันมอนิเตอร์แบบอนุกรม
- จากฟังก์ชันการตั้งค่า เราไปที่รูทีนลูป นี่คือกิจวัตรหลักของการร่างภาพ นี่ไม่ใช่แค่ที่ที่โค้ดหลักของคุณไป แต่จะถูกดำเนินการซ้ำแล้วซ้ำอีก ตราบใดที่สเก็ตช์ยังคงทำงานอยู่
- ด้านล่างของรูทีนลูป มักจะมีฟังก์ชันอื่นๆ อยู่ในรายการ ฟังก์ชันเหล่านี้กำหนดโดยผู้ใช้และเปิดใช้งานเมื่อเรียกในรูทีนการตั้งค่าและลูปเท่านั้น เมื่อมีการเรียกใช้ฟังก์ชันเหล่านี้ Arduino จะประมวลผลโค้ดทั้งหมดในฟังก์ชันจากบนลงล่าง จากนั้นจึงย้อนกลับไปยังบรรทัดถัดไปในภาพร่างซึ่งเหลือไว้เมื่อเรียกใช้ฟังก์ชัน ฟังก์ชันต่างๆ นั้นดีเพราะช่วยให้คุณเรียกใช้รูทีนมาตรฐานได้ซ้ำแล้วซ้ำเล่า โดยไม่ต้องเขียนโค้ดบรรทัดเดียวกันซ้ำแล้วซ้ำอีก คุณสามารถเรียกใช้ฟังก์ชันได้หลายครั้ง ซึ่งจะทำให้หน่วยความจำบนชิปว่างมากขึ้น เนื่องจากรูทีนของฟังก์ชันเขียนเพียงครั้งเดียว นอกจากนี้ยังทำให้โค้ดอ่านง่ายขึ้นอีกด้วย หากต้องการเรียนรู้วิธีสร้างฟังก์ชันของคุณเอง โปรดดูหน้านี้
จากทั้งหมดที่กล่าวมา มีเพียงสองส่วนของร่างที่บังคับคือรูทีนการตั้งค่าและลูป
รหัสจะต้องเขียนด้วยภาษา Arduino ซึ่งอ้างอิงจากภาษาซี
คำสั่งเกือบทั้งหมดที่เขียนด้วยภาษา Arduino ต้องลงท้ายด้วย;
Conditionals (เช่น if statement และ for loops) ไม่จำเป็นต้องมี;
Conditionals มีกฎของตัวเองและสามารถพบได้ใน "โครงสร้างการควบคุม" บนหน้าภาษา Arduino
ตัวแปรคือช่องเก็บของสำหรับตัวเลข คุณสามารถส่งค่าเข้าและออกจากตัวแปรได้ ต้องกำหนดตัวแปร (ระบุไว้ในโค้ด) ก่อนจึงจะสามารถใช้ได้และต้องมีประเภทข้อมูลที่เกี่ยวข้อง หากต้องการเรียนรู้ข้อมูลพื้นฐานบางประเภท ให้ตรวจทานหน้าภาษา
ตกลง! สมมติว่าเราต้องการเขียนโค้ดที่อ่านโฟโตเซลล์ที่เชื่อมต่อกับพิน A0 และใช้การอ่านที่เราได้รับจากโฟโตเซลล์เพื่อควบคุมความสว่างของ LED ที่เชื่อมต่อกับพิน D9
อันดับแรก เราต้องการเปิดภาพร่าง BareMinimum ซึ่งสามารถดูได้ที่:
ตัวอย่างไฟล์ 1. Basic BareMinimum
BareMinimum Sketch ควรมีลักษณะดังนี้:
การตั้งค่าเป็นโมฆะ () {
// ใส่รหัสการตั้งค่าของคุณที่นี่ เพื่อเรียกใช้ครั้งเดียว: } void loop() { // ใส่รหัสหลักของคุณที่นี่ เพื่อเรียกใช้ซ้ำ: } ต่อไป ให้ใส่ส่วนหัวของโค้ดเพื่อให้คนอื่นรู้ว่าเรากำลังทำอะไร เพราะอะไร และภายใต้เงื่อนไขใด
/*
LED Dimmer โดย Genius Arduino Programmer 2012 ควบคุมความสว่างของ LED บนพิน D9 ตามการอ่านโฟโตเซลล์บนพิน A0 รหัสนี้อยู่ในโดเมนสาธารณะ */ void setup() { // ใส่รหัสการตั้งค่าของคุณที่นี่เพื่อเรียกใช้ ครั้งเดียว: } void loop() { // ใส่รหัสหลักของคุณที่นี่ เพื่อเรียกใช้ซ้ำ: } เมื่อเรายกกำลังสองแล้ว ให้เรากำหนดชื่อพิน และสร้างตัวแปร
/*
LED Dimmer โดย Genius Arduino Programmer 2012 ควบคุมความสว่างของ LED บนพิน D9 ตามการอ่านโฟโตเซลล์บนพิน A0 รหัสนี้อยู่ในโดเมนสาธารณะ */ // ตั้งชื่อพินอะนาล็อก 0 ชื่อคงที่ const int analogInPin = A0; // ตั้งชื่อพินดิจิตอล 9 ชื่อคงที่ const int LEDPin = 9; //ตัวแปรสำหรับการอ่าน photocell int photocell; void setup() { // ใส่รหัสการตั้งค่าของคุณที่นี่ เพื่อเรียกใช้ครั้งเดียว: } void loop() { // ใส่รหัสหลักของคุณที่นี่ เพื่อเรียกใช้ซ้ำ: } เมื่อตั้งค่าตัวแปรและชื่อพินแล้ว ให้เราเขียนโค้ดจริง
/*
LED Dimmer โดย Genius Arduino Programmer 2012 ควบคุมความสว่างของ LED บนพิน D9 ตามการอ่านโฟโตเซลล์บนพิน A0 รหัสนี้อยู่ในโดเมนสาธารณะ */ // ตั้งชื่อพินอะนาล็อก 0 ชื่อคงที่ const int analogInPin = A0; // ตั้งชื่อพินดิจิตอล 9 ชื่อคงที่ const int LEDPin = 9; //ตัวแปรสำหรับการอ่าน photocell int photocell; การตั้งค่าเป็นโมฆะ () { // ไม่มีอะไรที่นี่ตอนนี้ } วงเป็นโมฆะ () { // อ่านอนาล็อกในพินและตั้งค่าการอ่านเป็นตัวแปรตาแมว photocell = analogRead (analogInPin); //ควบคุมพิน LED โดยใช้ค่าที่อ่านโดย photocell analogWrite (LEDPin, photocell); // หยุดรหัสชั่วคราวเป็นเวลา 1/10 วินาที ///1 วินาที = 1,000 ล่าช้า (100); } หากเราต้องการดูว่าขาอะนาล็อกอ่านจากโฟโตเซลล์เป็นตัวเลขใด เราจะต้องใช้จอภาพแบบอนุกรม มาเปิดใช้งานพอร์ตอนุกรมและส่งออกหมายเลขเหล่านั้น
/*
LED Dimmer โดย Genius Arduino Programmer 2012 ควบคุมความสว่างของ LED บนพิน D9 ตามการอ่านโฟโตเซลล์บนพิน A0 รหัสนี้อยู่ในโดเมนสาธารณะ */ // ตั้งชื่อพินอะนาล็อก 0 ชื่อคงที่ const int analogInPin = A0; // ตั้งชื่อพินดิจิตอล 9 ชื่อคงที่ const int LEDPin = 9; //ตัวแปรสำหรับการอ่าน photocell int photocell; การตั้งค่าเป็นโมฆะ () { Serial.begin (9600); } วงเป็นโมฆะ () {// อ่านอนาล็อกในพินและตั้งค่าการอ่านเป็นตัวแปรตาแมว photocell = analogRead (analogInPin); //พิมพ์ค่า photocell ลงในจอภาพอนุกรม Serial.print("Photocell = "); Serial.println(ตาแมว); //ควบคุมพิน LED โดยใช้ค่าที่อ่านโดย photocell analogWrite (LEDPin, photocell); // หยุดรหัสชั่วคราวเป็นเวลา 1/10 วินาที ///1 วินาที = 1,000 ล่าช้า (100); }สำหรับข้อมูลเพิ่มเติมเกี่ยวกับการกำหนดรหัส ไปที่หน้าฐานราก หากคุณต้องการความช่วยเหลือเกี่ยวกับภาษา Arduino หน้าภาษาคือที่สำหรับคุณ
นอกจากนี้ หน้าตัวอย่างสเก็ตช์ยังเป็นสถานที่ที่ดีในการเริ่มต้นยุ่งกับโค้ด อย่ากลัวที่จะเปลี่ยนแปลงสิ่งต่างๆ และทดลอง
ขั้นตอนที่ 13: โล่
ชิลด์คือบอร์ดเสริมส่วนขยายที่เสียบเข้ากับ Arduino Uno และให้ฟังก์ชันพิเศษ
เนื่องจาก Arduino เป็นฮาร์ดแวร์แบบเปิด ใครก็ตามที่มีความโน้มเอียงสามารถสร้าง Arduino Shield ได้ฟรีสำหรับงานที่พวกเขาต้องการทำให้สำเร็จ ด้วยเหตุนี้จึงมี Arduino Shields จำนวนมากอยู่ในป่า คุณสามารถค้นหารายการ Arduino shields ที่เพิ่มมากขึ้นเรื่อยๆ ในสนามเด็กเล่น Arduino โปรดทราบว่าจะมีเกราะป้องกันมากกว่าที่คุณจะพบในหน้านั้น (เช่นเคย Google คือเพื่อนของคุณ)
เพื่อให้คุณเข้าใจถึงความสามารถของ Arduino Shields เพียงเล็กน้อย ให้ดูบทแนะนำเหล่านี้เกี่ยวกับวิธีใช้ Arduino Shields อย่างเป็นทางการสามตัว:
- การ์ด SD ไร้สาย
- อีเธอร์เน็ตชิลด์
- มอเตอร์ชิลด์
ขั้นตอนที่ 14: สร้างวงจรภายนอก
เมื่อโปรเจ็กต์ของคุณซับซ้อนมากขึ้น คุณจะต้องสร้างวงจรของคุณเองเพื่อเชื่อมต่อกับ Arduino แม้ว่าคุณจะไม่ได้เรียนอุปกรณ์อิเล็กทรอนิกส์ในชั่วข้ามคืน แต่อินเทอร์เน็ตก็เป็นแหล่งข้อมูลที่ไม่น่าเชื่อสำหรับความรู้ทางอิเล็กทรอนิกส์และแผนภาพวงจร
หากต้องการเริ่มต้นใช้งานอุปกรณ์อิเล็กทรอนิกส์ โปรดไปที่ Basic Electronics Instructable
ขั้นตอนที่ 15: ก้าวต่อไป
จากนี้ไป สิ่งเดียวที่ต้องทำคือสร้างโปรเจ็กต์ มีแหล่งข้อมูลและแบบฝึกหัด Arduino ที่ยอดเยี่ยมมากมายทางออนไลน์
อย่าลืมตรวจสอบหน้า Arduino และฟอรัมอย่างเป็นทางการ ข้อมูลที่ระบุไว้ในที่นี้มีค่าและสมบูรณ์มาก นี่เป็นทรัพยากรที่ยอดเยี่ยมสำหรับการดีบักโครงการ
หากคุณต้องการแรงบันดาลใจสำหรับโปรเจ็กต์เริ่มต้นแสนสนุก ลองดูคู่มือ Arduino Projects 20 อันที่เหลือเชื่อ
สำหรับรายการขนาดใหญ่หรือโครงการ Arduino Arduino Channel เป็นจุดเริ่มต้นที่ดี
แค่นั้นแหละ. คุณอยู่คนเดียว
ขอให้โชคดีและแฮ็คอย่างมีความสุข!
คุณพบว่าสิ่งนี้มีประโยชน์ สนุก หรือสนุกสนานหรือไม่ ติดตาม @madeineuphoria เพื่อดูโครงการล่าสุดของฉัน