ภาพรวม

พอเปิดไฟ สถานีของเราจะเข้าสู่โหมดสแตนด์บาย นั่นหมายความว่าตัวฮีตเตอร์ยังไม่ถูกเชื่อมต่อ และน้องจะเห็นอุณหภูมิปัจจุบันของหัวแร้งบนหน้าจอ LED
ถ้าจะเริ่มทำงาน ให้กดปุ่มที่ 3 (Mode/ Standby) ค้างไว้สักพัก หลังจากนั้นสถานีจะเข้าสู่โหมดการทำงานล่าสุดที่ถูกบันทึกไว้ในหน่วยความจำ EEPROM
เรามีโหมดการทำงานสองโหมดด้วยกัน ชื่อว่า "CLASS 1" กับ "CLASS 2"
CLASS 1 คือโหมดควบคุมอุณหภูมิ น้องสามารถตั้งค่าอุณหภูมิที่ต้องการได้ด้วยปุ่มที่ 1 กับ 2 (UP กับ DOWN) กดสั้นๆ อุณหภูมิจะเปลี่ยนทีละ 1 องศา กดค้างจะเปลี่ยนทีละ 5 องศา ค่าเหล่านี้สามารถปรับเปลี่ยนได้ในไฟล์สเก็ตช์:
const byte pinHeater = 2; //pin for irf520 module
const uint16_t minTemp = 50;//temperature minimum
const uint16_t maxTemp = 700;//temperature maximum
const uint16_t measInterval = 500; //measurement interval ms. over 500
const byte shortPressStep = 1; //temperature step on button's short press
const byte autoPressStep = 5; //temperature step on button's long press
ทางด้านขวาของหน้าจอ LED น้องจะเห็นอุณหภูมิที่ตั้งไว้ ส่วนด้านซ้ายคืออุณหภูมิจริงของหัวแร้งที่อ่านมาจากเทอร์โมคัปเปิลชนิด K

CLASS 2 โหมดควบคุมกำลังไฟ ในโหมดนี้ น้องสามารถตั้งระดับกำลังไฟได้ตั้งแต่ 0% ถึง 100% วิธีการควบคุมเหมือนกับ Class 1 เลย คือใช้ปุ่มที่ 1 (ขึ้น) และปุ่มที่ 2 (ลง) แบบกดสั้นและกดค้าง ด้านขวาของจอแสดงระดับกำลังไฟที่ต้องการ ด้านซ้ายแสดงอุณหภูมิหัวแร้ง
เปลี่ยนโหมดการทำงานโดยกดปุ่มที่ 3 แบบสั้นๆ ส่วนการกดปุ่มที่ 3 ค้างไว้จะทำให้กลับสู่โหมดสแตนด์บาย

ถ้าหัวแร้งถูกถอดออก หรือมีปัญหาอื่นๆ ทำให้ไม่สามารถอ่านข้อมูลจากเทอร์โมคัปเปิลได้ ระบบจะแสดงสัญลักษณ์พิเศษแทนอุณหภูมิหัวแร้ง ทั้งในโหมดสแตนด์บายและโหมดทำงาน


โมดูลต่างๆ
สถานีนี้มีโครงสร้างเป็นโมดูลและแทบไม่มีชิ้นส่วนแยกเลย ชิ้นส่วนแยกชิ้นเดียวคือตัวต้านทาน (Resistor) สำหรับไฟ LED ตัวบอกสถานะการให้ความร้อน
1. เพาเวอร์ซัพพลาย พี่ใช้เพาเวอร์ซัพพลายจากเครื่องแฟกซ์เครื่องเก่า ที่มีเอาต์พุต +5 และ +24 โวลต์ ตามที่ต้องการ
2. โมดูลต่างๆ
- Arduino NANO มันถูกวางอยู่บน PCB ที่พี่ทำขึ้นเอง พร้อมคอนเนคเตอร์และเฮดเดอร์ทั้งหมดที่จำเป็น ซึ่งพี่ผลิตด้วยเทคโนโลยีเลเซอร์ทรานสเฟอร์ แต่น้องก็ใช้เบรดบอร์ดแทนได้นะ งานนี้จัดไปวัยรุ่น





- โมดูล MOSFET IRF520 สำหรับควบคุมฮีตเตอร์ ตัวนี้ห้ามช็อตนะตัวนี้

- ไดรเวอร์เทอร์โมคัปเปิลชนิด K MAX6675

- โมดูล MAX7219 8 หลัก

