Analogově-digitální převodník (ADC) je oblíbeným doplňkem pro Raspberry Pi. Mnoho levnějších mikrokontrolérů dnes již má vestavěný převodník, takže tento 8kanálový převodník je založen na STM32F030, což je nákladově efektivní a energeticky úsporný mikrokontrolér ARM Cortex M0. Deska má 8 kanálů ADC a integrované 4 analogové konektory Grove, takže ji můžete také použít s analogovými moduly Grove.
kup nyní |
Vlastnosti
- Zúčtovací jednotka CRC
- 5kanálový řadič DMA ( přímý přístup do paměti )
- RTC kalendář s alarmem a periodickým budením Stop / Standby
- Časovače
- Časovač s pokročilým ovládáním
- Obecné časovače a základní časovače
- Nezávislý čas a hlídací časovač
- Časovač SysTick
- Hodiny reálného času (RTC)
- Ladění sériového kabelu (SWD)
Specifikace
Vlastnosti | Hodnota |
---|---|
Pracovní napětí | 3,3 V. |
Rozlišení ADC | 12 bitů |
Maximální frekvence hodinový signál | 48 MHz |
Přečíst velikost paměti | 16 kB |
Velikost RAM | 4 kB |
Šířka datové sběrnice | 32 bitů |
Pracovní teplota | od -40 ° C do 85 ° C |
Komunikační rozhraní | I2C |
Adresa I2C | 0x04 (výchozí) |
Rozměry | 65 x 55 x 18 mm |
Hmotnost | 25,9 g |
Velikost balení | 140 x 75 x 25 mm |
Celková hmotnost | 45 g |
typické aplikace
- Měření teploty
- Spotřební zboží
Přehled hardwaru
Distribuce vedení
Stejné rozložení jako na Raspberry Pi.
SWD
K záznamu firmwaru na tuto desku používáme port SWD. Kromě toho v této části vidíte pin 9 / pin 10 / pin 11. Tyto tři piny nepoužívá žádný port Grove, můžete je použít bez obav o připnutí pinů.
Grove Analog Port
Jak víte, na Raspberry Pi není žádný převaděč ADC, takže tato deska ADC založená na STM32 umožňuje analogovým senzorům pracovat s Raspberry Pi.
Na desce jsou 4 analogové zásuvky Grove, takže můžete připojit moduly Grove přímo pomocí Grove - Universal Ribbon Cable 5 cm 4 pin y .
Analogový senzor napájí analogové napětí do 12bitového ADC. Po převodu analogových dat na digitální převaděč vstupuje přes rozhraní I2C do Raspberry Pi.
Zásuvkové konektory
Fungují podobně jako analogové porty Grove, pouze místo Grove - Universal Ribbon Cable 5 cm 4 pin y používají Breadboard Jumper Wire Pack .
8 analogových připojovacích portů, A0 ~ A7.
Podobně jako v předchozím případě mají pouze jinou metodu připojení. Tato skupina zahrnuje analogové piny A0 ~ A7, Vcc a GND.
Jak začít?
Zařízení
Potřebné materiály
Raspberry Pi | 8kanálový 12bitový analogově-digitální převodník pro Raspberry Pi (STM32F030) |
---|---|
- Krok 1 . Zadejte převaděč na Raspberry Pi.
- Krok 2 . Připojte Raspberry Pi k počítači pomocí kabelu USB.
Software
- Krok 1 . Stáhněte si zdrojový soubor klonováním knihovny grove.py.
cd ~ git clone https://github.com/Seeed-Studio/grove.py
- Krok 2 . Nainstalujte si knihovnu grove.py
cd grove.py # Python2 sudo pip install. # Python3 sudo pip3 nainstalovat.
- Krok 3 . Spusťte kód podle následujících pokynů.
cd grove.py/grove python adc_8chan_12bit.py
Níže je uveden kód adc_8chan_12bit.py.
čas importu z importu sběrnice grove.i2c ADC_DEFAULT_IIC_ADDR = 0x04 ADC_CHAN_NUM = 8 REG_RAW_DATA_START = 0x10 REG_VOL_START = 0x20 REG_RTO_START = 0x30 REG_SET_ADDR = 0XC0 třída Pi_hat_adc (): def __init __ (self, bus_num = 1, addr = ADC_DEFAULT_IIC_ADDR): self.bus = Bus (bus_num) self.addr = adresa #get all raw adc data, THe max value is 4095, cause it is 12 Bit ADC def get_all_adc_raw_data (self): pole = [] pro i v rozsahu (ADC_CHAN_NUM): data = self.bus.read_i2c_block_data (self.addr, REG_RAW_DATA_START + i, 2) val = datum [1] << 8 | datum [0] array.append (val) návratové pole def get_nchan_adc_raw_data (self, n): data = self.bus.read_i2c_block_data (self.addr, REG_RAW_DATA_START + n, 2) val = datum [1] << 8 | datum [0] zpáteční val # získejte všechna data s jednotkou mv. def get_all_vol_milli_data (self): pole = [] pro i v rozsahu (ADC_CHAN_NUM): data = self.bus.read_i2c_block_data (self.addr, REG_VOL_START + i, 2) val = data [1] << 8 | data [0] array.append (val) návratové pole def get_nchan_vol_milli_data (self, n): data = self.bus.read_i2c_block_data (self.addr, REG_VOL_START + n, 2) val = data [1] << 8 | data [0] návratová hodnota # poměr všech dat, jednotka je 0,1% def get_all_ratio_0_1_data (self): array = [] pro i v rozsahu (ADC_CHAN_NUM): data = self.bus.read_i2c_block_data (self.addr, REG_RTO_START + i, 2) val = data [1] << 8 | data [0] array.append (val) návratové pole def get_nchan_ratio_0_1_data (self, n): data = self.bus.read_i2c_block_data (self.addr, REG_RTO_START + n, 2) val = data [1] << 8 | data [0] return val ADC = Pi_hat_adc () def main ( ): raw_data = ADC.get_all_adc_raw_data () vol_data = ADC.get_all_vol_milli_data () ratio_data = ADC.get_all_ratio_0_1_data () print ("nezpracovaná data pro každý kanál: (1-8chan) (12 bit-max = 4096):") print ( raw_data) print ("napětí pro každý kanál: (jednotka: mv, max = 3300 mv):") print (vol_data) print ("poměr pro každý kanál (jednotka 0,1%, max = 100,0%):") print (ratio_data) tisk ("") tisk ("UPOZORNĚNÍ !!!:") print ("Výchozí nastavení ADC PIN je floating_input.") Print ("") if __name__ == '__main__': main ()
Úspěch Pokud jste vše úspěšně provedli, měla by se zobrazit zpráva níže. |
pi @ raspberrypi: ~ / grove.py / grove $ python adc_8chan_12bit.py nezpracovaná data pro každý kanál: (1-8chan) (12 bit-max = 4096): [2177, 2098, 2064, 2038, 2127, 2066, 2172, 2145] napětí pro každý kanál: (jednotka: mv, max = 3300 mv): [1599, 1741, 1668, 1658, 1644, 1787, 1694, 1677] poměr pro každý kanál (jednotka 0,1%, max = 100,0%): [521, 544, 514, 504, 500, 559, 524, 505] OZNÁMENÍ !!!: Výchozí nastavení PIN kódu ADC je floating_input.
Příklad
Vezměme si jako příklad Grove - zvukový senzor , který ukazuje, jak tuto desku používat.
Hardwarové připojení
- Krok 1 . Připojte převodník k Raspberry Pi.
- Krok 2 . Připojte snímač Grove - zvuk přes port A0 k převaděči.
- Krok 3 . Připojte Raspberry Pi k počítači pomocí kabelu USB.
Schéma připojení hardwaru
Zadejte následující příkaz: ++ python grove_sound_sensor.py 0 ++ na příkazovém řádku.
pi @ raspberrypi: ~ / grove.py / grove $ python grove_sound_sensor.py 6 Detekuje se zvuk ... Akustická hodnota: 433 Akustická hodnota: 342 Akustická hodnota: 443 Akustická hodnota: 300 Akustická hodnota: 632 Akustická hodnota: 258 Akustická hodnota: 591 Akustická hodnota: 267 Akustická hodnota: 871 ^ CTraceback (poslední hovor poslední): Soubor "grove_sound_sensor.py", řádek 67, vhlavní () Soubor "grove_sound_sensor.py", řádek 64, hlavní time.sleep (.3) Přerušení klávesnice
Program můžete ukončit stisknutím Ctrl + C.