Jak podłączyć konwerter analogowo-cyfrowy (ADC)?

22

Patrzę na opcje ADC na Rasbperry Pi. Zastanawiam się, co jest możliwe do tej pory. Oczywiście łatwe i tanie jest dobre.

John La Rooy
źródło
Do czego ci to potrzebne?
Jivings
@Jivings, myślę o kilku projektach, które mogą zadowolić się stosunkowo niskimi częstotliwościami próbkowania.
John La Rooy,

Odpowiedzi:

15

Adafruit ma fajny samouczek na temat korzystania z MCP3008 (3,75 USD) - 8-kanałowy 10-bitowy ADC z interfejsem SPI do sterowania głośnością pliku mp3, ale powinien dać dobry punkt wyjścia dla każdego projektu analogowo-cyfrowego.

Steve Robillard
źródło
1
Zarówno Arduino, jak i PICAXE są tutaj złymi rozwiązaniami.
Alex Chamberlain
Nie zgadzam się, że Arduino jest tutaj złym rozwiązaniem. Arduino używa USB, podczas gdy MCP3008 używa SPI. Arduino jest gotowe do zamontowania i gotowe do użycia po wyjęciu z pudełka, podczas gdy MCP3008 będzie potrzebował akcesoriów i pracy, aby zacząć. MCP3008 jest tańszy, ale do czasu dodania wszystkich potrzebnych rzeczy (przełamanie GPIO, montaż płyty montażowej ..) różnica w kosztach nie jest tak duża, jak się wydaje. Podsumowując, jeśli chcesz eksperymentować i szybko zmienić Arduino, jest lepszą opcją, ale jeśli szukasz stałej instalacji, zgodziłbym się, że MCP3008 działa najlepiej.
Dan B
8

ADS1115

ADS1113, ADS1114 i ADS1115 to precyzyjne przetworniki analogowo-cyfrowe (ADC) o 16 bitach rozdzielczości oferowane w bardzo małym, bezołowiowym pakiecie QFN-10 lub pakiecie MSOP-10. ADS1113 / 4/5 zostały zaprojektowane z myślą o precyzji, mocy i łatwości implementacji. ADS1113 / 4/5 mają wbudowany układ odniesienia i oscylator. Dane są przesyłane przez interfejs szeregowy kompatybilny z I²C; można wybrać cztery adresy podrzędne I²C. ADS1113 / 4/5 działa z jednego zasilacza od 2,0 V do 5,5 V.

Najpierw upewnij się, że moduły I²C są załadowane . Następnie podłącz ADS1115, jak pokazano poniżej. Możliwe są 4 różne adresy w zależności od tego, do którego pinu ADDR jest podłączony. Oznacza to, że możesz podłączyć 16 kanałów do jednej magistrali I²C.

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

wprowadź opis zdjęcia tutaj

Możesz zobaczyć wynik ostatniej konwersji w ten sposób

# i2cget -y 0 0x49 0 w
0x0000

Zwracana jest tutaj domyślna wartość 0x0000, ponieważ nie przeprowadzono jeszcze żadnych konwersji. Teraz spójrzmy na rejestr konfiguracji

# i2cget -y 0 0x49 1 w
0x8385

LSB jest pierwszy, więc jest to równoważne z 0b1000010110000011

Chciałbym wykonać pojedynczą konwersję na AIN0, więc muszę zapisać bity [14:12] jako 0b100. to znaczy0b1100010110000011

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

LSB jest pierwszy, więc jest równy 2979 po przecinku

John La Rooy
źródło
1
czy te typy pakietów nie są trochę trudniejsze w pracy ze względu na rozmiar / odstępy pinów? Zwłaszcza dla takich jak ja z zapaleniem stawów (co ogranicza moją manualną zręczność.
Steve Robillard,
@SteveRobillard, tak oni trudniejsze do pracy, ale na pewno łatwiejsze niż się wydaje być. Dla MSOP pomaga mieć powiększenie, topnik, knot lutowniczy i dobrą stację lutowniczą. Możesz mieć sporo prób, aby sczepić jeden róg MSOP z odrobiną lutu, dopóki nie będziesz zadowolony z pozycjonowania. Mały rozmiar pomaga zmniejszyć hałas w obwodzie, więc warto spróbować, możesz być zaskoczony.
John La Rooy,
1

O ile pożądane użycie nie wymaga super wysokich przepływności lub rozdzielczości, prawdopodobnie możesz po prostu użyć Arduino. Arduino są fajne, ponieważ mają ogromną społeczność do wsparcia, są już od jakiegoś czasu, a komunikacja przez USB nie ma GPIO!

Oto link do posta na blogu Simona Monka z instrukcjami, jak komunikuje się z Arduino z Raspberry Pi za pomocą pytona.

Również na wypadek, gdybyś nigdy wcześniej nie słyszał o Arduino (być może mieszkałeś pod kamieniem), tutaj znajduje się link do ich strony z wprowadzeniem i przykład wejścia analogowego dla początkujących.

Dan B.
źródło
0

Podobne do korzystania z Arduino, ale co powiesz na urządzenie PICAXE podłączone do RPi UART? Byłoby to mniejsze i znacznie tańsze. Dla mnie Arduino wydaje się być na topie w zależności od twoich rzeczywistych potrzeb.

Chłopak
źródło
0

Za miesiąc lub dwa (ze względu na wysyłkę do Afryki) otrzymam płytkę I2C PCF8591, która ma obsługę wiringpi Witryna WiringPi, a płyta używa 3.3v (zwykle) Mam wersję WaveShare na Amazonce Amazon link Od tego, co ja ” przeczytałem, że PCF8591 jest całkiem fajny, ale dopóki nie będę miał przed sobą płyty, nie mogę powiedzieć, czy jest dobra, czy nie

linuxgnuru
źródło