題:
如何連接模數轉換器(ADC)?
John La Rooy
2012-07-26 15:38:54 UTC
view on stackexchange narkive permalink

我正在尋找Raspberry Pi上ADC的選項。我想知道到目前為止有什麼可能。當然簡單又便宜是好的。

您需要什麼?
@Jivings,我正在考慮幾個可以用相對較低的採樣率完成的項目。
六 答案:
Steve Robillard
2012-07-26 21:37:11 UTC
view on stackexchange narkive permalink

Adafruit有一個不錯的 tutorial,它介紹瞭如何使用 MCP3008($ 3.75)-具有SPI接口的8通道10位ADC來控制體積的mp3文件,但它應該為您提供任何從模擬到數字項目的良好起點。

Arduino和PICAXE都是錯誤的解決方案。
我不同意Arduino是這裡的錯誤解決方案。 Arduino使用USB,而MCP3008使用SPI。 Arduino已準備就緒,可以立即使用,開箱即用,而MCP3008將需要一些配件並開始工作。 MCP3008較便宜,但到您添加所需的所有東西時(GPIO斷開,安裝麵包板..),成本差距就沒有看起來的那麼大。總而言之,如果您想進行實驗并快速轉向Arduino,則是更好的選擇,但如果您要永久安裝,我同意MCP3008的最佳性能。
John La Rooy
2012-07-28 15:51:07 UTC
view on stackexchange narkive permalink

ADS1115

ADS1113,ADS1114和 ADS1115是精密的模數轉換器(ADC),具有16位分辨率採用超小型無鉛QFN-10封裝或MSOP-10封裝。 ADS1113 / 4/5在設計時就考慮了精度,功率和易於實現的問題。 ADS1113 / 4/5具有板載基準和振盪器。數據通過兼容I²C的串行接口進行傳輸;可以選擇四個I²C從地址。 ADS1113 / 4/5使用2.0V至5.5V的單電源供電。

首先,您需要確保已加載I²C模塊。接下來,如下圖所示連接ADS1115。根據連接到哪個引腳的ADDR,可能有4個不同的地址。這意味著您最多可以將16個通道連接到一條I²C總線。

GND = 0x48,VDD = 0x49,SDA = 0x4A,SCL = 0X4B

enter image description here

您可以看到這樣的最後一次轉換的結果

 #i2cget -y 0 0x49 0 w0x0000  

默認值為0x0000為由於尚未執行任何轉換,因此返回此處。現在讓我們看一下配置寄存器

 #i2cget -y 0 0x49 1 w0x8385  

首先是LSB,所以等效於 0b1000010110000011

我想對AIN0進行單端轉換,因此我需要將位[14:12]寫為 0b100 。即 0b1100010110000011

 #i2cset -y 0 0x49 1 0xC385 w#i2cget -y 0 0x49 0 w0xa30b  

LSB是首先,所以它等於小數點2979

這些封裝類型難道不是因為引腳尺寸/間距而更難使用嗎?特別是對於那些像我這樣患有關節炎的人(這限制了我的手巧。
@SteveRobillard,是的,它們很難一起使用,但絕對比看起來容易得多。對於MSOP,它具有放大倍數,助焊劑,焊芯和良好的焊台。您可以用一些焊料在MSOP的一個角上釘很多,直到您對定位滿意為止。小尺寸確實有助於減少電路中的噪聲,因此值得一試,您可能會感到驚訝。
正是由於這個,我一直在尋找。但是25年來還沒有完成字節順序轉換!將不得不擺脫一些生鏽。
@JohnLaRooy為您快速解答。如果我想在A1上進行單端轉換,我會寫0b010,A2、0b110和A3 0b001嗎?
@Saeven,參見數據表中的“表8.配置寄存器字段說明”。單端A1為'0b101'
@SteveRobillard, Adafruit有一個突破:) https://www.adafruit.com/product/1085
@JohnLaRooy對您的最後一個Q。當您從i2cget獲得結果時,是否不將第一位移到末尾,然後反轉字符串?例如a30b,變成30ba,變成ab03? (以相同的方式,0x8385變成3858,然後變成8583,然後轉換為0b1000010110000011)。
Dan B
2012-07-26 18:59:19 UTC
view on stackexchange narkive permalink

只要您不希望使用超高比特率或分辨率,就可以使用Arduino。 Arduino之所以不錯,是因為它們擁有龐大的支持社區,已經存在了一段時間,並且可以通過USB 沒有GPIO進行通訊!

這裡有一個鏈接,用於西蒙·蒙克(Simon Monk)的博客文章,其中說明了他如何使用python從Raspberry Pi與Arduino通信。

以防萬一,您可能從未聽說過Arduino(也許您以前從未聽說過Arduino)生活在一塊岩石下),這是其簡介頁面的鏈接,以及初學者水平的模擬輸入示例

Guy
2012-07-26 21:37:04 UTC
view on stackexchange narkive permalink

類似於使用Arduino,但是連接到RPi UART的PICAXE設備又如何呢?這將更小且更便宜。在我看來,Arduino取決於您的實際需求。

linuxgnuru
2014-07-31 21:02:57 UTC
view on stackexchange narkive permalink

在一兩個月內(由於運往非洲),我將獲得一個具有connectionpi支持 WiringPi站點的I2C PCF8591板,並且該板使用3.3v(通常), Amazon鏈接上的WaveShare版本,據我所讀,PCF8591相當不錯,但直到我真正拿到板子之前,我不能說它是否好

Livio
2014-08-06 14:58:42 UTC
view on stackexchange narkive permalink

這裡有一個有趣的解決方案: http://www.theremino.com/en/blog/standalone-applications/#raspberry

不僅ADC,而且任何類型的可配置Raspberry Pi的輸入輸出。



該問答將自動從英語翻譯而來。原始內容可在stackexchange上找到,我們感謝它分發的cc by-sa 3.0許可。
Loading...