úterý 10. března 2026

A/D převodník ADS1115

 

Nejoblíbenější volby A/D převodníků pro Raspberry Pi



Zde jsou tři nejčastěji používané čipy, které jsou s RPi plně kompatibilní a mají skvělou softwarovou podporu (knihovny v Pythonu):

PřevodníkRozlišeníPočet kanálůRozhraníVlastnosti
ADS111516-bit4I2CVelmi přesný, má vestavěný zesilovač (PGA). Ideální pro senzory.
ADS101512-bit4I2CRychlejší než ADS1115, ale méně přesný.
MCP300810-bit8SPILevný, hodně kanálů, vyžaduje více drátů (SPI). Klasika pro začátečníky.

Proč je ADS1115 nejlepší volbou?

Pokud s tím začínáte, pak ADS1115. Tady je proč:

  1. Napájení: Může být napájen přímo z 3,3V pinu Raspberry Pi. Tím je zajištěno, že i jeho datový výstup bude mít 3,3V (bezpečné pro RPi).

  2. I2C sběrnice: Stačí vám pouze 2 datové vodiče (SDA a SCL) a můžete na stejné piny připojit i další senzory.

  3. Diferenciální měření: Umí měřit rozdíl mezi dvěma piny, což je skvělé pro potlačení šumu.

Na co si dát pozor (Logika a napětí)

  • VREF (Referenční napětí): Pokud převodník napájíte 3,3V, bude jeho měřicí rozsah typicky 0 až 3,3V. Pokud byste na vstup přivedli 5V (např. z nějakého průmyslového senzoru), převodník (a potenciálně i Pi) byste mohli zničit.

  • Dělič napětí: Pokud potřebujete měřit 5V nebo 12V signály, musíte před převodník předřadit rezistorový dělič napětí, aby se signál "vešel" do 3,3V.

Jak to propojit (I2C verze)

  1. VDD na Raspberry Pi 3.3V

  2. GND na Raspberry Pi GND

  3. SCL na Raspberry Pi SCL (GPIO 3)

  4. SDA na Raspberry Pi SDA (GPIO 2)



Adresa I2C u převodníku ADS1115 se mění fyzickým propojením pinu ADDR (Address) na modulu s jedním ze čtyř různých pinů. Díky tomu lze na jednu sběrnici připojit až 4 modely ADS1115.
Nastavení adresy (Pin ADDR)
Výchozí adresa (pokud není pin připojen, je přes 10k odpor stáhnut k zemi) je 0x48.
Připojení pinu ADDRI2C Adresa (HEX)
GND0x48 (výchozí)
VDD (napájení)0x49
SDA (data)0x4A
SCL (hodiny)0x4B
Postup změny:
  1. Identifikujte pin ADDR na vašem ADS1115 modulu.
  2. Propojte pin ADDR pájením nebo drátkem na příslušný napájecí či datový pin dle tabulky výše.

U ADS1115 se vstup A0, A1, A2, A3 nastavuje v konfiguračním registru (registr 0x01).
Konkrétně v bitech MUX (bity 14–12).

V našem krátkém kódu je tato část:

bus.write_i2c_block_data(addr,1,[0xC3,0x83])

První byte 0xC3 obsahuje právě nastavení vstupu.

Nastavení vstupů ADS1115

Vstupprvní byte config
A00xC3
A10xD3
A20xE3
A30xF3

Takže stačí změnit jeden byte.

Příklad A1

bus.write_i2c_block_data(addr,1,[0xD3,0x83])

Konfigurace se zapisuje takto:

bus.write_i2c_block_data(0x48, 1, [MSB, LSB])

kde:

  • MSB = první byte (vstup + zesílení + start měření)

  • LSB = druhý byte (rychlost měření atd.)

Výběr vstupu (MUX)

vstupMSB hodnota
A00xC3
A10xD3
A20xE3
A30xF3

nejčastější použití:

A0 = [0xC3,0x83]
A1 = [0xD3,0x83]
A2 = [0xE3,0x83]
A3 = [0xF3,0x83]

Zesílení (PGA)

Tím nastavíš maximální měřené napětí.

rozsahhodnota
±6.144 V0xC0
±4.096 V0xC2
±2.048 V0xC4
±1.024 V0xC6
±0.512 V0xC8
±0.256 V0xCA

Pro Raspberry Pi se nejčastěji používá:

±4.096V

protože čip běží na 3.3V.

Rychlost převodu (data rate)

Toto je LSB byte.

rychlostLSB
8 SPS0x03
16 SPS0x23
32 SPS0x43
64 SPS0x63
128 SPS0x83
250 SPS0xA3
475 SPS0xC3
860 SPS0xE3

Nejčastější nastavení

běžné měření

[0xC3,0x83]
  • vstup A0

  • rozsah ±4.096V

  • 128 SPS

rychlé měření

[0xC3,0xE3]
  • 860 SPS

velmi citlivé měření

[0xC9,0x83]
  • rozsah ±0.512V

Přehled struktury registru

16bit konfigurace:

15 start měření
14-12 vstup (MUX)
11-9 zesílení
8 režim
7-5 rychlost
4-0 komparátor

💡 Tip z praxe (hodně důležitý):

Pokud měříš termistor, nejlepší nastavení je:

[0xC3,0x83]

protože:

  • rozsah dobře pokrývá 0–3.3V

  • měření je stabilní

  • minimální šum.


Žádné komentáře:

Okomentovat

Poznámka: Komentáře mohou přidávat pouze členové tohoto blogu.