
Բովանդակություն:
2025 Հեղինակ: John Day | [email protected]. Վերջին փոփոխված: 2025-01-23 14:48


MPL3115A2- ն օգտագործում է MEMS ճնշման տվիչ ՝ I2C ինտերֆեյսով ՝ ճշգրիտ ճնշման/բարձրության և ջերմաստիճանի տվյալներ ապահովելու համար: Սենսորային ելքերը թվայնացվում են բարձր լուծման 24-բիթանոց ADC- ով: Ներքին մշակումը հեռացնում է փոխհատուցման առաջադրանքները ընդունող MCU համակարգից: Այն ունակ է հայտնաբերել միայն 0.05 կՊա -ի փոփոխություն, ինչը հավասար է 0.3 մ բարձրության փոփոխության: Ահա նրա ցուցադրումը Արդուինո Նանոյի հետ:
Քայլ 1: Այն, ինչ ձեզ հարկավոր է..

1. Արդուինո Նանո
2. MPL3115A2
3. I²C մալուխ
4. I²C վահան Arduino Nano- ի համար
Քայլ 2: Միացումներ




Վերցրեք I2C վահան Arduino Nano- ի համար և նրբորեն մղեք այն Նանոյի կապանքների վրա:
Այնուհետև I2C մալուխի մի ծայրը միացրեք MPL3115A2 սենսորին, իսկ մյուս ծայրը ՝ I2C վահանին:
Կապերը ցուցադրվում են վերևի նկարում:
Քայլ 3: Կոդ

