傳感器(模塊)與Arduino等單片機傳輸數(shù)據(jù)時,是在一定的傳輸協(xié)議約定下的,比如IIC傳輸協(xié)議,集成電路總線傳輸結(jié)構(gòu),只需要SCL和SDA兩條線,然后所有的傳感器都掛在兩條線上,當需要傳輸數(shù)據(jù)時,單片機向傳感器發(fā)送信號,告訴它我要讀你的數(shù)據(jù)了,然后傳感器應答,再讀取,結(jié)束。如果再次傳輸數(shù)據(jù),就再來一遍。 關鍵是單片機發(fā)送起始信號時,是向傳感器的地址發(fā)送的,象ADS1115這種傳感器模塊,它有地址引線,當使用兩個或兩個以上時,可以把引腳上的焊點焊上,地址就改變了,同時使用兩個根本不是問題。 VL6180X沒有這種改變地址的預留焊點。在網(wǎng)絡上各處搜索了一通,沒有能直接改變VL6180X地址的辦法,包括Arduino的官方論壇里,不少懸而未決的問題。但一路下來,總體上思路是有的。一種是輪詢,即象串口那樣,我們自己建立一個SCL節(jié)拍,這樣雖然同一地址有多個器件,但同一時刻只有一個器件能收到單片機發(fā)過來的起始信號。有人寫了代碼,但我沒有調(diào)通。另一種是直接使用TCA9548A這個多路擴展IIC的現(xiàn)成的模塊。 TCA9548A IIC多路擴展板有本領把1路IIC擴展成8路IIC,只是使用起來有些太過痛苦和麻煩。總之至此可以同時使用兩個VL6180X模塊。 同時測量兩只小盒子的移動: 效果: 期間也有很值得記錄的兩件事: 這幾天很糟糕的是無法打開phyphox官網(wǎng),因此phyphox端程序無法使用phyphox editor,只好找了以前的phyphox程序改來改去,終于能接收數(shù)據(jù)了。 另,我越來越發(fā)現(xiàn),與其使勁折騰ESP32開發(fā)創(chuàng)作環(huán)境的費勁(而且ESP32由于版本太多,引腳定義也比較亂),還不如直接使用Arduino+藍牙來配合Phyphox了,Arduino Nano開發(fā)板10元左右,如果使用直插Attiny85則在6元左右,不使用HC-08而使用藍牙JDY系列的BLE5大約8元,即14至18元之間,價格顯然低于果云ESP32,ESP32果云的總得30元左右吧? ------心存DREAM喜歡琢磨實驗并自娛自樂的MIRACLE------ 實驗教學值得學習的去處: |
|
來自: 新用戶5228KeDY > 《待分類》