Мазмұны:

ADXL345 және Raspberry Pi көмегімен үдеуді өлшеу: 4 қадам
ADXL345 және Raspberry Pi көмегімен үдеуді өлшеу: 4 қадам

Бейне: ADXL345 және Raspberry Pi көмегімен үдеуді өлшеу: 4 қадам

Бейне: ADXL345 және Raspberry Pi көмегімен үдеуді өлшеу: 4 қадам
Бейне: Как связать промышленные датчики 4–20 мА с ПЛК Raspberry Pi Pico | ПЛК Мицубиси FX1N 2024, Қараша
Anonim
Image
Image

ADXL345-бұл кішкентай, жұқа, ультра қуат, 3 осьті акселерометр, жоғары ажыратымдылықпен (13 биттік) ± 16 г дейін. Сандық шығыс деректері 16 биттік қосалқы ретінде форматталған және I2 C сандық интерфейсі арқылы қол жетімді. Көлбеуді сезу кезінде ауырлық күшінің статикалық үдеуін, сонымен қатар қозғалыс немесе соққыдан болатын динамикалық үдеуді өлшейді. Оның жоғары ажыратымдылығы (3,9 мг/LSB) көлбеудің өзгеруін 1,0 ° -тан төмен өлшеуге мүмкіндік береді.

Бұл оқулықта ADXL345 сенсорлық модулінің таңқурай пи -мен байланысы көрсетілген және оны python тілінде бағдарламалау да суреттелген. Барлық 3 осьтік үдеу мәндерін оқу үшін біз I2C адаптері бар таңқурай pi қолдандық, бұл I2C адаптері сенсор модуліне қосылуды жеңіл әрі сенімді етеді.

1 -қадам: Қажетті жабдық:

Қажетті жабдық
Қажетті жабдық
Қажетті жабдық
Қажетті жабдық
Қажетті жабдық
Қажетті жабдық

Мақсатқа жету үшін бізге қажет материалдар келесі аппараттық компоненттерді қамтиды:

1. ADXL345

2. Raspberry Pi

3. I2C кабелі

4. Таңқурайға арналған I2C қалқаны

5. Ethernet кабелі

2 -қадам: Жабдықты қосу:

Жабдықты қосу
Жабдықты қосу
Жабдықты қосу
Жабдықты қосу

Аппаратты қосу бөлімі негізінен сенсор мен таңқурай пи арасындағы қажетті сымдық қосылыстарды түсіндіреді. Қажетті шығыс үшін кез келген жүйеде жұмыс істеу кезінде дұрыс қосылуды қамтамасыз ету - бұл негізгі қажеттілік. Сонымен, қажетті байланыстар келесідей:

ADXL345 I2C арқылы жұмыс істейді. Датчиктің әр интерфейсін қалай қосуға болатынын көрсететін электр схемасының мысалы.

Қаптамадан тыс тақта I2C интерфейсі үшін конфигурацияланған, сондықтан егер сіз агностикалық болмасаңыз, осы қосылымды пайдалануды ұсынамыз.

Сізге тек төрт сым қажет! Vcc, Gnd, SCL және SDA түйреуіштеріне тек төрт қосылым қажет және олар I2C кабелінің көмегімен қосылған.

Бұл байланыстар жоғарыдағы суреттерде көрсетілген.

3 -қадам: үдеуді өлшеу коды:

Жылдамдықты өлшеу коды
Жылдамдықты өлшеу коды

Таңқурай пиін қолданудың артықшылығы - бұл сенсорды интерфейске қосу үшін тақтаны бағдарламалайтын тілдің икемділігін қамтамасыз етеді. Бұл тақтаның артықшылығын пайдаланып, біз мұнда оның питонда бағдарламалануын көрсетеміз. ADXL345 үшін питон кодын github қауымдастығынан жүктеуге болады, ол - Барлығын бақылау қауымдастығы.