MPL3115A2- ի arduino կոդը կարելի է ներբեռնել մեր github պահոցից-DCUBE Store:
Ահա նույնի հղումը.
github.com/DcubeTechVentures/MPL3115A2/blob/master/Arduino/MPL3115A2.ino
Մենք ներառում ենք Wire.h գրադարանը ՝ սենսորի I2c հաղորդակցումը Arduino տախտակի հետ հեշտացնելու համար:
Այստեղից կարող եք նաև պատճենել կոդը, այն տրվում է հետևյալ կերպ.
// Տարածված է ազատ կամքի լիցենզիայով:
// Օգտագործեք այն ինչպես ցանկանում եք, շահույթ կամ անվճար, պայմանով, որ այն տեղավորվում է դրա հետ կապված աշխատանքների լիցենզիաներում:
// MPL3115A2
// Այս կոդը նախատեսված է MPL3115A2_I2CS I2C մինի մոդուլի հետ աշխատելու համար
#ներառում
// MPL3115A2 I2C հասցեն ՝ 0x60 (96)
#սահմանեք Addr 0x60
դատարկ կարգավորում ()
{
// Նախնականացնել 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 բայթ տվյալներ
Հաղորդալար. Խնդրում ենք (Addr, 6);
// Կարդացեք 6 բայթ տվյալներ 0x00 հասցեից (00)
// կարգավիճակ, 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 բիթ
int tHeight = (((երկար) (տվյալներ [1] * (երկար) 65536) + (տվյալներ [2] * 256) + (տվյալներ [3] & 0xF0)) / 16);
int temp = ((տվյալները [4] * 256) + (տվյալները [5] & 0xF0)) / 16;
բոց բարձրություն = t Բարձրություն / 16.0;
float cTemp = (temp / 16.0);
float fTemp = cTemp * 1.8 + 32;
// Սկսել I2C փոխանցումը
Wire.beginTransmission (Addr);
// Ընտրեք հսկիչ գրանցամատյան
Wire.write (0x26);
// Ակտիվ ռեժիմ, OSR = 128, բարոմետր ռեժիմ
Wire.write (0x39);
// Դադարեցնել I2C փոխանցումը
Wire.endTransmission ();
ուշացում (1000);
// Սկսել I2C փոխանցումը
Wire.beginTransmission (Addr);
// Ընտրեք տվյալների գրանցամատյան
Wire.write (0x00);
// Դադարեցնել I2C փոխանցումը
Wire.endTransmission ();
// Պահանջել 4 բայթ տվյալներ
Մետաղալար. Խնդրում ենք (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;
լողացող ճնշում = (pres / 4.0) / 1000.0;
// Ելքային տվյալները սերիական մոնիտորին
Serial.print ("Բարձրություն:");
Serial.print (բարձրություն);
Serial.println («մ»);
Serial.print («Pressնշում.»);
Serial.print (ճնշում);
Serial.println ("kPa");
Serial.print ("Cերմաստիճանը Celsius:");
Serial.print (cTemp);
Serial.println ("C");
Serial.print («Fերմաստիճանը Ֆարենհայտում.»);
Serial.print (fTemp);
Serial.println ("F");
ուշացում (500);
}
Քայլ 4: Դիմումներ
MPL3115A2- ի տարբեր ծրագրեր ներառում են բարձր ճշգրտության բարձրաչափություն, սմարթֆոններ/պլանշետներ, անհատական էլեկտրոնիկայի բարձրաչափություն և այլն: Այն կարող է ներառվել նաև GPS Dead Reckoning, GPS Enhancement for Emergency Services, Map Assist, Navigation, ինչպես նաև Եղանակային կայանի սարքավորումներում:
Խորհուրդ ենք տալիս:
Raspberry Pi - TMP007 Infrared Thermopile Sensor Python Tutorial: 4 Step

Raspberry Pi - TMP007 Ինֆրակարմիր ջերմաչափի սենսոր Python ձեռնարկ. TMP007 ինֆրակարմիր ջերմապաշտպան ցուցիչ է, որը չափում է օբյեկտի ջերմաստիճանը ՝ առանց դրա հետ շփման: Սենսորային դաշտում օբյեկտի կողմից արտանետվող ինֆրակարմիր էներգիան ներծծվում է սենսորի մեջ ինտեգրված ջերմափողով: Թերմոպիլը
Arduino- ի ավտոմատ ստվերային էկրանի ծրագրի համար Step Step Motor և Driver- ի ընտրություն. 12 քայլ (նկարներով)

Arduino- ի ավտոմատ ստվերային էկրանի նախագծի համար Step Motor և Driver- ի ընտրություն. Այս հրահանգում ես կանցնեմ այն քայլերի միջոցով, որոնք կատարել եմ Step Motor և Driver ընտրելու համար `Automated Shade Screen նախագծի նախատիպի համար: Ստվերային էկրանները հայտնի և էժան Coolaroo ձեռքերով սեղմված մոդելներն են, և ես ուզում էի փոխարինել
Raspberry Pi A1332 Precision Hall - Effect Angle Sensor Java ձեռնարկ. 4 քայլ

Raspberry Pi A1332 Precision Hall - Effect Angle Sensor Java Tutorial: A1332- ը 360 ° առանց կոնտակտ բարձր լուծման ծրագրավորվող մագնիսական անկյան դիրքի սենսոր է: Այն նախատեսված է թվային համակարգերի համար `օգտագործելով I2C ինտերֆեյս: Այն կառուցված է Circular Vertical Hall (CVH) տեխնոլոգիայի և ծրագրավորվող միկրոպրոցեսորային ազդանշանի վրա
Raspberry Pi MMA8452Q 3-Axis 12-bit/8-bit Digital Accelerometer Java Tutorial: 4 Step

Raspberry Pi MMA8452Q 3 առանցքի 12-բիթ/8-բիթ թվային արագացուցիչ Javaավա ձեռնարկ. MMA8452Q- ը խելացի, ցածր էներգիայի, երեք առանցքի, տարողունակ, միկրոմեքենայական արագացուցիչ է ՝ 12 բիթ թույլատրությամբ: Օգտվողի կողմից ծրագրավորվող ճկուն տարբերակները տրամադրվում են արագացուցիչի մեջ ներկառուցված գործառույթների օգնությամբ, որոնք կարող են կարգավորվել երկու ընդհատման համար
Green Laser Subwoofer Tutorial: 6 Step

Կանաչ լազերային ենթավոֆերի ձեռնարկ