- Požadované komponenty
- Modul ADF / DAC PCF8591
- I2C piny v Raspberry Pi
- Prepojenie modulu PCF8591 ADC / DAC s programom Raspberry Pi
- Program Python pre analógovo-digitálnu konverziu (ADC)
Analógovo-digitálna konverzia je veľmi dôležitá úloha v zabudovanej elektronike, pretože väčšina snímačov poskytuje výstup ako analógové hodnoty a dodáva ich do mikrokontroléra, ktorý rozumie iba binárnym hodnotám, musíme ich previesť na digitálne hodnoty. Aby mikrokontroléry mohli spracovávať analógové dáta, potrebujú analógovo-digitálny prevodník.
Niektoré mikrokontroléry majú zabudované ADC ako Arduino, MSP430, PIC16F877A, ale niektoré mikrokontroléry ich nemajú ako 8051, Raspberry Pi atď. A musíme použiť niektoré externé integrované obvody analógovo-digitálneho prevodníka ako ADC0804, ADC0808. Ďalej nájdete rôzne príklady ADC s rôznymi mikrokontrolérmi:
- Ako používať ADC v Arduino Uno?
- Výukový program ADC pre Raspberry Pi
- Prepojenie ADC0808 s mikrokontrolérom 8051
- Digitálny voltmeter 0-25 V pomocou mikrokontroléra AVR
- Ako používať ADC v STM32F103C8
- Ako používať ADC v MSP430G2
- Ako používať ADC v ARM7 LPC2148
- Použitie modulu ADC mikrokontroléra PIC s MPLAB a XC8
V tomto výučbe sa naučíme, ako prepojiť modul PCF8591 ADC / DAC s Raspberry Pi.
Požadované komponenty
- Malinový koláč
- Modul ADC PCF8591
- 100K hrniec
- Prepojovacie káble
Predpokladá sa, že máte nainštalovaný Raspberry Pi s najnovším Raspbian OS a viete, ako SSH do Pi pomocou terminálového softvéru ako je tmel. Ak ste na Raspberry Pi nováčikom, postupujte podľa tohto článku a začnite s Raspberry Pi. Napriek tomu, ak narazíte na akýkoľvek problém, existuje veľa návodov na Raspberry Pi, ktoré vám môžu pomôcť.
Modul ADF / DAC PCF8591
PCF8591 je 8-bitový analógovo-digitálny alebo 8-bitový digitálno-analógový prevodník, čo znamená, že každý pin dokáže čítať analógové hodnoty až do 256. Na doske je tiež zapojený obvod LDR a termistor. Tento modul má štyri analógové vstupy a jeden analógový výstup. Funguje na komunikácii I 2 C, takže pre sériové hodiny a adresu sériových údajov existujú piny SCL a SDA. Vyžaduje napájacie napätie 2,5 - 6 V a nízky pohotovostný prúd. So vstupným napätím môžeme manipulovať aj nastavením gombíka potenciometra na module. Na šachovnici sú tiež tri prepojky. J4 je pripojený k výberu prístupového obvodu termistora, J5 je pripojený k výberu prístupového obvodu LDR / foto rezistoraa J6 je pripojená k výberu nastaviteľného napäťového prístupového obvodu. Na doske sú dve LED diódy a D2 - D1 zobrazuje intenzitu výstupného napätia a D2 ukazuje intenzitu napájacieho napätia. Čím vyššie je výstupné alebo napájacie napätie, tým vyššia je intenzita LED D1 alebo D2. Tieto LED diódy môžete tiež otestovať pomocou potenciometra na VCC alebo na kolíku AOUT.
I2C piny v Raspberry Pi
Ak chcete používať PCF8591 s Raspberry Pi, musíte najskôr poznať kolíky portov I2C Raspberry Pi a nakonfigurovať port I2C v Raspberry pi.
Ďalej je uvedený pinový diagram Raspberry Pi 3 Model B + a v tomto výučbe sú použité piny I2C GPIO2 (SDA) a GPIO3 (SCL).
Konfigurácia I2C v Raspberry Pi
V predvolenom nastavení je I2C v Raspberry Pi zakázaný. Najprv teda musí byť povolené. Povolenie I2C v Raspberry Pi
1. Prejdite na terminál a zadajte sudo raspi-config.
2. Teraz sa zobrazí softvérový konfiguračný nástroj Raspberry Pi.
3. Vyberte možnosti rozhrania a potom povoľte I2C.
4. Po povolení I2C reštartujte Pi.
Skenovanie I2C adresy PCF8591 pomocou Raspberry Pi
Teraz, aby mohla komunikácia s PCF8591 IC začať, musí Raspberry Pi poznať svoju adresu I2C. Ak chcete zistiť adresu, najskôr pripojte pin SDA a SCL z PCF8591 na pin SDA a SCL na Raspberry Pi. Pripojte tiež kolíky + 5V a GND.
Teraz otvorte terminál a zadajte nasledujúci príkaz, aby ste vedeli adresu pripojeného zariadenia I2C, sudo i2cdetect –y 1 alebo sudo i2cdetect –y 0
Po nájdení adresy I2C je čas zostaviť obvod a nainštalovať potrebné knižnice na používanie PCF8591 s Raspberry Pi.
Prepojenie modulu PCF8591 ADC / DAC s programom Raspberry Pi
Schéma zapojenia PCF8591 s Raspberry Pi je jednoduchá. V tomto príklade prepojenia načítame analógové hodnoty z ktoréhokoľvek z analógových pinov a ukážeme ich na termináli Raspberry Pi. Hodnoty môžeme meniť pomocou potu 100K.
Pripojte VCC a GND k GPIO2 a GPIO Raspberry Pi. Ďalej pripojte SDA a SCL k GPIO3, respektíve GPIO5. Nakoniec pripojte 100K hrniec s AIN0. Môžete tiež pridať 16x2 LCD na zobrazenie hodnôt ADC namiesto toho, aby ste ich zobrazovali na termináli. Viac informácií o prepojení 16x2 LCD s Raspberry Pi sa dozviete tu.
Program Python pre analógovo-digitálnu konverziu (ADC)
Kompletný program a pracovné videa je uvedený na konci tohto návodu.
Najskôr importujte knižnicu smbus pre komunikáciu zbernice I 2 C a časovú knižnicu, aby ste získali čas spánku medzi vytlačením hodnoty.
import smbus import čas
Teraz definujte niektoré premenné. Prvá premenná obsahuje adresu zbernice I 2 C a druhá premenná obsahuje adresu prvého analógového vstupného kolíka.
adresa = 0x48 A0 = 0x40
Ďalej sme vytvorili objekt funkcie SMBus (1) knižnice smbus
bus = smbus.SMBus (1)
Teraz, zatiaľ čo prvý riadok hovorí IC, aby vykonal analógové meranie na prvom analógovom vstupnom kolíku. Druhý riadok ukladá adresu načítanú na analógovom kolíku v premennej hodnote . Nakoniec hodnotu vytlačte.
while True: bus.write_byte (address, A0) value = bus.read_byte (address) print (value) time.sleep (0.1)
Teraz konečne uložte kód pythonu do nejakého súboru s príponou.py a spustite kód v termináli raspberry Pi pomocou príkazu dole “
python nazov souboru.py
Pred spustením kódu sa uistite, že ste povolili komunikáciu I 2 C a všetky piny sú pripojené tak, ako je to znázornené na obrázku, inak sa zobrazia chyby. Analógové hodnoty sa musia začať zobrazovať na termináli, ako je uvedené nižšie. Nastavte gombík hrnca a uvidíte postupnú zmenu hodnôt. Viac informácií o spustení programu v
Celý pythonový kód a video sú uvedené nižšie.