แค่นี้แหละที่ต้องใช้!!!!! ง่ายมั้ยล่ะ
นอกจากนี้ก็ต้องมีพวกชิ้นส่วนพื้นฐานแบบพาสซีฟหน่อย เช่น ปุ่มกด, คอนเนคเตอร์, สายไฟ และปลั๊กต่างๆ
รายละเอียดเทคนิคแบบจัดเต็ม
หัวแร้งราคาถูก 10 ดอลลาร์เนี่ย มันแค่จ่ายไฟ 110V เข้าไปในแท่งโลหะจนมันร้อนแดงและเผา PCB ของคุณได้สบายๆ แต่ DIY Arduino Soldering Station ตัวนี้มันเลียนแบบเครื่อง Hakko อุตสาหกรรมราคา 300 ดอลลาร์ได้เลย โดยใช้หลักการควบคุม PID (Proportional-Integral-Derivative) แบบสุดล้ำ อ่านอุณหภูมิปลายหัวแร้งระดับไมโครวินาทีเป็นพันๆ ครั้งต่อวินาที แล้วสั่งงาน MOSFET ตัวเบิ้มๆ เพื่อรักษาอุณหภูมิให้เป๊ะเวอร์แบบสมบูรณ์แบบทางอุณหพลศาสตร์
ขยายสัญญาณเทอร์โมคัปเปิล (โมดูล MAX6675)
หัวแร้งคุณภาพดีเนี่ย มันมีสองสิ่งสำคัญข้างใน: ขดลวดทำความร้อนตัวเบิ้ม กับ เทอร์โมคัปเปิลจิ๋วๆ
- เทอร์โมคัปเปิลจะสร้างแรงดันไฟฟ้าเล็กจิ๋วมากเมื่อมันร้อนขึ้น—มักจะอยู่ในระดับมิลลิโวลต์ดิบๆ (เช่น
0.005 โวลต์ที่ 300 องศาเซลเซียส) - พินอนาล็อกของ Arduino อ่านค่า
0.005Vไม่ได้หรอก มันเรโซลูชันต่ำเกินไป - โปรเจคนี้เลยใช้ โมดูล MAX6675 (ที่เห็นในภาพด้านบน) มาแก้ปัญหา ไอซีตัวนี้จะขยายสัญญาณและแปลงสัญญาณจิ๋วๆ จากเทอร์โมคัปเปิลให้เป็นดิจิตอล ส่งค่าอุณหภูมิที่สะอาดและเรโซลูชันสูงให้ Arduino ผ่านการสื่อสาร SPI
ควบคุมกำลังไฟ (IRF520 MOSFET)
ถ้าคุณแค่เปิดไฟตอนมันเย็นเกิน แล้วปิดตอนมันร้อนเกิน อุณหภูมิจะแกว่งขึ้นลงรุนแรงจนทำลายชิปซิลิคอนอันบอบบางได้เลย
- โปรเจคนี้ใช้โครงร่างควบคุมที่เรียบง่ายแต่ได้ผล ซึ่งหลักการก็คล้ายๆ PID นั่นแหละ
- ระบบจะอ่านอุณหภูมิจาก MAX6675 แล้วสั่งการ โมดูล IRF520 MOSFET (ที่เห็นในภาพด้านบน) แบบไดนามิก
- มันจะสวิตช์กระแส 24V ไปยังองค์ประกอบทำความร้อน เพื่อพาปลายหัวแร้งไปถึงอุณหภูมิเป้าหมายและรักษาไว้ตรงนั้น ป้องกันไม่ให้ร้อนเกินอันตราย
ส่วนประกอบสำหรับการประกอบระดับอุตสาหกรรม
- Arduino Nano (ตัวมาตรฐานสำหรับเวิร์กสเตชัน DIY)
- โมดูลขยายสัญญาณเทอร์โมคัปเปิล MAX6675 (สำหรับอ่านและแปลงสัญญาณเทอร์โมคัปเปิลที่ซ่อนอยู่ให้เป็นดิจิตอล)
- โมดูล MOSFET กำลังสูง IRF520 (จำเป็นสำหรับสวิตช์กระแส 24V ให้กับฮีตเตอร์จากระดับลอจิกของ ATmega)
- แหล่งจ่ายไฟสวิตชิ่ง 24V / 4A (เครื่องยนต์หลักสำหรับงานหนัก)
ตัวเคส


การประกอบ






ผลลัพธ์
Sketch
Sketch ตัวนี้จัดไปแบบเบสิกสุดๆ ไม่ได้ใช้ PID, classes, objects หรืออะไรที่ดูเข้าใจยากเลย ไลบรารีทั้งหมดก็หาโหลดได้ทั่วไปในเน็ต มีแค่ไลบรารีพิเศษตัวเดียวที่พี่ใช้คือ "sav_button" เอาไว้จัดการสถานะปุ่มกด หาดาวน์โหลดได้ตามเว็บทั่วไปเลย พี่เจอมันในเน็ต เขียนโดย Alexey Shikharbeev ขอบคุณมากๆนะเจ้าของโค้ด