原文連結:【Amiccom A8106 RF 無線調光】 RF 通訊實作 https://pse.is/G8TYS
發射端(transmitter)
發射端遙控器總共有三個按鍵,上下鍵各一,再外加一個可以記憶此時 PWM 狀態,做出關和亮(亮起來時的狀態是上次全關前的亮度)的功能,遙控器如下圖。
「有效」的「按下」
偵測 button 被按這件事我以前是有經驗的,不過還是停留在我知道因為空氣中有很多雜訊,可能導致 input pull-up 的 button state 變成 LOW,明明沒人按,但卻執行被按之後的行為,以前是用「秒數」去決定是否「成功」被按,比如說 state 在 LOW 時維持了 1 秒才算有效。
RF 傳輸邏輯
當長按一次成功時,transmitter 就會執行發射一次 RF 的動作。首先,發射前總得要知道要挾帶的 data 是什麼,因此得先用個 array 將 data 放進去,以 datasheet 內提到 FIFO mode 的傳輸 packet format 的 playload 最大是 256 bytes,其他像是 preamable,ID code,CRC 在官方的定義的 protocol 都有說明,只不過我要實作的應用不需要用到這麼多功能,我只需要 8 個 bytes 就可以處理完 playload 以及 ID 的需求 |
|