2026年9月22日 星期二

Arduino Mega2560 測試治具學習

Purpose:

1. 兩個按鍵作為進出平台的開關 另一按鍵為平台上另一上下動作的開關
2. 完成所有動作後按任一進出按鍵就進行退出動作在退出時 蜂鳴器要發聲
3. 完成進入動作 COUNTER 要記數加一次為了控制頂針壓合次數
4. 手動跟程式控制同時可以動作

Architecture:

 
零件配置與用法詳解

以下針對本治具的 8 個核心零件,說明在實際製作測試治具時的多種用法、接線要點與常見陷阱

1. Arduino Mega2560 控制板

 

 

基本用法:本平台的中樞,負責读取按鍵輸入、驅動 Relay、控制蜂鳴器與記數器。建議用 5V 供電(USB 或 12V DC 经 LDO/regulator),板載穩壓器不要長期超過 1.5A 負載。
多用法:① 可同時開多個 UART(Serial/Serial1/Serial2/Serial3),其中一路可接 PC 做 HMI 監控、一 路接 PLC 或蜂鳴器驅動板;② FreeRTOS 多任務(本程式即用 Arduino_FreeRTOS)讓「手動按鍵」與「自動流程」並行不阻塞;③ 27 個數位腳位足以同時接 8 口 Relay + 3 按鍵 + 蜂鳴器,仍有餘裕擴充 sensors。
陷阱:按鍵輸入腳位務必用內部上拉(pinMode INPUT_PULLUP + 按鍵接地)避免浮空亂跳;5V 輸出腳位只能供 ≤40mA,不能直接驅動 Relay 線圈或蜂鳴器。

 

2. 8 Port Relay board

 

基本用法:以 Arduino 的低電平信號切換高電路——本治具用它控制 3 個氣壓閥與蜂鳴器的通斷。典型接法:Arduino 3.3V/5V → Relay 控制端 GND 接地、信號腳接對應輸入腳。
多用法:① 8 口可分成「氣動區(4 口)+ 馬達/電源區(4 口)」做不同功能分組;② Relay 的輔助触点可回授到 Arduino 數位腳,驗證動作是否真的完成(氣缸到位/閥實際切換);③ 串接光耦隔離型 Relay 板可承受工業現場的電湧。
陷阱:Relay 吸合瞬間電流 20~40mA,8 口同時動作 ≈300mA,Arduino 5V pin 不夠,要用 5V 外接電源給 Relay 板供電、與 Arduino 共地;控制大電流負載(馬達、燈)時要在負載側加二極體(續流)或接觸器。

3. 3 個 push button

 

基本用法:① 進/出平台開關(互斥邏輯,程式層面互鎖);② 平台上下動作開關。接法:一脚接 Arduino INPUT_PULLUP 腳位、另一脚接地,按壓時該腳位被拉低即為有效。
多用法:① 長按 vs 短按分辨——本程式可用 FreeRTOS 計時:短按触发單次動作、長按(>500ms)进入持續動作或模式切換;② 双按鍵組合指令(如「進+上」同時按 = 手動微調),實現不寫 HMI 的快捷手控;③ 加装自鎖按鍵(latching switch)做「手動/自動」模式切換。
陷阱:機械按鍵必有抖動(bounce 5~20ms),軟體要 debounce(延遲 20ms 複讀 或狀態機);ESD 敏感的工業環境建議並聯 100nF 電容 + 1kΩ 電阻。

4. 3個氣壓控制閥

 

基本用法:電磁閥得電 → 切換進/排氣 → 驅動氣缸單向動作。5V DC 電磁閥直接由 Relay 驅動是最常見做法(避免 Arduino 直接吸合線圈)。
多用法:① 二位三通閥做單向氣缸(回弹用彈簧或另一側氣壓);② 二位五通閥做雙向氣缸(進/出各一口);③ 串接電磁閥分層控制——主閥管總氣源、子閥分管路,任一子閥故障不影響其他回路;④ 加装減壓閥調工作壓力(一般治具 0.3~0.6 MPa 足夠),避免直接吃 0.7+ MPa 廠房氣源打穿氣缸密封。
陷阱:DC 電磁閥線圈有极性,接反不動作且可能燒線圈;高频吸放(>10次/分)會縮短線圈壽命,程式裡要限制最小動作間隔;管路要加消音器,否則每次換向的「呲—」聲非常擾民。

