Raspberry Pi ei tue suoraan GPIO-pinneillä analogiatulojen käsittelyä, vaan analogiatulo käsitellään vaikkapa A/D-muuntimen kautta. Käytämme harjoituksessamme MCP3002 A/D-muunninpiiriä, jonka kanssa kommunikoimme SPI-rajapinnan kautta.
Serial Peripheral Interface (SPI) väylä on sarjaliikennettä, jota voidaan käyttää pinnien 19, 21, 23, 24 ja 26 kautta. Se on siis käytännössä synkroninen sarjaliikenneväylästandardi, jota voidaan käyttää laitteiden väliseen kommunikaatioon
Aivan aluksi täytyy SPI-tuki asentaa ja laittaa toimintaan. Avaa Terminal ja aja seuraavat komennot.
sudo apt-get update sudo apt-get install python-dev git clone git://github.com/doceme/py-spidev cd py-spidev sudo python setup.py install
Avaa terminaalissa raspi-config ja sieltä 7 Advanced options ja sen alta A6 SPI enable/disable. Enable.
Onnistuneen asennuksen voi tarkastaa ajamalla komento lsmod | grep spi jonka tuloksena pitäisi näkyä seuraava rivi.
pi@raspberrypi ~ $ lsmod | grep spi spi_bcm2835 7948 0 pi@raspberrypi ~ $
Tämän jälkeen teemme kytkennän. Uuteen kytkentäämme tarvitsemme:
- MCP3002 AD-muunninpiirin (datalehti)
- potentiometrin (n. 10kΩ)
- kytkentälankoja
MCP3002 pin järjestys
Kytkemme siis MCP3002 ja raspberry pi välisen yhteyden seuraavasti:
- MCP3002:1 => GPIO8 (CEO) pin 24
- MCP3002:2 => potentiometrin säädetty jännite.
- MCP3002:3 => nc
- MCP3002:4 => GND
- MCP3002:5 => GPIO10 (MOSI) pin 19
- MCP3002:6 => GPIO9 (MISO) pin 21
- MCP3002:7 => GPIO11 (SCLK) pin 23
Huomaa että alla näkyvässä kytkennässä on myös aiemmin tekemämme painonapit ja led. Älä anna sen häiritä.
Tehdään ohjelma. Avaa terminaali ja siirry kansioon Python-ohjelmat. Suorita komento:
sudo nano potikka.py
Kirjoita alla oleva koodi:
Kirjoitettuasi ohjelman tallenna se ctrl+o ja paina enteriä kun nano kysyy vahvistusta tiedostonimelle File Name to Write: potikka.py
Voit poistua ohjelmasta ctrl+x.
Kokeillaan ohjelman ajamista antamalla Terminalissa komento
sudo python potikka.py
Testaa pyörittelemällä potentiometriä sitä miten ohjelma toimii.
Suunnilleen jotain tällaista tulosta pitäisi tulla.