Агуулгын хүснэгт:
Видео: Бөөмийн фотон - MPL3115A2 нарийвчлалтай өндөр хэмжигч мэдрэгчийн заавар: 4 алхам
2024 Зохиолч: John Day | [email protected]. Хамгийн сүүлд өөрчлөгдсөн: 2024-01-30 11:02
MPL3115A2 нь MEMS даралт мэдрэгчийг ашиглан I2C интерфэйстэй бөгөөд даралт/өндөр, температурын үнэн зөв мэдээллийг өгдөг. Мэдрэгчийн гаралтыг 24 битийн өндөр нарийвчлалтай ADC ашиглан дижитал хэлбэрт оруулсан болно. Дотоод боловсруулалт нь хүлээн авагчийн MCU системээс нөхөн олговрын даалгавруудыг арилгадаг. Энэ нь ердөө 0.05 кПа -ийн өөрчлөлтийг илрүүлэх чадвартай бөгөөд энэ нь өндрийн 0.3 м -ийн өөрчлөлттэй тэнцэнэ. Particle photon ашиглан хийсэн үзүүлбэрийг энд оруулав.
Алхам 1: Танд хэрэгтэй зүйл..
1. Бөөмийн фотон
2. MPL3115A2
3. I²C кабель
4. Бөөмийн фотоны I²C бамбай
Алхам 2: Холболтууд:
Бөөмийн фотон авахын тулд I2C бамбай аваад бөөмийн фотоны тээглүүрээр зөөлөн түлхээрэй.
Дараа нь I2C кабелийн нэг үзүүрийг MPL3115A2 мэдрэгч, нөгөө үзүүрийг I2C бамбай руу холбоно уу.
Холболтыг дээрх зураг дээр харуулав.
Алхам 3: Код:
MPL3115A2 ширхэгийн кодыг манай Github репозитор-DCUBE дэлгүүрээс татаж авах боломжтой.
Энд линк байна.
Бид бөөмийн кодын хувьд application.h ба spark_wiring_i2c.h гэсэн хоёр номын санг ашигласан. Мэдрэгчтэй I2C холболтыг хөнгөвчлөхийн тулд Spark_wiring_i2c номын сан шаардлагатай.
Та мөн кодыг эндээс хуулж болно, үүнийг дараах байдлаар өгсөн болно.
// Хүсэл зоригийн лицензээр тараасан.
// Үүнийг холбогдох бүтээлүүдийнхээ лицензтэй нийцсэн тохиолдолд ашиг, үнэгүй ашиглах боломжтой.
// MPL3115A2
// Энэ код нь MPL3115A2_I2CS I2C Mini модультай ажиллахад зориулагдсан болно
#оруулах
#оруулах
// MPL3115A2 I2C хаяг нь 0x60 (96)
#Тодорхойлох Addr 0x60
float cTemp = 0.0, fTemp = 0.0, даралт = 0.0, өндөр = 0.0;
int temp = 0, tHeight = 0; урт pres = 0;
хүчингүй тохиргоо ()
{
// Хувьсагчийг тохируулах
Particle.variable ("i2cdevice", "MPL3115A2");
Particle.variable ("cTemp", cTemp);
Бөөм.хувьсагч ("даралт", даралт);
Бөөм.хувьсагч ("өндөр", өндөр);
// I2C холболтыг эхлүүлэх
Wire.begin ();
// Цуваа холбоог эхлүүлэх, дамжуулах хурд = 9600
Цуваа эхлэх (9600);
// I2C дамжуулалтыг эхлүүлэх
Wire.beginTransmission (Addr);
// Хяналтын бүртгэлийг сонгоно уу
Wire.write (0x26);
// Идэвхтэй горим, OSR = 128, өндөр хэмжигч горим
Wire.write (0xB9);
// I2C дамжуулалтыг зогсооно уу
Wire.endTransmission ();
// I2C дамжуулалтыг эхлүүлэх
Wire.beginTransmission (Addr);
// Өгөгдлийн тохиргооны бүртгэлийг сонгоно уу
Wire.write (0x13);
// Өгөгдөлд бэлэн болсон үйл явдлыг өндөр, даралт, температурт идэвхжүүлсэн
Wire.write (0x07);
// I2C дамжуулалтыг зогсооно уу
Wire.endTransmission ();
саатал (300);
}
хоосон давталт ()
{
гарын үсэг зураагүй int өгөгдөл [6];
// I2C дамжуулалтыг эхлүүлэх
Wire.beginTransmission (Addr);
// Хяналтын бүртгэлийг сонгоно уу
Wire.write (0x26);
// Идэвхтэй горим, OSR = 128, өндөр хэмжигч горим
Wire.write (0xB9);
// I2C дамжуулалтыг зогсооно уу
Wire.endTransmission ();
саатал (1000);
// I2C дамжуулалтыг эхлүүлэх
Wire.beginTransmission (Addr);
// Өгөгдлийн бүртгэлийг сонгоно уу
Wire.write (0x00);
// I2C дамжуулалтыг зогсооно уу
Wire.endTransmission ();
// 6 байтын өгөгдөл хүсэх
Wire.requestFrom (Addr, 6);
// 0x00 (00) хаягаас 6 байт өгөгдлийг унших
// төлөв, tHeight msb1, tHeight msb, tHeight lsb, temp msb, temp lsb
хэрэв (Утас. боломжтой () == 6)
{
өгөгдөл [0] = Wire.read ();
өгөгдөл [1] = Wire.read ();
өгөгдөл [2] = Wire.read ();
өгөгдөл [3] = Wire.read ();
өгөгдөл [4] = Wire.read ();
өгөгдөл [5] = Wire.read ();
}
// Өгөгдлийг 20 бит болгон хөрвүүлэх
tHeight = ((((урт) өгөгдөл [1] * (урт) 65536) + (өгөгдөл [2] * 256) + (өгөгдөл [3] & 0xF0)) / 16);
temp = ((өгөгдөл [4] * 256) + (өгөгдөл [5] & 0xF0)) / 16;
өндөр = t Өндөр / 16.0;
cTemp = (температур / 16.0);
fTemp = cTemp * 1.8 + 32;
// I2C дамжуулалтыг эхлүүлэх
Wire.beginTransmission (Addr);
// Хяналтын бүртгэлийг сонгоно уу
Wire.write (0x26);
// Идэвхтэй горим, OSR = 128, барометрийн горим
Wire.write (0x39);
// I2C дамжуулалтыг зогсооно уу
Wire.endTransmission ();
// I2C дамжуулалтыг эхлүүлэх
Wire.beginTransmission (Addr);
// Өгөгдлийн бүртгэлийг сонгоно уу
Wire.write (0x00);
// I2C дамжуулалтыг зогсооно уу
Wire.endTransmission ();
саатал (1000);
// 4 байтын өгөгдөл хүсэх
Wire.requestFrom (Addr, 4);
// 4 байтын өгөгдлийг уншина уу
// төлөв, өмнөх msb1, pres msb, pres lsb
хэрэв (Утас. боломжтой () == 4)
{
өгөгдөл [0] = Wire.read ();
өгөгдөл [1] = Wire.read ();
өгөгдөл [2] = Wire.read ();
өгөгдөл [3] = Wire.read ();
}
// Өгөгдлийг 20 бит болгон хөрвүүлэх
pres = (((урт) өгөгдөл [1] * (урт) 65536) + (өгөгдөл [2] * 256) + (өгөгдөл [3] & 0xF0)) / 16;
даралт = (pres / 4.0) / 1000.0;
// Мэдээллийг хяналтын самбарт гаргах
Particle.publish ("Өндөр:", Мөр (өндөр));
Particle.publish ("Даралт:", Мөр (даралт));
Particle.publish ("Цельсийн температур:", String (cTemp));
Particle.publish ("Фаренгейт дэх температур:", String (fTemp));
саатал (1000);
}
Алхам 4: Өргөдөл:
MPL3115A2 -ийн янз бүрийн хэрэглээнд өндөр нарийвчлалтай хэмжих хэрэгсэл, ухаалаг гар утас/таблет, хувийн электроник хэмжигч гэх мэт орно. Үүнийг GPS -ийн үхлийн тооцоо, яаралтай тусламжийн үйлчилгээний GPS -ийн сайжруулалт, газрын зургийн туслалцаа, навигаци, цаг уурын станцын тоног төхөөрөмжид оруулж болно.
Зөвлөмж болгож буй:
MPU-6000 ба бөөмийн фотон ашиглан хөдөлгөөн хянах: 4 алхам
MPU-6000 ба бөөмийн фотон ашиглан хөдөлгөөнийг хянах: MPU-6000 бол 6 тэнхлэгтэй хөдөлгөөн хянах мэдрэгч бөгөөд 3 тэнхлэг хурдасгуур, 3 тэнхлэгтэй гироскоптой. Энэхүү мэдрэгч нь объектын гурван хэмжээст хавтгайд байршил, байршлыг оновчтой хянах чадвартай. Үүнийг ажиллуулж болно
ADXL345 ба бөөмийн фотон ашиглан хурдатгалын хэмжилт: 4 алхам
ADXL345 ба Particle Photon ашиглан хурдатгалын хэмжилт: ADXL345 нь ± 16 г хүртэл өндөр нарийвчлалтай (13 бит) хэмжигдэхүүнтэй, жижиг, хэт нимгэн, 3 тэнхлэгтэй акселерометр юм. Дижитал гаралтын өгөгдлийг 16 битийн хоёр нэмэлт хэлбэрээр форматласан бөгөөд I2 C дижитал интерфэйсээр дамжуулан авах боломжтой. Үүнийг хэмждэг
HMC5883 ба бөөмийн фотон ашиглан соронзон орны хэмжилт: 4 алхам
HMC5883 ба бөөмийн фотон ашиглан соронзон орны хэмжилт: HMC5883 нь бага талбайн соронзон мэдрэх зориулалттай дижитал луужин юм. Энэхүү төхөөрөмж нь өргөн соронзон орны хүрээтэй +/- 8 Oe ба гаралтын хурд нь 160 Гц юм. HMC5883 мэдрэгч нь унтраах автомат оосор жолооч, офсет цуцлах
H3LIS331DL болон бөөмийн фотон ашиглан хурдатгалын хэмжилт: 4 алхам
H3LIS331DL ба Particle Photon ашиглан хурдатгалын хэмжилт: H3LIS331DL нь дижитал I²C серийн интерфейстэй, "нано" гэр бүлд хамаарах бага хүчин чадалтай, 3 тэнхлэг бүхий хурдны хэмжигдэхүүн юм. H3LIS331DL нь хэрэглэгчийн сонгох боломжтой бүрэн масштабтай ± 100g/± 200g/± 400g бөгөөд хурдатгалыг хэмжих чадвартай
Бөөмийн фотон ашиглан чийг мэдрэгч: 6 алхам
Particle Photon ашиглан чийг мэдрэгч: Танилцуулга Энэхүү гарын авлагад бид Particle Photon болон түүний ортой эсвэл гадны WiFi антен ашиглан чийгийн мэдрэгчийг бүтээх гэж байна. WiFi -ийн хүч чадал нь агаарт болон газрын чийгийн хэмжээнээс хамаарна. Бид энэ зарчмыг ашигладаг