![Arduino Nano - MPL3115A2 Precision Altimeter Sensor үйрөткүчү: 4 кадам Arduino Nano - MPL3115A2 Precision Altimeter Sensor үйрөткүчү: 4 кадам](https://i.howwhatproduce.com/images/002/image-3723-13-j.webp)
2025 Автор: John Day | [email protected]. Акыркы өзгөртүү: 2025-01-23 14:51
![Image Image](https://i.howwhatproduce.com/images/002/image-3723-15-j.webp)
![](https://i.ytimg.com/vi/1SQNlzMTexM/hqdefault.jpg)
MPL3115A2 так басым/бийиктик жана температура маалыматын берүү үчүн I2C интерфейси бар MEMS басым сенсорун колдонот. Сенсордун жыйынтыктары жогорку разряддуу 24-бит ADC менен санариптештирилет. Ички иштетүү MCU тутумунун компенсация милдеттерин жок кылат. Бул 0,05 кПадагы өзгөрүүнү аныктоого жөндөмдүү, бул бийиктиктин 0,3 м өзгөрүшүнө барабар. Бул жерде анын Arduino Nano менен болгон демонстрациясы.
1 -кадам: Сизге эмне керек..
![Сизге эмне керек.. !! Сизге эмне керек.. !!](https://i.howwhatproduce.com/images/002/image-3723-16-j.webp)
1. Ардуино Нано
2. MPL3115A2
3. I²C кабели
4. Arduino Nano үчүн I²C Shield
2 -кадам: Байланыштар:
![Байланыштар Байланыштар](https://i.howwhatproduce.com/images/002/image-3723-17-j.webp)
![Байланыштар Байланыштар](https://i.howwhatproduce.com/images/002/image-3723-18-j.webp)
![Байланыштар Байланыштар](https://i.howwhatproduce.com/images/002/image-3723-19-j.webp)
![Байланыштар Байланыштар](https://i.howwhatproduce.com/images/002/image-3723-20-j.webp)
Arduino Nano үчүн I2C калканчын алыңыз жана аны акырындык менен Нанонун казыктарына түртүңүз.
Андан кийин I2C кабелинин бир учун MPL3115A2 сенсоруна, экинчи учун I2C калканчына туташтырыңыз.
Байланыштар жогорудагы сүрөттө көрсөтүлгөн.
3 -кадам: Код:
![Код Код](https://i.howwhatproduce.com/images/002/image-3723-21-j.webp)
MPL3115A2 үчүн arduino кодун биздин github репозиторийинен көчүрүп алса болот-DCUBE дүкөнү.
Мына ушуга шилтеме:
github.com/DcubeTechVentures/MPL3115A2/blob/master/Arduino/MPL3115A2.ino
Биз сенсордун Arduino тактасы менен I2c байланышын жеңилдетүү үчүн Wire.h китепканасын камтыйбыз.
Сиз бул жерден кодду көчүрүп алсаңыз болот, ал төмөнкүчө берилген:
// Эркин лицензия менен таратылган.
// Аны каалагандай колдон, пайда же бекер, эгер ал ага байланыштуу чыгармаларынын лицензиясына туура келсе.
// MPL3115A2
// Бул код MPL3115A2_I2CS I2C Mini Module менен иштөө үчүн иштелип чыккан
#кошуу
// MPL3115A2 I2C дареги 0x60 (96)
#define 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 байт маалымат сураңыз
Wire.requestFrom (Addr, 6);
// 0x00 (00) дарегинен 6 байт маалыматтарды окуу
// статус, tHeight msb1, tHeight msb, tHeight lsb, temp msb, temp lsb
эгер (Wire.available () == 6)
{
data [0] = Wire.read ();
data [1] = Wire.read ();
data [2] = Wire.read ();
маалымат [3] = Wire.read ();
data [4] = Wire.read ();
маалымат [5] = Wire.read ();
}
// Маалыматтарды 20 битке айландырыңыз
int tHeight = (((узун) (маалымат [1] * (узун) 65536) + (маалымат [2] * 256) + (маалымат [3] & 0xF0)) / 16);
int temp = ((маалыматтар [4] * 256) + (маалыматтар [5] & 0xF0)) / 16;
калкып бийиктик = tHeight / 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 байт маалымат сураңыз
Wire.requestFrom (Addr, 4);
// 4 байт маалыматтарды окуңуз
// статус, пресс msb1, пресс msb, pres lsb
эгер (Wire.available () == 4)
{
data [0] = Wire.read ();
data [1] = Wire.read ();
data [2] = Wire.read ();
маалымат [3] = Wire.read ();
}
// Маалыматтарды 20 битке айландырыңыз
long pres = (((long) data [1] * (long) 65536) + (data [2] * 256) + (data [3] & 0xF0)) / 16;
сүзүүчү басым = (pres / 4.0) / 1000.0;
// Маалыматтарды сериялык мониторго чыгаруу
Serial.print ("Бийиктик:");
Serial.print (бийиктик);
Serial.println ("m");
Serial.print ("Басым:");
Serial.print (басым);
Serial.println ("kPa");
Serial.print ("Цельсий боюнча температура:");
Serial.print (cTemp);
Serial.println ("C");
Serial.print ("Фаренгейт температурасы:");
Serial.print (fTemp);
Serial.println ("F");
кечигүү (500);
}
4 -кадам: Тиркемелер:
MPL3115A2дин ар кандай тиркемелери жогорку тактык алтиметриясын, смартфондорду/планшеттерди, персоналдык электроника алтиметриясын ж.б. камтыйт.
Сунушталууда:
Arduino Nano - TSL45315 Ambient Light Sensor үйрөткүчү: 4 кадам
![Arduino Nano - TSL45315 Ambient Light Sensor үйрөткүчү: 4 кадам Arduino Nano - TSL45315 Ambient Light Sensor үйрөткүчү: 4 кадам](https://i.howwhatproduce.com/images/001/image-610-10-j.webp)
Arduino Nano - TSL45315 Айланадагы жарык сенсорунун үйрөткүчү: TSL45315 - бул санариптик жарыктын сенсору. Бул жарыктын ар кандай шарттарында адамдын көзүнүн реакциясын болжолдойт. Түзмөктөрдүн үч тандалма интеграция убактысы бар жана I2C автобус интерфейси аркылуу 16-бит люкс түз чыгууну камсыз кылат. Түзмөк ко
Arduino Nano - HTS221 Салыштырмалуу нымдуулук жана температура сенсорунун үйрөткүчү: 4 кадам
![Arduino Nano - HTS221 Салыштырмалуу нымдуулук жана температура сенсорунун үйрөткүчү: 4 кадам Arduino Nano - HTS221 Салыштырмалуу нымдуулук жана температура сенсорунун үйрөткүчү: 4 кадам](https://i.howwhatproduce.com/images/010/image-27332-j.webp)
Arduino Nano - HTS221 Салыштырмалуу нымдуулук жана температура сенсорунун үйрөткүчү: HTS221 - салыштырмалуу нымдуулук жана температура үчүн өтө компакт сыйымдуу санарип сенсор. Бул санариптик серия аркылуу өлчөө маалыматын берүү үчүн сезгич элементти жана аралаш сигналдын атайын интегралдык схемасын (ASIC) камтыйт
Arduino Nano - SI7050 Температура сенсорунун үйрөткүчү: 4 кадам
![Arduino Nano - SI7050 Температура сенсорунун үйрөткүчү: 4 кадам Arduino Nano - SI7050 Температура сенсорунун үйрөткүчү: 4 кадам](https://i.howwhatproduce.com/images/010/image-27333-j.webp)
Arduino Nano - SI7050 Температура сенсорунун үйрөткүчү: SI7050 - бул I2C байланыш протоколу боюнча иштеген жана иштөө чыңалуусу менен температурасынын аралыгында жогорку тактыкты сунуштаган санарип температура сенсору. Сенсордун бул жогорку тактыгына жаңы сигналды иштетүү жана анал
Raspberry Pi A1332 Precision Hall - Effect Angle Sensor Java үйрөткүчү: 4 кадам
![Raspberry Pi A1332 Precision Hall - Effect Angle Sensor Java үйрөткүчү: 4 кадам Raspberry Pi A1332 Precision Hall - Effect Angle Sensor Java үйрөткүчү: 4 кадам](https://i.howwhatproduce.com/images/002/image-3072-60-j.webp)
Raspberry Pi A1332 Precision Hall - Effect Angle Sensor Java үйрөткүчү: A1332 - бул 360 ° контактсыз жогорку чечимдүү программалоочу магниттик бурчтун сенсору. Бул I2C интерфейсин колдонгон санарип системалар үчүн иштелип чыккан. Ал Circular Vertical Hall (CVH) технологиясына жана программалоочу микропроцессорго негизделген сигналга курулган
Arduino Nano - BH1715 Digital Ambient Light Sensor үйрөткүчү: 4 кадам
![Arduino Nano - BH1715 Digital Ambient Light Sensor үйрөткүчү: 4 кадам Arduino Nano - BH1715 Digital Ambient Light Sensor үйрөткүчү: 4 кадам](https://i.howwhatproduce.com/images/002/image-3147-13-j.webp)
Arduino Nano - BH1715 Санариптик Чырак Сенсорунун Үйрөткүчү: BH1715 - бул I²C автобус интерфейси бар санариптик жарык сенсору. BH1715, адатта, мобилдик түзмөктөр үчүн ЖК жана Баскычтоптун арткы жарык кубатын тууралоо үчүн айланадагы жарык маалыматтарды алуу үчүн колдонулат. Бул түзмөк 16-биттик чечимди жана жөндөөнү сунуштайт