Patrzę na opcje ADC na Rasbperry Pi. Zastanawiam się, co jest możliwe do tej pory. Oczywiście łatwe i tanie jest dobre.
Patrzę na opcje ADC na Rasbperry Pi. Zastanawiam się, co jest możliwe do tej pory. Oczywiście łatwe i tanie jest dobre.
Odpowiedzi:
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.
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
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
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.
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
Ciekawe rozwiązanie tutaj: http://www.theremino.com/en/blog/standalone-applications/#raspberry
Nie tylko ADC, ale dowolne konfigurowalne wyjście dla Raspberry Pi.