โปรเจกต์ Logic Probe ขนาดเล็กสำหรับ TTL / CMOS พร้อม Battery Charger
ใช้งาน Microcontroller ATtiny1614 พร้อม LiPo Battery รวมถึงวงจร USB charging และ Logic สามารถเขียนโปรแกรมได้ด้วย Arduino IDE!
ใช้งาน Microcontroller ATtiny1614 พร้อม LiPo Battery รวมถึงวงจร USB charging และ Logic สามารถเขียนโปรแกรมได้ด้วย Arduino IDE!
ผมขอแนะนำให้คุณรู้จักกับ Logic Probe เครื่องมือวัดที่สมบูรณ์แบบ ซึ่งมีความเรียบง่ายแต่มีประสิทธิภาพ ในการวัดระดับลอจิกดิจิทัล 0 (ศูนย์) และ 1 (หนึ่ง) ทั้งเทคโนโลยี TTL และ CMOS โดยระดับแรงดันไฟฟ้าสูงสุดที่ยอมรับได้คือ 10 โวลต์ แต่สำหรับ CMOS สามารถไปถึง 18 โวลต์ซึ่งคุณควรหลีกเลี่ยง วิธีใช้งานเพียงแค่เชื่อมต่อ สาย Mini USB ที่มีแคลมป์ 'crocodile' สีดำเข้ากับ GND ของวงจรคุณ และแตะ Probe ตรงจุดที่คุณต้องการทราบระดับลอจิก (ในวงจรเดียวกัน) แล้วสังเกตที่ LED ที่สอดคล้องกันซึ่งจะสว่างขึ้น
โดยปกติสำหรับ Arduino และ Microcontroller ที่คล้ายกันอย่าง ATtiny ที่ใช้ในโปรเจกต์นี้ เราจะพบ TTL ที่ 3.3v และ 5.0v ซึ่งระดับลอจิก 'ศูนย์' และ 'หนึ่ง' จะเหมือนกัน: ตั้งแต่ 0.0 ถึง 0.8v จะถือว่าเป็น 0 (LOW) และตั้งแต่ 2.0 ถึง 3.3 ไปจนถึง 5.0v จะถือว่าเป็น 1 (HIGH); ส่วนระหว่าง 0.8 และ 2.0 จะถือว่าเป็น UNDEFINED
หนึ่ง ใน LED ทั้งสามดวงจะสว่างขึ้นในแต่ละระดับที่สอดคล้องกัน:
low=blue (สีน้ำเงิน) <= 0.8v
high=red (สีแดง) > 2.0v
undefined=yellow (สีเหลือง) >0.8v <= 2.0v
low=blue (สีน้ำเงิน) <= 1.5v
high=red (สีแดง) > 3.5v
undefined=yellow (สีเหลือง) >1.5v <= 3.5v



