用Arduino做一個精密的百元頻率測量儀

以前學習 555 振盪器電路時,最困擾的事情,莫過於電路接好之後,沒有儀器可以驗證輸出的頻率,只能將輸出接上放大電路,湊合一顆馬達來看看轉速變化,就算學會方波產生電路了,到底出來的頻率對不對,只有老天知道了。總不會要我為了業餘興趣,買一台示波器吧?

現在,隨手可得的 Arduino 跟一片便宜的 1602 I2C LCD 液晶螢幕,幾行短短的程式,就能弄出一台精密的頻率測試儀(雖然看起來挺簡陋的)。除了測 IC 的輸出信號之外,也可以湊一些簡單的感測電路,像光遮斷器、雷射、紅外線感測器,來測馬達轉速風扇轉速風速振動頻率,只要把 Sensor 出來的類比信號,接入史密特觸發電路 (Schmitt trigger),變成比較乾淨整齊的 5V方波,再接進來做好的 Arduino 頻率測量儀,馬上就知道頻率了,有的感測器模組,本身就有觸發電路。若懶得搞這複雜,而且不是要測量很精密的頻率,只要感測器電壓不要大到會燒壞Arduino DI 腳位,或者太低感測不到,跳過上述觸發電路,直接接進來看看信號大概的頻率,也未嘗不可。

如何使用 LiquidCrystal 函式庫的跑馬燈 Autoscroll 功能?

開發 Arduino 應用程式的過程,比較麻煩的是沒有螢幕顯示。除錯的時候,沒有比較直覺的方式來反覆測試結果。透過序列埠串口 Serial Port 來顯示溝通,是個方法,但有時候總是覺得要開Arduino內建的 Serial Monitor,或用像 Putty 這種終端機模擬程式來用,有點麻煩,尤其當板子頻繁插拔的時候更是如此。
買一片便宜的雙行顯示液晶螢幕,我覺得是個不錯的方案,像照片這種 16x2 的 LCD 螢幕 (兩行,每行16個英文字元),當作在電腦寫C語言常用的 printf 輸出,還挺方便的。買來後剪個瓦愣紙板把螢幕包好,或者3D列印個外殼保護,這小螢幕可以用更久不會壞。

透過USB COM/TTL與PUTTY,跟ESP8266模組通訊

ESP8266 物連網通訊微處理器

ESP8266 是位於大陸深圳的安信可科技有限公司,所開發的一顆,低價多功能的WiFi無線通訊微處理器,IC裡面有一個32位元、80MHz的MPU微處理器 (Arduino UNO 用的ATmega328p,只有16MHz),與 801.11 B/G/N WiFi 無線通訊功能。
IC裡面還有16通道的GPIO,可拿來控制一些開關、燈號,以及一個10-bit 解析度的類比數位轉換器 (ADC),可以接類比感測器,並讀取感測器的數位值。此外還有 SPI、I2C、I2S、UART等串列通訊介面,可以跟其他的模組,進行有線通訊,並將其他沒有無線通訊功能的模組,轉成有無線通訊能力。

Ubuntu 執行 sudo 指令,出現 sudoers 錯誤

出現 sudoers 錯誤,不給執行 sudo 指令

這個錯誤出現:
XXX is not in the sudoers file. This incident will be reported.

造成無法執行任何 sudo 權限的指令,連關機 shutdown 都不行了。多半是因為在更動使用者群組的時候,下錯命令。常犯的錯誤,是要把某個 user 加入特定的 group 時,執行以下指令:
sudo usermod -G xxxgroup xxxuser