- Požadované komponenty
- Modul ADF / DAC PCF8591
- Piny I2C v Raspberry Pi
- Rozhraní PCF8591 ADC / DAC modul s Raspberry Pi
- Program Python pro analogově-digitální převod (ADC)
Analogově-digitální převod je ve vestavěné elektronice velmi důležitým úkolem, protože většina snímačů poskytuje výstup jako analogové hodnoty a přivádí je do mikrokontroléru, který rozumí pouze binárním hodnotám, musíme je převést na digitální hodnoty. Aby mikroprocesory mohly zpracovávat analogová data, potřebují analogově-digitální převodník.
Některé mikrokontroléry mají vestavěné ADC jako Arduino, MSP430, PIC16F877A, ale některé mikrokontroléry to nemají jako 8051, Raspberry Pi atd. A musíme použít nějaké externí integrované obvody analogově-digitálního převaděče jako ADC0804, ADC0808. Níže naleznete různé příklady ADC s různými mikrokontroléry:
- Jak používat ADC v Arduino Uno?
- Výukový program ADC pro Raspberry Pi
- Propojení ADC0808 s mikrokontrolérem 8051
- 0-25V digitální voltmetr pomocí mikrokontroléru AVR
- Jak používat ADC v STM32F103C8
- Jak používat ADC v MSP430G2
- Jak používat ADC v ARM7 LPC2148
- Použití modulu ADC mikrokontroléru PIC s MPLAB a XC8
V tomto tutoriálu se naučíme, jak propojit modul PCF8591 ADC / DAC s Raspberry Pi.
Požadované komponenty
- Malina-pi
- Modul ADC PCF8591
- 100 tis. Hrnec
- Propojovací kabely
Předpokládá se, že máte Raspberry Pi s nainstalovaným nejnovějším Raspbian OS a víte, jak SSH do Pi pomocí terminálového softwaru, jako je tmel. Pokud jste na Raspberry Pi noví, postupujte podle tohoto článku a začněte s Raspberry Pi. Přesto, pokud čelíte jakémukoli problému, existuje spousta návodů pro Raspberry Pi, které vám mohou pomoci.
Modul ADF / DAC PCF8591
PCF8591 je 8bitový analogově-digitální převodník nebo 8bitový digitálně-analogový převodník, což znamená, že každý pin může číst analogové hodnoty až 256. Na desce je také obvod LDR a termistor. Tento modul má čtyři analogové vstupy a jeden analogový výstup. Funguje na komunikaci I 2 C, takže pro sériové hodiny a sériovou datovou adresu existují piny SCL a SDA. Vyžaduje napájecí napětí 2,5–6 V a nízký pohotovostní proud. Můžeme také manipulovat se vstupním napětím nastavením knoflíku potenciometru na modulu. Na desce jsou také tři propojky. J4 je připojen k výběru přístupového obvodu termistoru, J5 je připojen k výběru přístupového obvodu LDR / foto rezistorua J6 je připojen k volbě nastavitelného napěťového přístupového obvodu. Na desce D1 jsou dvě LED diody a D2 - D1 ukazuje intenzitu výstupního napětí a D2 ukazuje intenzitu napájecího napětí. Čím vyšší je výstupní nebo napájecí napětí, tím vyšší je intenzita LED D1 nebo D2. Tyto LED můžete také otestovat pomocí potenciometru na VCC nebo na pinu AOUT.
Piny I2C v Raspberry Pi
Chcete-li použít PCF8591 s Raspberry Pi, musíte nejprve znát piny portů I2C Raspberry Pi a konfigurovat port I2C v Raspberry pi.
Níže je Pin schéma Raspberry Pi 3 Model B + a v tomto tutoriálu jsou použity piny I2C GPIO2 (SDA) a GPIO3 (SCL).
Konfigurace I2C v Raspberry Pi
Ve výchozím nastavení je I2C v Raspberry Pi zakázán. Nejprve tedy musí být povoleno. Povolení I2C v Raspberry Pi
1. Přejděte na terminál a zadejte sudo raspi-config.
2. Nyní se zobrazí Raspberry Pi Software Configuration Tool.
3. Vyberte možnosti Rozhraní a poté povolte I2C.
4. Po povolení I2C restartujte Pi.
Skenování adresy I2C PCF8591 pomocí Raspberry Pi
Aby bylo možné zahájit komunikaci s PCF8591 IC, musí Raspberry Pi znát svou adresu I2C. Chcete-li zjistit adresu, nejprve připojte kolík SDA a SCL PCF8591 k kolíku SDA a SCL Raspberry Pi. Připojte také piny + 5V a GND.
Nyní otevřete terminál a zadejte následující příkaz, abyste zjistili adresu připojeného zařízení I2C, sudo i2cdetect –y 1 nebo sudo i2cdetect –y 0
Po nalezení adresy I2C nyní nastal čas sestavit obvod a nainstalovat potřebné knihovny pro použití PCF8591 s Raspberry Pi.
Rozhraní PCF8591 ADC / DAC modul s Raspberry Pi
Schéma zapojení pro propojení PCF8591 s Raspberry Pi je jednoduché. V tomto příkladu propojení načteme analogové hodnoty z kteréhokoli z analogových pinů a ukážeme je na terminálu Raspberry Pi. Můžeme změnit hodnoty pomocí 100K banku.
Připojte VCC a GND k GPIO2 a GPIO Raspberry Pi. Dále připojte SDA a SCL k GPIO3 a GPIO5. Nakonec připojte 100K hrnec s AIN0. Můžete také přidat 16x2 LCD pro zobrazení hodnot ADC namísto zobrazení na Terminálu. Další informace o propojení 16x2 LCD s Raspberry Pi najdete zde.
Program Python pro analogově-digitální převod (ADC)
Kompletní program a pracovní videa je uveden na konci tohoto návodu.
Nejprve importujte knihovnu smbus pro komunikaci sběrnice I 2 C a knihovnu času, abyste získali čas spánku mezi tiskem hodnoty.
importovat smbus importovat čas
Nyní definujte některé proměnné. První proměnná obsahuje adresu sběrnice I 2 C a druhá proměnná obsahuje adresu prvního analogového vstupního kolíku.
adresa = 0x48 A0 = 0x40
Dále jsme vytvořili objekt funkce SMBus (1) knihovny smbus
bus = smbus.SMBus (1)
Nyní, zatímco první řádek říká IC, aby provedl analogové měření na prvním analogovém vstupním pinu. Druhý řádek ukládá adresu načtenou na analogovém pinu v proměnné hodnotě . Nakonec hodnotu vytiskněte.
while True: bus.write_byte (address, A0) value = bus.read_byte (address) print (value) time.sleep (0.1)
Nyní konečně uložte kód pythonu do nějakého souboru s entitou.py a spusťte kód v terminálu raspberry Pi pomocí níže uvedeného příkazu “
python název_souboru.py
Před spuštěním kódu se ujistěte, že jste povolili komunikaci I 2 C a všechny piny jsou připojeny, jak je znázorněno na obrázku, jinak se zobrazí chyby. Analogové hodnoty se musí začít zobrazovat na terminálu, jak je uvedeno níže. Upravte knoflík hrnce a uvidíte postupnou změnu hodnot. Další informace o spuštění programu v
Kompletní kód pythonu a Video jsou uvedeny níže.