
2025 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2025-01-23 15:12


คำนำ
ฉันเพิ่งพัฒนาโปรเจ็กต์ IoT ที่ใช้ ESP8266 สองสามโปรเจ็กต์ และพบว่าตัวประมวลผลหลักกำลังดิ้นรนเพื่อทำงานทั้งหมดที่ฉันต้องการเพื่อจัดการ ดังนั้นฉันจึงตัดสินใจแจกจ่ายกิจกรรมที่มีความสำคัญน้อยกว่าบางส่วนไปยังไมโครคอนโทรลเลอร์ต่างๆ ใน วิธีนี้ทำให้ ESP8266 ว่างเพื่อทำงานเป็นอุปกรณ์ IoT
เนื่องจากฉันต้องการเผยแพร่โครงการของฉันไปยังผู้ชมในวงกว้างที่สุดเท่าที่จะเป็นไปได้ ฉันจึงเลือกใช้ Arduino IDE เป็นแพลตฟอร์มการพัฒนาที่เลือกได้ เนื่องจากมีชุมชนที่ได้รับการสนับสนุนอย่างกว้างขวาง
ข้อจำกัดในการออกแบบ
เพื่อที่จะจัดเตรียมอุปกรณ์เป้าหมายที่เหมาะสมเพื่อให้สามารถเลือกไมโครคอนโทรลเลอร์ที่เหมาะสมกับการใช้งานได้ ฉันจึงตัดสินใจใช้ชิ้นส่วน Atmel ต่อไปนี้ ATMega328P, ATTiny84 และ ATTiny85 เพื่อจำกัดความซับซ้อนของโปรแกรมเมอร์ที่จำเป็น ฉันจำกัดตัวเลือกของนาฬิกาเป็นภายในสำหรับอุปกรณ์ทั้งหมด และ 16MHz ภายนอกสำหรับ ATMega328P และ ATTiny84 เท่านั้น
ต่อไปนี้เป็นชุดของบันทึกย่อเกี่ยวกับการเขียนโปรแกรมด้วย Arduino และคำอธิบายว่าฉันรวบรวมโปรแกรมเมอร์ที่ใช้ Arduino Uno แบบง่าย ๆ สำหรับอุปกรณ์เหล่านี้ได้อย่างไร (ภาพด้านบน)
ฉันต้องการชิ้นส่วนอะไร?
ในการสร้างโปรแกรมเมอร์ คุณจะต้องมีส่วนประกอบดังต่อไปนี้
- 1 จาก Arduino Uno
- 2 ปิด 28 พิน Zero Insertion Force (ZIF) ซ็อกเก็ต DIP (เพื่อเก็บ ATMega328P, ATTiny85, ATTiny84)
- 1 จากโล่ต้นแบบ Arduino (ฉันได้ของฉันที่นี่;
- 2 ปิด 5MM LEDs
- ตัวต้านทาน 1K ลด 2 ตัว
- 1 ปิดตัวต้านทาน 10K
- 4 ปิด 22pF ตัวเก็บประจุเซรามิก
- 2 ปิด 16MHz คริสตัล
- 3 ปิด 0.1uF ตัวเก็บประจุเซรามิก
- 1 ปิด 47uF ตัวเก็บประจุด้วยไฟฟ้า
- 1 ปิด 10uF ตัวเก็บประจุด้วยไฟฟ้า
- ลวดพันลวดความยาวต่างๆ
ฉันต้องการซอฟต์แวร์อะไร
Arduino IDE 1.6.9
ฉันต้องการทักษะอะไร?
- ความรู้เกี่ยวกับ Arduino IDE
- ความรู้บางอย่างเกี่ยวกับอุปกรณ์อิเล็กทรอนิกส์และวิธีการบัดกรี
- ความคล่องแคล่วว่องไวมากมาย
- อดทนและสายตาดี
หัวข้อที่ครอบคลุม
- บทนำทั่วไปเกี่ยวกับการเขียนโปรแกรม Atmel Microcontrollers
- ISP หรือ Bootloader: ค่อนข้างจะสับสน
- ภาพรวมวงจร
- การตั้งค่าโปรแกรมเมอร์ของคุณ
- การใช้โปรแกรมเมอร์ Arduino ISP ของคุณ
- การพัฒนาโค้ดบนระบบเป้าหมายของคุณ
- Gotchas
- บทสรุป
- ข้อมูลอ้างอิงที่ใช้
ข้อจำกัดความรับผิดชอบ
เช่นเคย คุณใช้คำแนะนำเหล่านี้โดยยอมรับความเสี่ยงเองและไม่รองรับ
ขั้นตอนที่ 1: บทนำทั่วไปเกี่ยวกับการเขียนโปรแกรม Atmel Microcontrollers



มีสองวิธีในการเขียนโปรแกรมไมโครคอนโทรลเลอร์ Atmel;
- ในการเขียนโปรแกรมระบบ (ISP)
- การเขียนโปรแกรมด้วยตนเอง (ผ่าน bootloader)
วิธีเดิม (1) ตั้งโปรแกรมไมโครคอนโทรลเลอร์โดยตรงผ่านอินเทอร์เฟซ SPI หลังจากรีเซ็ตอุปกรณ์ในครั้งแรก เว้นแต่จะได้รับคำแนะนำเป็นอย่างอื่น โปรแกรมต้นทางที่คอมไพล์แล้วจะถูกเขียนไปยังอุปกรณ์ทีละน้อยในหน่วยความจำโค้ดจากตำแหน่งที่รันเมื่อเริ่มทำงาน มีอุปกรณ์ ISP จำนวนมากที่สามารถเขียนโปรแกรมอุปกรณ์ Atmel ได้ ซึ่งบางส่วนเป็น (รูปที่ 1); AVRISPmkII, Atmel-ICE, Olimex AVR-ISP-MK2, Olimex AVR-ISP500 ภาพที่ 2 แสดงให้เห็นว่าอุปกรณ์ ISP เชื่อมต่อกับ ATMega328P (ICSP ที่มีเครื่องหมายผิดปกติ) บนบอร์ด Arduino Uno R3 อย่างไร (รูปที่ 3 ให้พิน ISP) นอกจากนี้ยังสามารถตั้งโปรแกรมไมโครคอนโทรลเลอร์ Atmel ผ่านอินเทอร์เฟซ SPI โดยใช้ Arduino Uno เป็น ISP (รูปภาพ 4) ที่นี่ Uno ถูกใช้เพื่อตั้งโปรแกรม ATMega328P
วิธีหลัง (2) ใช้โครงโค้ดขนาดเล็กที่เรียกว่า 'bootloader' ถาวรในหน่วยความจำโค้ดที่ปฏิบัติการได้ (โดยปกติจะถูกล็อคเพื่อป้องกันการเขียนทับโดยไม่ได้ตั้งใจ รูปที่ 5) รหัสนี้ทำงานเป็นอย่างแรกเมื่อเปิดเครื่องหรือรีเซ็ตอุปกรณ์ และอนุญาตให้ไมโครคอนโทรลเลอร์ตั้งโปรแกรมใหม่เองด้วยรหัสใหม่ที่ได้รับผ่านอินเทอร์เฟซอันใดอันหนึ่งจากแหล่งภายนอกสู่ตัวมันเอง Arduino IDE ใช้วิธี bootloader เพื่อตั้งโปรแกรม Arduinos ใหม่โดยแมปเป็นพอร์ต USB comm บนพีซี (หรือกล่อง MAC, Linux ฯลฯ รูปที่ 6) และในกรณีของ Arduino Uno จะสื่อสารกับอุปกรณ์ Atmel ผ่านทาง อินเทอร์เฟซแบบอนุกรมบน IC Pins 2 และ 3 ของ ATMega328P นอกจากนี้ Arduino Uno (ที่ถอดไมโครคอนโทรลเลอร์ ATMega328P ออก) ยังสามารถใช้เพื่อตั้งโปรแกรม ATMega328P ผ่านวิธี bootloader ซึ่งทำหน้าที่เป็นอุปกรณ์อะแดปเตอร์ USB กับซีเรียลได้อย่างมีประสิทธิภาพ (รูปที่ 7)
อะแดปเตอร์ USB เป็นซีเรียลคืออะไร?
อะแดปเตอร์ USB กับซีเรียลคือชิ้นส่วนของฮาร์ดแวร์ที่เสียบเข้ากับพอร์ต USB ของพีซีของคุณ และดูเหมือนพอร์ตคอมแบบอนุกรม (เป็นมรดกจากครั้งก่อนๆ เมื่อคอมพิวเตอร์ใช้มาตรฐานการสื่อสารแบบอนุกรมที่เรียกว่า EIA-232, V24 หรือ RS232) ช่วยให้คุณ ส่งและรับข้อมูลอนุกรมที่ระดับไฟฟ้าเดียวกันของไมโครคอนโทรลเลอร์ เมื่อคุณเลือกเครื่องมือ -> พอร์ต -> COMx จาก Arduino IDE คุณกำลังเชื่อมต่อ/เชื่อมต่อพีซีของคุณกับ Arduino
อุปกรณ์เช่นนี้บางครั้งเรียกว่า FTDI (รูปที่ 8 ซึ่งจริงๆ แล้วเป็นชื่อแบรนด์) หรือ CH340G เป็นต้น USB แบบอนุกรมบน Arduino uno ทำได้โดยใช้ ATMega16U2-MU(R) IC ZU4 เช่นเดียวกับใน Arduino Schematic ด้านล่าง.
เพื่อความชัดเจน ภาพที่ 9 ระบุอุปกรณ์ Atmel สองตัวและตัวเชื่อมต่อ ISP ตามลำดับบน Arduino Uno R3
หมายเหตุ 1: หากคุณเลือกที่จะลงเส้นทางอุปกรณ์ FTDI ให้แน่ใจว่าคุณซื้อจากผู้ขายที่มีชื่อเสียง เนื่องจากมีอุปกรณ์ปลอมแปลงราคาถูกจำนวนมากในตลาดซึ่งล้มเหลวจากการใช้การอัปเดต windows
แนะนำ:
ATTiny84 ไดร์เวอร์ LED 3A Step-Down ที่ใช้ ATTiny84: 7 ขั้นตอน (พร้อมรูปภาพ)

ATTiny84 ไดร์เวอร์ LED 3A Step-Down ที่ใช้ ATTiny84: หากคุณต้องการจ่ายไฟ LED 10W คุณสามารถใช้ไดรเวอร์ 3A LED นี้ได้ ด้วย LED Cree XPL 3 ดวง คุณสามารถบรรลุ 3000 ลูเมน
การเขียนโปรแกรม Attiny85 (โล่) โดยใช้ Arduino UNO: 7 ขั้นตอน

การเขียนโปรแกรม Attiny85 (โล่) การใช้ Arduino UNO: การเล่นกับ Arduino ของคุณเป็นเรื่องสนุก อย่างไรก็ตาม บางครั้งขนาดก็มีความสำคัญ Arduino UNO มีขนาดเล็ก แต่ถ้าคุณต้องการให้โปรเจ็กต์ของคุณอยู่ในกล่องขนาดเล็ก UNO อาจใหญ่เกินไป คุณสามารถลองใช้ NANO หรือ MINI ได้ แต่ถ้าคุณอยาก
IOT123 - ATTINY85 การเขียนโปรแกรม JIG ออนบอร์ด: 3 ขั้นตอน

IOT123 - ATTINY85 ONBOARD PROGRAMMING JIG: ในการออกแบบ BRICK ฉันได้กล่าวถึงรูทะลุที่อยู่ติดกับ ATTINY85 ที่ไม่ได้ใช้งาน เพื่อเปิดใช้งานโปรแกรมเมอร์พิน pogo ในขณะที่ DIP8 ถูกบัดกรีเข้ากับ PCB นี่คือโปรแกรมเมอร์พิน pogo นี่เป็นเพียงสายนำอะแดปเตอร์จาก
การเขียนโปรแกรมชิปด้วย Arduino ของคุณ - AVR ISP ที่ครอบคลุม ATTiny85, ATTiny2313 และ ATMega328: 3 ขั้นตอน

การเขียนโปรแกรมชิปด้วย Arduino ของคุณ - AVR ISP ที่ครอบคลุม ATTiny85, ATTiny2313 และ ATMega328: ฉันพบว่านี่เป็นฉบับร่างเมื่อหลายปีก่อน อย่างน้อยก็ยังมีประโยชน์สำหรับฉันดังนั้นฉันจะเผยแพร่! Instructable นี้เป็นการรวมความรู้ที่รวบรวมจากทั่ว 'net และ 'nstructables ครอบคลุมการเขียนโปรแกรมของ AVR Microco
Arduino ที่ถูกที่สุด -- Arduino ที่เล็กที่สุด -- Arduino Pro Mini -- การเขียนโปรแกรม -- Arduino Neno: 6 ขั้นตอน (พร้อมรูปภาพ)

Arduino ที่ถูกที่สุด || Arduino ที่เล็กที่สุด || Arduino Pro Mini || การเขียนโปรแกรม || Arduino Neno:…………………………… โปรดสมัครสมาชิกช่อง YouTube ของฉันสำหรับวิดีโอเพิ่มเติม……. โปรเจ็กต์นี้เกี่ยวกับวิธีเชื่อมต่อ Arduino ที่เล็กที่สุดและถูกที่สุดเท่าที่เคยมีมา Arduino ที่เล็กที่สุดและถูกที่สุดคือ arduino pro mini คล้ายกับ Arduino