1. 程式人生 > >微控制器開發中的插曲——光電開關與黑色大字的故事

微控制器開發中的插曲——光電開關與黑色大字的故事

        最近在開發一機器裝置的控制板;採用STM32F103RCT6 微控制器控制 ;機器模組不是很複雜; 也就是感測器、步進電機、繼電器、真空泵等裝置組成。

        其中裝置主要靠一個機械臂上的吸盤來抓取物體, 機械臂上有一個光電接近開關,通過它可以通知機械臂已經移動到了抓取物體的位置;機械臂需要抓取的是一張A8大小的薄紙卡片,本來是一件很簡單的功能,但是在跑程式的過程中老是出現機械臂明明接近了卡片, 但是光電開關就是沒有探測到;導致機械臂繼續移動;反覆的測試,總是一陣陣的出現這種問題;於是仔細的看程式碼,怎麼也找不到問題, 把機械臂拉回來, 拿著薄紙卡片靠近反覆測試, 發現光電開關是有效的, 於是重新開始測試抓取;奇怪的是又好了;流程可以跑起來, 功能也實現了;然而在後續的開發過程中, 現象又出現了;

         反覆的出現消失; 頓時不明覺厲;以為自己程式碼中有個超級大bug;可是這麼簡單的程式中到底bug在哪裡呢;實在是找不到;不得已先過了這個問題;後來看著薄紙卡片突然靈機一動,會不會是這些黑色字型影響了, 移動動一下, 果然,這個光電開關對黑色區域無法探測, 這簡直是神來之筆;難道是黑色把光電開關的光波都吸收了, 猜測中。。。。