Пайдаланушыларға ыңғайлы болу үшін біз кодты осында түсіндіреміз:

Кодтаудың бірінші қадамы ретінде сізге python жағдайында smbus кітапханасын жүктеу қажет, себебі бұл кітапхана кодта қолданылатын функцияларды қолдайды. Сонымен, кітапхананы жүктеу үшін келесі сілтемеге кіруге болады:

pypi.python.org/pypi/smbus-cffi/0.5.1

Бұл сенсордың жұмыс питон кодын мына жерден көшіруге болады:

smbus импорттау

импорт уақыты

# I2C автобусын алыңыз = smbus. SMBus (1)

# ADXL345 мекенжайы, 0x53 (83)

# Өткізу жылдамдығының регистрін таңдаңыз, 0x2C (44)

# 0x0A (10) Қалыпты режим, шығыс деректерінің жиілігі = 100 Гц

bus.write_byte_data (0x53, 0x2C, 0x0A)

# ADXL345 мекенжайы, 0x53 (83)

# Қуатты басқару регистрін таңдаңыз, 0x2D (45)

# 0x08 (08) Автоматты ұйқы режимін өшіру

bus.write_byte_data (0x53, 0x2D, 0x08)

# ADXL345 мекенжайы, 0x53 (83)

# Деректер форматының регистрін таңдаңыз, 0x31 (49)

# 0x08 (08) Өзін-өзі тексеру өшірілген, 4 сымды интерфейс

# Толық ажыратымдылық, диапазон = +/- 2г

bus.write_byte_data (0x53, 0x31, 0x08)

уақыт.ұйқы (0.5)

# ADXL345 мекенжайы, 0x53 (83)

# Деректерді 0x32 (50), 2 байттан кері оқыңыз

# X-Axis LSB, X-Axis MSB

data0 = bus.read_byte_data (0x53, 0x32)

data1 = bus.read_byte_data (0x53, 0x33)

# Деректерді 10 битке түрлендіріңіз

xAccl = ((data1 & 0x03) * 256) + деректер0

егер xAccl> 511:

xAccl -= 1024

# ADXL345 мекенжайы, 0x53 (83)

# Деректерді 0x34 (52), 2 байттан кері оқыңыз

# Y-осі LSB, Y-осі MSB

data0 = bus.read_byte_data (0x53, 0x34)

data1 = bus.read_byte_data (0x53, 0x35)

# Деректерді 10 битке түрлендіріңіз

yAccl = ((data1 & 0x03) * 256) + data0

егер yAccl> 511:

yAccl -= 1024

# ADXL345 мекенжайы, 0x53 (83)

# Деректерді 0x36 (54), 2 байттан кері оқыңыз

# Z-Axis LSB, Z-Axis MSB

data0 = bus.read_byte_data (0x53, 0x36)

data1 = bus.read_byte_data (0x53, 0x37)

# Деректерді 10 битке түрлендіріңіз

zAccl = ((data1 & 0x03) * 256) + деректер0

егер zAccl> 511:

zAccl -= 1024

# Деректерді экранға шығару

басып шығару «X осіндегі үдеу: %d» %xAccl

басып шығару «Y осінде үдеу: %d» %yAccl

басып шығару «Z осінде үдеу: %d» %zAccl

Төменде келтірілген код бөлігіне питон кодтарын дұрыс орындау үшін қажет кітапханалар кіреді.

smbusimport уақытын импорттау

Кодты пәрмен жолында төмендегі пәрменді теру арқылы орындауға болады.

$> python ADXL345.py

Датчиктің шығысы пайдаланушының анықтамасы үшін жоғарыдағы суретте де көрсетілген.

4 -қадам: Өтініштер:

Қолданбалар
Қолданбалар

ADXL345-бұл шағын, жұқа, ультра қуатты, 3 осьті акселерометр, оны телефон тұтқаларында, медициналық құралдарда қолдануға болады және т.

Ұсынылған: