2025 Autor: John Day | [email protected]. Viimati modifitseeritud: 2025-01-13 06:57
MPL3115A2 kasutab rõhu/kõrguse ja temperatuuri täpsete andmete saamiseks IEM -liidesega MEMS -rõhuandurit. Anduri väljundid digiteeritakse kõrge eraldusvõimega 24-bitise ADC abil. Sisemine töötlemine eemaldab kompenseerimisülesanded host -MCU süsteemist. See on võimeline tuvastama muutusi vaid 0,05 kPa, mis võrdub 0,3 m kõrguse muutusega. Siin on selle demonstratsioon vaarika pi abil, kasutades pythoni koodi.
Samm: mida vajate..
1. Vaarika Pi
2. MPL3115A2
3. I²C kaabel
4. I²C kilp Raspberry Pi jaoks
5. Etherneti kaabel
Samm: ühendused:
Võtke vaarika pi jaoks I2C -kilp ja lükake see õrnalt üle vaarika pi gpio -tihvtide.
Seejärel ühendage I2C kaabli üks ots MPL3115A2 anduriga ja teine ots I2C varjestusega.
Ühendage ka Etherneti kaabel pi -ga või võite kasutada WiFi -moodulit.
Ühendused on näidatud ülaltoodud pildil.
3. samm: kood:
MPL3115A2 püütoni koodi saab alla laadida meie Githubi hoidlast- DCUBE Store Community.
Siin on link
Oleme python -koodi jaoks kasutanud SMBusi teeki, SMBus -i vaarika pi -le installimise samme kirjeldatakse siin:
pypi.python.org/pypi/smbus-cffi/0.5.1
Siit saate koodi ka kopeerida, see on järgmine:
# Levitatud vabatahtliku litsentsiga.
# Kasutage seda mis tahes viisil, kasumit teenides või tasuta, tingimusel et see sobib sellega seotud teoste litsentsidega.
# MPL3115A2
# See kood on loodud töötama koos MPL3115A2_I2CS I2C minimooduliga
import smbus
impordi aeg
# Hankige I2C buss
buss = smbus. SMBus (1)
# MPL3115A2 aadress, 0x60 (96)
# Valige juhtregister, 0x26 (38)
# 0xB9 (185) Aktiivne režiim, OSR = 128, kõrgusmõõturi režiim
bus.write_byte_data (0x60, 0x26, 0xB9)
# MPL3115A2 aadress, 0x60 (96)
# Valige andmete konfiguratsiooniregister, 0x13 (19)
# 0x07 (07) Andmevalmis sündmus on lubatud kõrguse, rõhu ja temperatuuri jaoks
bus.write_byte_data (0x60, 0x13, 0x07)
# MPL3115A2 aadress, 0x60 (96)
# Valige juhtregister, 0x26 (38)
# 0xB9 (185) Aktiivne režiim, OSR = 128, kõrgusmõõturi režiim
bus.write_byte_data (0x60, 0x26, 0xB9)
aeg. uni (1)
# MPL3115A2 aadress, 0x60 (96)
# Lugege andmeid tagasi 0x00 (00), 6 baiti
# olek, tKõrgus MSB1, tKõrgus MSB, tKõrgus LSB, temp MSB, temp LSB
andmed = bus.read_i2c_block_data (0x60, 0x00, 6)
# Teisendage andmed 20-bitisteks
tKõrgus = ((andmed [1] * 65536) + (andmed [2] * 256) + (andmed [3] ja 0xF0)) / 16
temp = ((andmed [4] * 256) + (andmed [5] ja 0xF0)) / 16
kõrgus = tKõrgus / 16,0
cTemp = temp / 16.0
fTemp = cTemp * 1,8 + 32
# MPL3115A2 aadress, 0x60 (96)
# Valige juhtregister, 0x26 (38)
# 0x39 (57) Aktiivne režiim, OSR = 128, baromeetri režiim
bus.write_byte_data (0x60, 0x26, 0x39)
aeg. uni (1)
# MPL3115A2 aadress, 0x60 (96)
# Lugege andmeid tagasi 0x00 (00), 4 baiti
# olek, enne MSB1, enne MSB, enne LSB
andmed = bus.read_i2c_block_data (0x60, 0x00, 4)
# Teisendage andmed 20-bitisteks
pres = ((andmed [1] * 65536) + (andmed [2] * 256) + (andmed [3] ja 0xF0)) / 16
rõhk = (pres / 4,0) / 1000,0
# Väljastage andmed ekraanile
print "Rõhk: %.2f kPa" %rõhk
print "Kõrgus: %.2f m" %kõrgus
print "Temperatuur Celsiuse järgi: %.2f C" %cTemp
print "Temperatuur Fahrenheiti järgi: %.2f F" %fTemp
4. samm: rakendused:
MPL3115A2 mitmesugused rakendused hõlmavad suure täpsusega kõrguse mõõtmist, nutitelefoni/tahvelarvutit, isikliku elektroonika kõrguse mõõtmist jne. Seda saab lisada ka GPS -i surnud arvestusse, hädaabiteenuste GPS -i täiustamisse, kaardiabi, navigeerimisseadmesse ja ilmajaama seadmetesse.