Difference between revisions of "ADC (MCP3202) + Raspberry Pi 3"
Jump to navigation
Jump to search
m (Ethanshry moved page Connecting a MCP3202 ADC to Raspberry Pi 3 to ADC (MCP3202) + Raspberry Pi 3: Fall 2018 Wiki Reworks) |
|||
(One intermediate revision by the same user not shown) | |||
Line 35: | Line 35: | ||
[[Category:HowTos]] | [[Category:HowTos]] | ||
+ | [[Category:Raspberry_Pi]] | ||
+ | [[Category:Electronics]] |
Latest revision as of 02:27, 17 August 2018
Circuitry/Wiring
- Orient the ADC in the right direction - The semicircle on the top of the ADC should face upwards. If it is flipped upside down, all the wiring will be wrong, and can be difficult to debug.
- Wire the SPI Pins - There are specific pins on the Pi 3 for SPI. The MCP3202 gets wired from the CLK to the SPI_CLK pin (23 on the Pi), the DOut to SPI_MOSI (19), DIn to SPI_MISO (21), and CS to SPI_CE0 (24).
- Hook up Voltage and Ground the ADC - There is a positive and negative end on the ADC for voltage. Wire the positive end, Vdd, to a 3v3 pin (1 or 17), and the negative end, Vss, to any Ground.
- Wire the Analog Input - Analog input goes into CH0 and CH1. If only one of the channels is needed, wire the other one up to a Ground.
Software/Coding
There is a great library to install and import from Adafruit made for the MCP3008 that will also work with the MCP3202. To install type the following into the command line:
sudo apt-get install git build-essential python-dev
cd ~
git clone https://github.com/adafruit/Adafruit_Python_MCP3008.git
cd Adafruit_Python_MCP3008
sudo python setup.py install
When programming with the ADC, a library such as bcm2835 can make it easy to manage the MCP3202, or simply:
import Adafruit_MCP3008
Then it is easy to read from the ADC. Configure it by setting an mcp object created with the correct pins:
# Software SPI configuration:
CLK = 23
MISO = 21
MOSI = 19
CS = 24
mcp = Adafruit_MCP3008.MCP3008(clk=CLK, cs=CS, miso=MISO, mosi=MOSI)
Finally, use the mcp.read_adc(i)
function, where i is which channel the ADC is reading from, to return a digital value.