ได้รับแรงบันดาลใจจาก โปรเจกต์ ATtiny 1614 ของ John Bradnam ผมได้ซื้อ Microcontroller นี้มาลองทางเลือกใหม่และสนุกไปกับการผจญภัยครั้งใหม่ ผมจึงสร้าง MyTiny วงจรทดสอบแรกขึ้นมา ทุกอย่างทำงานได้ดีกับการเลือกใช้แหล่งจ่ายไฟ 3.3v จนถึงวันนี้ผมได้ทดสอบและตรวจสอบแล้วทั้ง: digitalRead, digitalWrite, analogRead, analogWrite ทั้ง PWM และ DAC; ผมได้ทำ Serial monitor ผ่าน Pins RX/TX <-> FTDI Serial interface และ Library SoftwareSerial; สุดท้ายผมได้เชื่อมต่อจอแสดงผล OLED 128x32 ผ่าน SDA/SCL และ Library Wire เจ๋งไปเลย!
สำหรับการโปรแกรม ATtiny โดยใช้ Arduino NANO และ IDE โปรดอ่านคำแนะนำของ Bradnam ที่ลิงก์ด้านบน
นอกจากนี้ ในวงจรนี้ผมตัดสินใจรวมวงจรที่สมบูรณ์ + โค้ด เพื่อชาร์จ Lipo Battery ด้วยเหตุนี้ Input พลังงาน USB ขนาด 5.0v จึงถูกควบคุมโดย Resistor ขนาด 15 Ohm 1W และ Relay เพื่อจำกัดกระแสชาร์จและตัดไฟเมื่อถึงขีดจำกัดการชาร์จ Battery ที่ 4.2v เมื่อ Battery คายประจุที่ 3.2v หากพิจารณาว่าวงจรใช้ไฟ 50mA ตัว Battery จะได้รับกระแสชาร์จที่เหลือ 70mA [(5.0-3.2)/15=120mA]; เมื่อใกล้สิ้นสุดการชาร์จที่ 4.2v Battery จะได้รับกระแสชาร์จเพียงไม่กี่ mA [(5.0-4.2)/15=53mA]; หลังจากนั้น Relay จะตัดการเชื่อมต่อพลังงานจาก USB และ Battery จะไม่ได้รับไฟเพิ่มและเริ่มคายประจุช้าๆ ตามการใช้งานปกติ ที่ขั้วต่อ Mini USB คุณสามารถเลือกเชื่อมต่อสายแคลมป์ 'crocodile' สีดำเพื่อวัดระดับลอจิก (เทียบกับ GND) หรือสาย USB เพื่อชาร์จ Battery (เช่น ต่อกับคอมพิวเตอร์) ก็ได้
Resistor 5.6k/1 และ 22/1, D1 และ T1 ทั้งหมดมีไว้เพื่อควบคุมการเปิด/ปิด REL-1; 10k/5 และ 10k/4 เป็นวงจรแบ่งแรงดัน (Voltage divider) "หารสอง" เพื่อวัดแรงดันไฟฟ้าจาก USB; 10k/1 และ 5k/1 เป็นวงจรแบ่งแรงดัน "หารสาม" เพื่อวัดแรงดันจาก Probe; 10k/2 และ 10k/3 เป็นวงจรแบ่งแรงดัน "หารสอง" เพื่อวัดแรงดัน Battery; 10k/6 มีไว้สำหรับ pull-up ปุ่มกด T/C; ส่วน Resistor 150 Ohm สามตัวและ LED สามสีทำให้วงจรหลักสมบูรณ์ โปรด พยายามเลือกคู่ของ Resistor ในวงจรแบ่งแรงดัน ให้มีค่าใกล้เคียงกันที่สุดเท่าที่จะเป็นไปได้ที่ความแม่นยำ 1% เพื่อให้ได้ค่า analogRead() ที่ถูกต้อง ในกรณีที่มีความคลาดเคลื่อน คุณสามารถแก้ไขค่าที่อ่านได้โดยการปรับแก้ด้วยค่าเปอร์เซ็นต์ในโค้ดตรงที่คำนวณแรงดันไฟฟ้า: 'VRaw=(n1 + ((n1 * 0.0) /100));' และ 'VBatt=(n1 + ((n1 * 0.0) /100));' (ตอนนี้ค่าเป็น 0.0 เนื่องจากยังไม่มีการปรับแก้)
MCU small board เป็น PCB แบบหน้าคู่พร้อมอุปกรณ์ SMD: ประกอบด้วย Microcontroller ATtiny, mini USB, Capacitor สองตัว, Resistor หนึ่งตัวสำหรับ LED และสุดท้ายคือ Voltage Regulator เป็น 3.3v








