Мазмұны:
Бейне: Бөлшек фотон - MPL3115A2 дәлдіктегі альтиметр сенсорының оқулығы: 4 қадам
2024 Автор: John Day | [email protected]. Соңғы өзгертілген: 2024-01-30 10:24
MPL3115A2 қысым/биіктік және температура туралы нақты деректерді беру үшін I2C интерфейсі бар MEMS қысым датчигін қолданады. Сенсордың шығысы жоғары ажыратымдылықтағы 24 биттік ADC көмегімен цифрланған. Ішкі өңдеу хост MCU жүйесінен өтемақы тапсырмаларын жояды. Ол тек 0,05 кПа өзгерісін анықтай алады, бұл биіктіктің 0,3 м өзгеруіне тең. Міне, оның бөлшек фотонмен демонстрациясы.
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 шағын модулімен жұмыс жасауға арналған
#қосу
#қосу
// MPL3115A2 I2C мекенжайы - 0x60 (96)
#анықтайтын Addr 0x60
float cTemp = 0,0, fTemp = 0,0, қысым = 0,0, биіктік = 0,0;
int temp = 0, tHeight = 0; long pres = 0;
жарамсыз орнату ()
{
// Айнымалыны орнатыңыз
Particle.variable («i2cdevice», «MPL3115A2»);
Particle.variable («cTemp», cTemp);
Бөлшек.өзгермелі («қысым», қысым);
Бөлшек.өзгермелі («биіктік», биіктік);
// I2C байланысын бастаңыз
Wire.begin ();
// Сериялық байланысты орнатыңыз, жіберу жылдамдығы = 9600
Serial.begin (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
егер (Wire.available () == 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 = (temp / 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 байт деректерді оқу
// күй, pres msb1, pres msb, pres lsb
егер (Wire.available () == 4)
{
деректер [0] = Wire.read ();
деректер [1] = Wire.read ();
деректер [2] = Wire.read ();
деректер [3] = Wire.read ();
}
// Деректерді 20 битке түрлендіру
pres = (((ұзақ) деректер [1] * (ұзын) 65536) + (деректер [2] * 256) + (деректер [3] & 0xF0)) / 16;
қысым = (прес / 4,0) / 1000,0;
// Деректерді бақылау тақтасына шығару
Particle.publish («Биіктік:», Жол (биіктік));
Particle.publish («Қысым:», Жол (қысым));
Particle.publish («Цельсий бойынша температура:», String (cTemp));
Particle.publish («Фаренгейт температурасы:», String (fTemp));
кешіктіру (1000);
}
4 -қадам: Өтініштер:
MPL3115A2 әр түрлі қосымшаларына жоғары дәлдіктегі алтиметрия, смартфондар/планшеттер, дербес электроника алиметриясы және т.б. кіреді. Ол GPS -тің өлу есебіне, төтенше қызметтерге GPS -ті жақсартуға, картаға көмекке, навигацияға, сондай -ақ метеорологиялық станция жабдықтарына қосылуы мүмкін.
Ұсынылған:
Бөлшек фотоны - TCN75A температура сенсоры оқулығы: 4 қадам
Бөлшек фотоны-TCN75A температура сенсорының оқулығы: TCN75A-температурадан цифрлық түрлендіргішке қосылған екі сымды сериялық температура сенсоры. Ол температураны анықтайтын қосымшалар үшін икемділікті қамтамасыз ететін пайдаланушы бағдарламаланатын регистрлермен біріктірілген. Тіркеу параметрлері пайдаланушыларға мүмкіндік береді
Бөлшек фотоны - ADT75 температура сенсоры оқулығы: 4 қадам
Бөлшек фотоны - ADT75 температура сенсоры оқулығы: ADT75 - бұл дәл, сандық температура сенсоры. Ол температуралық диапазон мен цифрландыруға арналған диапазонды цифрлық түрлендіргіштен және диапазондағы айырмашылықтан тұрады. Оның жоғары сезімтал сенсоры оны маған жеткілікті сауатты етеді
Бөлшек фотоны - STS21 температура сенсоры оқулығы: 4 қадам
Бөлшек фотоны - STS21 температура сенсоры оқулығы: STS21 сандық температура сенсоры жоғары өнімділікті және кеңістікті үнемдеуге мүмкіндік береді. Ол сандық, I2C форматында калибрленген, сызықты сигналдарды береді. Бұл сенсорды жасау CMOSens технологиясына негізделген, ол жоғары деңгейге жатады
Бөлшек фотоны - BH1715 цифрлық жарық сенсорының оқулығы: 4 қадам
Бөлшек фотон - BH1715 цифрлық ортадағы жарық сенсорының оқулығы: BH1715 - бұл I²C шинасының интерфейсі бар цифрлық қоршаған орта жарық сенсоры. BH1715 әдетте мобильді құрылғылар үшін СКД мен пернетақта жарығының қуатын реттеу үшін қоршаған жарық туралы мәліметтерді алу үшін қолданылады. Бұл құрылғы 16-разрядты ажыратымдылық пен реттеуді ұсынады
Бөлшек фотон мен IoT -ге кіріспе: 4 қадам
Бөлшек фотон мен IoT -ге кіріспе: фотондық бөлшектер - бұл ең соңғы және менің ойымша, керемет даму тақталарының бірі. Онда WiFi интеграциясы мен RESTful API бар, ол тақтамен оңай қарым -қатынас жасауға мүмкіндік береді, және сіз оны тіпті IFTTT -ке байланыстыра аласыз