5. 1個蜂鳴器

 

基本用法:治具完成退出動作時報聲提示算術成功/失敗。有源蜂鳴器(內建振蕩)接 DC+/GND 即鳴;無源蜂鳴器要 Arduino PWM 給 2~4kHz 方波。
多用法:① 用不同節奏表達不同結果——1 短聲=PASS、3 短聲=FAIL、長鳴=急停/警示,這是測試治具的人機慣例;② 串联蜂鳴器+LED 做雙通道提示(視覺+聽覺),工廠噪音環境下視覺補償;③ 由 FreeRTOS 定時任務獨立控制,不阻塞主動作流程。
陷阱:蜂鳴器電流 15~40mA,可直串 220Ω 電阻接 5V;但持續鳴叫會發熱,報完應主動斷電(本程式做法);無源蜂鳴器若接有源的接法會完全沒聲。

6. 次數記數器

 

 

基本用法:每次完成「進入→動作→退出」循環,計數 +1,用來統計頂針壓合次數/治具稼動次數。硬體計數器(如 MAX7219+LED 或独立計數卡)由 Arduino 的 DIGITAL 腳位給 pulse 即可。
多用法:① 可設定目標值(如 100 次)Reached 時自動報警或鎖定,適合「定數生產」場景;② 結合 EEPROM/SD 卡存歷史稼動紀錄,產線可追溯;③ 双計數器設計——「總計數」+「班次計數」(班次可手動清零)。
陷阱:純軟體計數(變數+1)掉電即歸零,若要持久化要寫 EEPROM(有擦寫次數上限,每 1 万次更新一次才寫)或用硬體計數 IC(斷電保存型)。

7. 4個氣壓缸

 

基本用法:本平台用 4 個氣缸做頂針升降/平台進出的直線運動。行程、缸徑要按負荷選:頂針力 = 氣圧 × 活塞面積 − 負荷摩擦損耗(保守乘 0.7 安全係數)。
多用法:① 雙氣缸並聯可加倍出力(同一側);② 氣缸加磁簧開關(magnetic reed)回授行程位置,Arduino 讀取即可確認「到位」,比純延遲等待可靠;③ 气爪、旋转气缸、手指气缸等都是同一套電磁閥驅動方式的變體,本平台架構可直接移植;
陷阱:無行程開關時務必用「時間+延遲」做保護,避免氣缸撞端;緩衝墊/油封老化會漏氣→行程不足,定期維護;高頻動作場景(>50 次/分)建議選薄型氣缸,普通圓筒式行程反覆衝擊會缩短緩衝塞壽命。

8. ACto12VDC變壓器

 

基本用法:把 110V/220V 交流轉為 12V DC,供電給 Relay 板、電磁閥蜂鳴器、計數器等。Arduino Mega 的 Vin 也接受 7~12V,可用同一電源帶(注意總電流)。
多用法:① 選 12V/1A 以上是底线,若 8 口 Relay 同時吸合+電磁閥全動+蜂鳴器,峰值可達 0.8~1.5A;② 分 2 路輸出——12V 給電磁閥/Relay(功率負載)、5V USB 給 Arduino(數位電路),避免功率負載的電流波動干扰 MCU;③ 工業環境建議换成 24V DC 電源(PLC 生態標準) + 24V 電磁閥/Relay,抗干擾與配線距離都更好。
陷阱:AC-DC 變壓器若非隔離型(transformer 隔离 vs 非隔离),一次側與二次側共地會把雜波傳進Arduino;接地策略:整個電源箱的 GND 匯流排只接一點,與 Arduino GND 單點連,避免地環流。


整合提醒

    • 手動/自動並存:本架構的精髓——按鍵手動動作與程式自動流程同時可用,關鍵在 FreeRTOS 任務排程 + 互鎖旗標(避免手動與自動同時驱动同一口 Relay),这也是本程式 vFlag structure 存在的理由。

 

    • 配線安全:AC 側與 DC 側走不同線槽;DC 動力線(電磁閥、Relay 負載)用 12AWG 以上;所有接線端用接線頭+cage clamp,忌裸線壓接。


沒有留言:

張貼留言