Control Coin Acceptor with Arduino
Vending Telemetry: การเชื่อมต่อ Commercial Coin Acceptor
การแปลงสกุลเงินโลหะจริงให้เป็นเครดิตดิจิทัลจำเป็นต้องมีความแม่นยำด้านเวลาอย่างยิ่ง โปรเจกต์ Control Coin Acceptor นี้จะเชื่อมต่อกลไกรับเหรียญขนาดใหญ่สำหรับเครื่องอาร์เคด/ตู้หยอดเหรียญเชิงพาณิชย์ (เช่น CH-926) เข้ากับ Arduino โดยตรง! คุณไม่สามารถใช้ digitalRead() มาตรฐานใน loop() เพื่อตรวจจับเหรียญได้เลย เครื่องรับเหรียญจะส่งพัลส์ 20 มิลลิวินาทีที่เร็วมาก หาก Arduino กำลังยุ่งกับการอัปเดต LCD พัลส์นั้นก็จะถูกพลาดไป และเครื่องจะขโมยเงินของลูกค้าไปอย่างแท้จริง!

ความจำเป็นของ Hardware Interrupt (attachInterrupt)
เพื่อรับประกันการนับที่แม่นยำ 100% ระบบจะต้องใช้ Silicon Interrupts โดยเฉพาะ!
- สายสัญญาณของ Coin Acceptor ต่อตรงเข้ากับ Arduino Pin 2 หรือ Pin 3 (เป็น Pin เดียวบน Uno ที่สามารถรองรับ Hardware Interrupts ได้!)
- Interrupt Service Routine (ISR) จะหยุดการทำงานของคอร์หลักทั้งหมดทันทีในระดับนาโนวินาทีเมื่อเหรียญตกลงมา!
volatile int totalCredits = 0; // ต้องกำกับด้วย volatile! เพราะมีการเปลี่ยนแปลงโดยระบบ!
void setup() {
// หากพัลส์จากกลไกรับเหรียญเปลี่ยนจาก 5V ลงไปที่ 0V:
attachInterrupt(digitalPinToInterrupt(2), coinInsertedISR, FALLING);
}
// ฟังก์ชันนี้จะทำงานทันทีในเบื้องหลัง โดยไม่สนดีเลย์ใดๆ ใน loop()!
void coinInsertedISR() {
totalCredits++; // เก็บค่าสกุลเงิน!
}
อันตรายจากการลดระดับแรงดัน 12V เป็น 5V!
เครื่องรับเหรียญเชิงพาณิชย์ทำงานโดยใช้แหล่งจ่ายไฟ 12-Volt ขนาดใหญ่ระดับอุตสาหกรรม เพื่อจ่ายไฟให้กับ solenoids ป้องกันการติดขัดที่หนักหน่วงและ optical sorters ภายใน
- สายสัญญาณจะส่งเอาต์พุตเป็นพัลส์ 12V ขนาดใหญ่!
- สำคัญมาก: หากคุณต่อสัญญาณ 12V เข้ากับ Arduino Pin 2 โดยตรง คุณจะทำให้
ATmega328Pชิปไหม้ทันที! - คุณต้องสร้าง Voltage Divider (เช่น ตัวต้านทาน 10K และ 4.7K) หรือใช้ logic-level converter เพื่อลดพัลส์ 12V ลงให้เป็นสัญญาณ logic 5V ที่ปลอดภัย ก่อนที่มันจะไปถึง interrupt pin!
ฮาร์ดแวร์กลไกที่จำเป็น
- Arduino Uno/Nano (สำหรับความสามารถด้าน hardware interrupt)
- Multi-Coin Acceptor (CH-926 / JY-926) (ตั้งโปรแกรมไว้ให้จดจำน้ำหนัก, เส้นผ่านศูนย์กลาง และคุณสมบัติโลหะของเหรียญที่เฉพาะเจาะจงได้ในตัว)
- Voltage Divider Components (ตัวต้านทาน 10K / 4.7K Ohm)
- Massive 12V Power Adapter (จำเป็นในการขับเคลื่อน solenoids ของกลไกรับเหรียญ โดยแยกจาก 5V rail ที่ละเอียดอ่อนของ Arduino)
- Relay Module (เพื่อจ่ายสินค้าหรือเปิดเกมเมื่อตัวแปร
totalCreditsถึงเกณฑ์ที่กำหนด!)