查看: 4976|回復: 4
打印 上一主題 下一主題

[其他] Arduino Nano體驗

[復制鏈接]

該用戶從未簽到

跳轉到指定樓層
樓主
發表于 2019-1-13 09:37 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
本帖最后由 cluse 于 2019-1-14 07:55 編輯

1、起因
     因工作需要,設計一個能用電腦控制的系統,需求如下:
            1) 外接12V電源
            2) 12V電源的電流 、電壓檢測
            3) 控制2路12V輸出  (大電流)            
            4) 控制3路12V輸出  (小電流)
            5) 4路0~12V的電壓檢測

2、模塊選型
    模塊選擇arduino,主要因素是符合設計需求,而且軟件方面提供了很多的api。
    基于我的工作情況,只能使用萬能板,所以選擇nano。

3、其他器件
    大電流采用繼電器,小電流采用光耦,電阻分壓采樣,電流檢測采用ACS712。
    為了方便觀察,再加了一個OLED。

4、實現原理
    通過串口發送指令給nano,nano再控制各個器件的狀態。

5、最終成品
    <改天將圖片補上>


微信圖片_20190114075230.jpg (234.81 KB, 下載次數: 36)

電源控制板

電源控制板

該用戶從未簽到

沙發
 樓主| 發表于 2019-1-13 09:38 | 只看該作者
本帖最后由 cluse 于 2019-1-13 10:47 編輯

1、過程中遇到的坑
     在api很完善的情況下,我依然淌了一些坑,主要原因是沒有看api的介紹。
     1) iic沖突
          為了好玩,自己買了個光強檢測傳感器,采用的iic連接,與oled用相同的端口。
          當我添加光強檢測的代碼后,oled不能顯示了。
          原因:oled采用軟iic,光感采用硬iic,關注以下兩個宏的區別
                U8G2_SSD1306_128X32_UNIVISION_F_SW_I2C  (軟)
                U8G2_SSD1306_128X32_UNIVISION_F_HW_I2C  (硬)

     2) usb供電不足
         板上的器件,全部由USB口供電,導致nano經常重啟。
         原因:估計是usb帶不動繼電器、光耦。(實際運行的電流在200ma左右)
                   幸運的是,在COM打開的狀態下,nano不會重啟。

    3) 軟串口的限制
         不得不說,再次手賤,居然翻出多年前買的esp8266,抱著學習的態度再搞搞。
         基于nano的串口給了電腦,只能用軟串口,結果會有少量數據丟失的情況。
         看了下源碼,應該是收發不能同時進行造成的。
        (這點不太確定,也可能是軟串口占用資源太多,造成的)

2、總結
    1) 出問題了,最好先看文檔,這個比網上教程詳細。
    2) 老的ESP8266模塊沒有API支持,只能用的AT指令,調試耗時。
    3) 軟串口的代碼,只適合教學,不能不用于實際項目。對穩定性有需求的,還是考慮多個硬串口的模塊。

3、物料費用
    總共做了兩塊板子,第一塊完成后(能用,但太丑),又做了一塊。
    兩次淘寶交易,共計200。 超過10元的器件包括:2塊nano,1塊usbtinyisp,1塊esp32,2塊oled。
    (如果你是新手,或者經濟上比較寬裕的,建議支持下論壇的買家,畢竟知識也是有價的)


該用戶從未簽到

板凳
 樓主| 發表于 2019-1-13 09:38 | 只看該作者
本帖最后由 cluse 于 2019-1-13 10:46 編輯

有開始就應該有結束:
      從準備采用nano,到這個簡單的系統完成,大約1個月時間。并非全職開發,期間還有其他事情。
      我想說基礎很重要,c/c++的基礎,能避免很多低級錯誤。

      暫時可以放下arduino的相關事情,轉向我的日常工作了。
      臨走前,希望能對社區做點貢獻,下周看看,能不能優化下軟串口。




該用戶從未簽到

地板
 樓主| 發表于 2019-1-15 12:51 | 只看該作者
搗鼓了兩天,將就能用。

限制很多:
    1- 只支持9600的波特率
    2- 理論上支持兩個串口 (只測試了一個串口的情況,數據沒出錯)
    3- 使用了timer2的中斷
    4- 由于不能設置優先級,其他中斷會有影響
    5-  IO沒有中斷要求,但要能輸入輸出

運行環境:
   nano

示例:
    #include <SoftSerial.h>
    SoftSerial mySerial(3, 2); // Rx TX
    --------------
    mySerial.begin(9600);
    --------------
    其他操作,參見Serial。

SoftSerial.rar

4.1 KB, 下載次數: 18

軟串口

  • TA的每日心情
    開心
    2020-2-15 15:14
  • 簽到天數: 176 天

    [LV.7]常住居民III

    5#
    發表于 2020-1-27 17:56 | 只看該作者
    你的文字表明,你的需求是做一個控制12v的定時控制器。帶oled顯示的。建議給個獨立電源,nano的外接電源正極在VIN,負極接旁邊的GND,你把板子反過來可以看到一個三極穩壓管。12v大電流的分壓的話不可以用這種電阻,要是用RX24的大功率電阻。電流符合ACS712測量范圍就可以。直接用esp8266控制5路的繼電器是可以的。
    您需要登錄后才可以回帖 登錄 | 立即注冊

    本版積分規則

    熱門推薦

    新手求助兩個Arduino UNO使用TTL串口的nRF24L01通信問題
    新手求助兩個Arduino UNO
    小弟現有兩塊Arduino UNO,想用nRF24L01通信,不巧nRF24L01買成了TTL串口的了。 那兩
    [Arduino物聯網開發實戰2]數據反饋
    [Arduino物聯網開發實戰2]
    [md]上一篇:(http://www.xwjziy.live/thread-83177-1-1.html) 除了控制設備外,blin
    用blinker做橋,將第三方設備接入小愛
    用blinker做橋,將第三方
    背景:家中裝修時,考慮會用到智能家居,但又對市面上流行的無線設備不太滿意,所以最
    8266IDE里怎么選擇
    8266IDE里怎么選擇
    我用ESP-12F,IDE里如何選擇,如圖
    求助為什么下載開發板出錯???
    求助為什么下載開發板出錯
    網絡,網址都沒錯,為什么下載開發板出錯???謝謝
    Copyright   ©2015-2016  Arduino中文社區  Powered by©Discuz!   
    快速回復 返回頂部 返回列表
    3d每天组六27个号必中