หากคุณต้องการดูข้อมูลบน Serial monitor เพื่อการ Debug หรือจุดประสงค์อื่น คุณต้องยกเลิกคอมเมนต์ที่ Library "#include <SoftwareSerial.h>" และตั้งค่า "const boolean IsDEBUG = true;"; นอกจากนี้คุณต้องเชื่อมต่อตัวแปลง Serial-to-USB อย่าง FTDI (rx) เข้ากับพอร์ต (tx) ของ Microcontroller พร้อมกับโปรแกรมสื่อสาร Serial อย่าง CoolTerm โดยตั้งค่าไว้ที่ 9600 baud
ค่าสำหรับการชาร์จ:
หากคุณเปลี่ยน Battery ที่มีความจุต่างออกไป (A/h) คุณต้องแก้ไขพารามิเตอร์ในซอฟต์แวร์ให้สอดคล้องกัน (CBatt) รวมถึงหากเปลี่ยน Resistor 1W เพื่อให้ชาร์จเร็วขึ้นหรือช้าลง เช่น จาก 15 เป็น 12 หรือ 18 Ohm โปรดจำไว้ว่าต้องเปลี่ยนพารามิเตอร์ (VResis) ด้วย ผมชอบที่จะคำนวณบางอย่างระหว่างการชาร์จหรือระหว่างการใช้งานวัดปกติ ดังนี้:
ผมใช้ PCB แบบหน้าคู่สองแผ่น ด้วยเหตุนั้นใน Board หลักจึงมีการใช้ Rivets หรือ Pins ประมาณ 20 ตัวเพื่อเชื่อมต่อวงจรทั้งหมด นอกจากนี้ยังมี จุดจัดตำแหน่ง (alignment spots) 5 จุด สำหรับเจาะรูก่อน ผมได้ออกแบบจุดจัดตำแหน่ง 5 จุดนี้ไว้บนหน้า PCB ทุกด้าน ในส่วนดาวน์โหลดคุณจะมีไฟล์ PCB ทั้งหมด ทั้งด้านอุปกรณ์และด้านบัดกรี แบบ Mirror สำหรับดาวน์โหลดและพิมพ์ด้วย เครื่องพิมพ์เลเซอร์ลงบนกระดาษ "สีเหลือง" หรือ "สีฟ้า" (magic sheets); ผมใช้แผ่นสีฟ้าแต่แผ่นสีเหลืองก็ใช้ได้ดีและราคาถูกกว่า ผมต้องบอกว่าแผ่นสีฟ้านั้นดีกว่า... เมื่อพิมพ์อย่าลืมปิดการตั้งค่าประหยัดโทนเนอร์ และใช้ความละเอียด 1200 dpi เพื่อให้ได้สีดำที่เข้มจริง กระบวนการ Toner transfer จากแผ่นวิเศษไปยัง PCB ทำได้โดยการใช้เตารีดร้อน... ในอินเทอร์เน็ตมีบทเรียนสอน วิธีทำ PCB ที่ดี อยู่มากมาย แต่จำจุดสำคัญเหล่านี้ไว้: ทำความสะอาดและขัดทองแดงเบาๆ ด้วยฟองน้ำล้างจานด้านที่หยาบ, รีดด้วยเตารีดเป็นเวลา 5 นาที (อย่ากดแรงเกินไป), แช่น้ำเย็นทันที (thermal shock), จัดตำแหน่งสองด้านให้ตรงกันผ่านรู 5 รู (ผมใช้ Pins 5 ตัวบนพื้นผิว LED สีขาวขนาดใหญ่เพื่อให้เห็นรูชัดเจน), ปิดเทปกาวใสป้องกันอีกด้านหนึ่งในระหว่างกระบวนการกัดแผ่นปริ้น การพิมพ์ลายอุปกรณ์ลงไปด้วยจะทำให้โปรเจกต์ดูเป็น "มืออาชีพ" และทำให้วางอุปกรณ์ได้ง่ายขึ้น :-)

PCB ขนาดเล็กสำหรับ Microcontroller จะติดตั้งอุปกรณ์แบบ SMD ซึ่งมีอุปกรณ์เพียงไม่กี่ชิ้น ผมบัดกรีโดยใช้หัวแร้งขนาดเล็กและน้ำยาประสาน (Solder paste): "Solder paste คือส่วนผสมของผงที่ทำจากอนุภาคตะกั่วบัดกรีและฟลักซ์ที่เหนียวหนะซึ่งมีความข้นเหมือนดินน้ำมัน ฟลักซ์ไม่เพียงแต่ทำหน้าที่ทำความสะอาดสิ่งสกปรกและคราบออกไซด์บนพื้นผิวบัดกรีตามปกติเท่านั้น แต่ยังทำหน้าที่เป็นกาวชั่วคราวเพื่อยึดอุปกรณ์ SMD ให้อยู่กับที่อีกด้วย" แต้ม Solder paste ปริมาณเล็กน้อยลงบนจุดทองแดง วางอุปกรณ์ทีละชิ้น ยึดไว้แล้วปิดงานด้วยหัวแร้ง จากนั้นจึงไปยังอุปกรณ์ชิ้นถัดไปจนเสร็จสิ้น
ในการเชื่อมต่อ Board เล็กนี้เข้ากับ Board หลัก ผมแนะนำให้ใช้ Strip line Pins แบบบางที่มีเส้นผ่านศูนย์กลาง 0.6 มม.
การทำงานปกติ (ไม่มี พลังงาน USB):
การทำงานระหว่างชาร์จ (มี พลังงาน USB)
ขอให้สนุกกับการวัด (Happy Probing)!
สนับสนุนเพื่อรับ Source Code หรือแอปพลิเคชันสำหรับโปรเจกต์นี้
Verified user reviews
ล็อกอินด้วยบัญชีบนเว็บนี้แล้วให้คะแนนหรือคอมเมนต์ได้เลย ระบบเก็บผ่าน Supabase ไม่ต้องใช้ GitHub แล้ว
ยังไม่มีรีวิวที่อนุมัติแล้ว เป็นคนแรกที่มาให้ความเห็นได้เลย