உள்ளே வர
பேச்சு சிகிச்சை போர்டல்
  • மனோவின் வேலை "பரீட்சை உள்ள மடக்கை சமத்துவமின்மை"
  • செயல்பாடு ஒரு வரைபடம் கண்டுபிடிக்க எப்படி?
  • கணித மற்றும் வசந்த ஊசியின் இயற்பியல்மீடோவா பவர் இலவச ஊசலாட்டத்தில் phatcet தரம் சவால்கள்
  • சொல்-தசைநார்கள் மற்றும் கட்டுரையில் அவற்றை எவ்வாறு பயன்படுத்துவது
  • புவியியல் பணி 2 பதவியை நான் தீர்மானிப்பேன்
  • வரலாற்றில் டெஸ்ட் ஸ்கோர்
  • வளிமண்டல அழுத்தம் சென்சார் BMP085 மற்றும் Arduino. Arduino BMP280 அழுத்தம் சென்சார்கள், BMP180, BME280 BMP180 இணைக்கும் Arduino

    வளிமண்டல அழுத்தம் சென்சார் BMP085 மற்றும் Arduino. Arduino BMP280 அழுத்தம் சென்சார்கள், BMP180, BME280 BMP180 இணைக்கும் Arduino

    அனைத்து நல்ல நாள், நன்றாக, என்ன ... தான் தொடங்க !!! இந்த கட்டுரை ஒரு பாரோமெட்ரிக் அழுத்தம் சென்சார் இணைக்கும் உள்ளது. BMP180. ஒரு தொகுதி கணினிக்கு Arduino uno. ஆனால் அது மிகவும் எளிதானது அல்ல, நான் முதல் பார்வையில் விரும்புகிறேன். காட்சி அளவிடப்படுகிறது மற்றும் மாற்றியமைக்கப்பட்ட வெப்பநிலை மதிப்புகள் நாம் இயக்கி தரவுத்தளத்தில் 7-பிரிவு காட்சி இருக்கும் Max7219. . மற்றும் அவர்கள் இரண்டு மாற்றப்பட்ட அலகுகள் ஒரு இயங்கும் வரி காட்டப்படும் - இவை டிகிரி செல்சியஸ் மற்றும் டிகிரி பாரன்ஹீட் ஆகும்.

    சென்சார் BMP180. இது ஒரு பாரோமெட்ரிக் அழுத்தம் சென்சார் மட்டும் அல்ல, ஆனால் ஒரு உயர் துல்லியமான வெப்பநிலை சென்சார். இது ஒரு மிக முக்கியமான சாதனமாகும், இது ஒரு கண்ணோட்டம் வீடியோ கட்டுரையின் முடிவில் காண்பிக்கப்படும், அது எவ்வளவு முக்கியம் என்பதை உறுதி செய்யக்கூடியதாக இருக்கும். நன்றாக, மேலும், நீங்கள் சென்சார் பண்புகள் மேற்கோள் காட்ட முடியும் BMP180. :

    • 3.3 வோல்ட் வழங்கல் மின்னழுத்தம்
    • தற்போதைய நுகர்வு 5 μa கணக்கெடுப்பு அதிர்வெண் 1 HZ
    • இணைப்பு இடைமுகம் - I2C.
    • அளவிடப்பட்ட அழுத்தம் + -0.12 HPA (உயரத்தில் + -1 மீட்டர்) மூலம் துல்லியத்தின் ஸ்கேட்டர்
    • அளவீட்டு வரம்பில் இருந்து -40 * உடன் + 85 * உடன்
    • அழுத்தம் அளவீட்டு வீச்சு: 300 முதல் 1100 HPA வரை

    குழுவிற்கு சென்சார் இணைக்க நேரம் Arduino uno. ஆனால் நாம் அளவிடப்படுகிறது மற்றும் மாற்றியமைக்கப்பட்ட மதிப்புகள் 7 வது பிரிவு காட்சி காட்டப்படும் என்பதால், பின்வரும் திட்டத்தில் நாம் அனைத்து சாதனங்கள் முழு இணைப்பை காண்பிக்கும், அதே போல் சென்சார் பினட் BMP180. :

    பொதுவாக, இணைப்பு திட்டத்தில் சிக்கலான எதுவும் இல்லை, எல்லாவற்றையும் காணலாம் மற்றும் தெளிவுபடுத்தலாம், அடுத்த படியின் ஸ்கெட்ச் எழுதுவதற்கு நாங்கள் திரும்புவோம். சில முக்கியமான தருணங்கள் அளவிடப்பட்ட மற்றும் மாற்றப்பட்ட மதிப்புகளின் காட்சிப்படுத்தல் செயல்படுத்துவதில்:

    • காட்சி மட்டுமே வெப்பநிலை மதிப்புகள் (ஏன் கீழே விவரிக்கப்பட்டுள்ளது)
    • வெப்பநிலை மதிப்புகள் பத்தாவது டிகிரி (முன்னோட்ட படத்தை பார்த்தபடி) செயல்படுத்தப்பட வேண்டும்)
    • இயங்கும் வரிசையின் வடிவில் காட்சிப்படுத்தல் செயல்படுத்தவும்
    • இயக்கும் மற்றும் துவக்க போது சென்சார் மாநில பற்றி கண்டறியும் செய்திகளை வேண்டும்
    • சென்சார் உடன் வேலை செய்ய நூலகத்தைப் பயன்படுத்தவும்

    ஏன் இது அனைத்து வெப்பநிலை மதிப்புகள் நீக்க அதே தான் ... நிச்சயமாக, நான் சென்சார் முற்றிலும் அனைத்து திறன்களை மறைக்க விரும்புகிறேன் BMP180. ஆனால் 7-பிரிவு காட்சி காட்சிப்படுத்தல், இந்த வகை காட்சிப்படுத்தல் தொகுதிகள் பயன்படுத்தி உருவாக்க முடியும் அந்த விட இயங்கும் சரம் செய்திகளை காட்ட மிகவும் சிக்கலான எழுத்துக்கள் எடுக்கும். எனவே, அது ஒரே மாதிரியான வெப்பநிலை மதிப்புகளை மட்டுமே காட்ட முடிவு செய்யப்பட்டது, ஆனால் பொதுவாக ஒட்டுமொத்தமாக, வழக்கமாக அரிதாகவே வளிமண்டல அழுத்தத்தின் சாட்சியத்தை தோற்றுவிக்கும் போது, \u200b\u200bஉதாரணமாக நடக்கப் போகிறது. இன்னும் - யாராவது இன்னும் நுட்பமாக BMP180 சென்சார் வேலை ஆய்வு விரும்பினால், பின்னர் செருகுநிரல் நூலகத்தில் இரண்டு உதாரணங்கள் உள்ளன, இது இந்த சென்சார் பயன்படுத்தி அழுத்தம் மற்றும் வெப்பநிலை பெற மற்றும் வெப்பநிலை பெற மற்றும் மாற்ற எப்படி இன்னும் விரிவாக விளக்க முடியும்.

    இதன் விளைவாக, இந்த ஸ்கெட்ச் டெவலப்பரின் கருத்துக்களுடன் உருவாக்கப்பட்டது:

    # "sfe_bmp180.h" sfe_bmp180.h "wire.h" # "yellude" # ladcontrol.h "#incontrol.h" //tlude scrolling செய்திகளை scrlling செய்திகள் () VIOOD MSGScrolling (பைட் MSG, int msgsize, int dscroll); / / செயலாக்க வெப்பநிலை // முன்மாதிரி செயல்பாடுகளை // மற்றும் வெற்றிடத்தை TMSGPreparation செய்தி (இரட்டை மதிப்பு, பூல் பட்டம்) தயார்; // LDControl வர்க்கம் பொருள் LEDCONTROL LC \u003d LEDCONTROL காட்சி (12, 11, 10, 8) உடன் வேலை செய்ய ஒரு LDControl வர்க்கம் பொருளை உருவாக்கவும்; // SFE_BMP180 BMP180Sensor சென்சார் உடன் வேலை செய்ய ஒரு பொருள் BMP180Sensor வகுப்பு SFE_BMP180 உருவாக்க. // நேரம் தாமதப்படுத்தும் சின்னங்களை ஸ்க்ரோலிங் போது scrolling int delaycrolling \u003d 300; // செய்தி "சென்சார் துவக்கம் வெற்றிகரமாக" பைட் Msginsuccess \u003d (91, 79, 21, 91, 29, 5, 16, 21, 16, 16, 13, 79, 91, 13, 13, 79, 91, 91); // செய்தி "சென்சார் துவக்கம் சென்சார்" பைட் MsginitFail \u003d (91, 79, 21, 91, 29, 5, 16, 219, 15, 0, 71, 119, 48, 14); / / ஒரு புள்ளி பைட் டிஜிட்டல் \u003d (126, 48, 109, 121, 51, 91, 95, 112, 127, 123) இல்லாமல் எண் எழுத்துகளின் வரிசை வரிசை; // ஒரு புள்ளி பைட் Pdigit \u003d (254, 176, 237, 249, 179, 219, 223, 240, 255, 251) உடன் எண் எழுத்துகளின் வரிசை வரிசை; // சின்னம் கையெழுத்துக்கள் பைட் DEG \u003d 99; // சின்னம் "பட்டம்" பைட் சி \u003d 78; // சின்னம் "சி" - செல்சியஸ் பைட் f \u003d 71; // சின்னம் "எஃப்" - Fahrenheat byte s \u003d 1; // சின்னம் "-" - ஒரு கழித்தல் அடையாளம் (அளவிடப்பட்ட மதிப்பு பூஜ்ஜியத்திற்கு கீழே இருந்தால்) வெற்றிடத்தை அமைப்பு () (// சாதனம் (7-பிரிவு (7-பிரிவு (7-பிரிவு (7-பிரிவு (7-பிரிவு காட்சி) வெளியீடு LC.shutdown (0, FALSE); // நிறுவவும் 0 முதல் 15 lc.setinitrender (0); // தெளிவான LC.CLEARDisPlay காட்சி (0); // சென்சார் துவக்கம் I2C இல் SENSOR துவக்கம் (BMP180Sensor.Begin () // செய்தி சுருள் - சென்சார் துவக்கத்தை வெற்றிகரமாக MSGScrolling (MSGGSUCCESSUCESSUCESSUCSCESSUCSCESSUCCSSCESSCESSCESSUCSSCESSCESSCSSECCESS), delacscrolling);) ((உண்மை) (// சுருள் செய்தி - நிபுணர் சென்சார் துவக்கம் MSGinitFail, sizeof (msginfail), delacscrolling); ) Void Loop () () (கரி நிலை; இரட்டை t, tcelsius, tfahrenheit; // தொடக்க வெப்பநிலை அளவீடுகள் // StartTemperature () செயல்பாடு கணக்கீட்டு செயல்முறை தொடக்கத்தில் இருந்து, அளவீட்டு செயல்முறை தொடக்கத்தில் இருந்து, / இந்த மதிப்பை நிலை மாறி இந்த மதிப்பை சேமிக்கவும் / செயல்பாடு 0 என்றால் அளவீட்டு செயல்முறை தவறான நிலைமை \u003d bmp180sensor.startemperature (); (நிலையை! \u003d 0) என்றால் (// மில்லிசெகண்ட்ஸ் தாமதம் தாமதம் (நிலை); // அளவிடப்பட்ட மற்றும் சிகிச்சையளிக்கப்பட்ட வெப்பநிலை மதிப்பு // டிகிரி செல்சியஸ் ஆகியவற்றில் சேமிக்கவும், ஒரு மாறி T // GetTemperature () செயல்பாடு 1 அதன் அழைப்பு // வெற்றிகரமாக கடந்து சென்றால், 0 செயல்பாடு துவக்க முடியாவிட்டால் / / ஒரு மாறி டி நிலைமை \u003d bmp180sensor.gettemperature (t) என்றால் (நிலை! \u003d 0) (/ / ஒரு மாறி மதிப்பு // ஒரு மாறி மதிப்பு // மற்றும் ஒரு பாரன்ஹீட் அளவிலான tcelsius \u003d t; tcelsius \u003d t; tcelsius \u003d (9.0 / 5.0) * T + 32.0;)) // மதிப்பு மற்றும் // செய்தி தயார் செய்தல் - வெப்பநிலை Tmsgpreparation (tcelsius, false); Tmsgpreparation (tfahrenheit, உண்மை); ) // இங்கே ஸ்க்ரோலிங் செய்த செய்திகளை ஸ்க்ரோலிங் உண்மையான செயல்பாடு - இடது / * * அளவுருக்கள்: * பைட் Msg - குறியீட்டு தரவு ஒரு வரிசை * எண்ணாக MSGSize - குறியீட்டு தரவு வரிசை * int dscroll - ஸ்க்ரோல் தாமதம் (இடதுபுறமாக மாற்றவும்) * மில்லிசெகண்ட்களில் * / void msgscrolling (பைட் எம்.ஜி.g, int msgsize, int dscroll) (int i \u003d 0; i< 8 + msgSize; i ++) { for(int n = i, j = 0; n >\u003d 0, J.< msgSize; n --, j ++) { LC.setRow(0, n, msg[j]); LC.setRow(0, n - 1, B00000000); } delay(dScroll); } } /* * Здесь функция подготовки сообщения, прежде чем оно будет выведено * для прокрутки на дисплее. Параметры: * double value - значение температуры двойной степени точности * bool degree - флаг для определения шкалы градуирования * если false - значит градусы Цельсия * если true - значит градусы Фаренгейта */ void TmsgPreparation(double value, bool degree) { //Приводим к абсолютному значению и сохраняем в переменной T //Это унифицирует значение и сократит код функции вдвое double T = abs(value); //Здесь значение фильтруется, если есть отклонение на пол градуса //от нуля то всё равно формировать сообщение что температура равна 0 //Итак, если замеренная температура меньше 0.5 то ставим 0 if(T < 0.5) { //Резервируем символьный массив на три символа byte preMsg; //Первый символ - это естественно 0 preMsg = Digit; //Второй символ - это сгенерированный символ "градус" preMsg = deg; //Проверка флага градуировки if(degree) { //Если true - то это градусы Фаренгейта //и третий символ в массиве будет содержать //сгенерированный символ F(код 71) preMsg = F; } else { //Иначе, если true - то это градусы Цельсия //и третий символ в массиве будет содержать //сгенерированный символ С(код 78) preMsg = C; } //Отправляем указатель на проинициализированный символьный массив preMsg //в качестве первого параметра функции для прокрутки сообщений //второй параметр - это размер символьного массива preMsg //третий параметр - задержка сдвига(прокрутки влево) в миллисекундах msgScrolling(preMsg, sizeof(preMsg), delayScrolling); //После прокрутки сообщения покинуть тело функции return; } //Если больше 0.5 но меньше 1 if(T < 1) { byte preMsg; preMsg = pDigit; preMsg = Digit; preMsg = deg; if(degree) { preMsg = F; } else { preMsg = C; } //Здесь нужно знать показания температуры //Отрицательные или положительные, //если отрицательные - добавить отрисовку знака минус if(value < 0) { byte rdyMsg; //В первый байт массива символов сообщения //записываем знак rdyMsg = S; //Далее - слияние массивов в готовое сообщение for(int i = 1; i < sizeof(rdyMsg); i ++) { // rdyMsg[i] = preMsg; } msgScrolling(rdyMsg, sizeof(rdyMsg), delayScrolling); return; } else { msgScrolling(preMsg, sizeof(preMsg), delayScrolling); return; } } //Если больше 1 но меньше 10 if(T < 10) { byte preMsg; preMsg = pDigit; preMsg = Digit; preMsg = deg; if(degree) { preMsg = F; } else { preMsg = C; } if(value < 0) { byte rdyMsg; //В первый байт массива символов сообщения //записываем знак rdyMsg = S; //Далее - слияние массивов в готовое сообщение for(int i = 1; i < sizeof(rdyMsg); i ++) { // rdyMsg[i] = preMsg; } msgScrolling(rdyMsg, sizeof(rdyMsg), delayScrolling); return; } else { msgScrolling(preMsg, sizeof(preMsg), delayScrolling); return; } } //Если больше 10 но меньше 100 if(T < 100) { byte preMsg; preMsg = Digit; preMsg = pDigit; preMsg = Digit; preMsg = deg; if(degree) { preMsg = F; } else { preMsg = C; } if(value < 0) { byte rdyMsg; //В первый байт массива символов сообщения //записываем знак rdyMsg = S; //Далее - слияние массивов в готовое сообщение for(int i = 1; i < sizeof(rdyMsg); i ++) { // rdyMsg[i] = preMsg; } msgScrolling(rdyMsg, sizeof(rdyMsg), delayScrolling); return; } else { msgScrolling(preMsg, sizeof(preMsg), delayScrolling); return; } } //Если больше 100 но меньше 1000 if(T < 1000) { byte preMsg; preMsg = Digit; preMsg = Digit; preMsg = pDigit; preMsg = Digit; preMsg = deg; if(degree) { preMsg = F; } else { preMsg = C; } if(value < 0) { byte rdyMsg; //В первый байт массива символов сообщения //записываем знак rdyMsg = S; //Далее - слияние массивов в готовое сообщение for(int i = 1; i < sizeof(rdyMsg); i ++) { // rdyMsg[i] = preMsg; } msgScrolling(rdyMsg, sizeof(rdyMsg), delayScrolling); return; } else { msgScrolling(preMsg, sizeof(preMsg), delayScrolling); return; } } }

    நான் தரமான LEDCONTROL நூலகத்தில் ஸ்க்ரோலிங் அம்சங்கள் இல்லை என்று சொல்ல விரும்புகிறேன், ஒருவேளை இந்த நூலகத்தை பூர்த்தி செய்யும் வழக்கு? சரி, அது எங்கள் பார்வையாளர்கள் விருப்பங்களை பொறுத்தது, கருத்து, முயற்சி, கேள்விகளைக் கேட்கவும் ... உங்கள் கருத்துக்காக நாங்கள் காத்திருக்கிறோம். வேலை ஸ்கெட்ச் வீடியோ இந்த கட்டுரையில் இணைக்கப்பட்டுள்ளது, நாங்கள் ஸ்கெட்ச் முடிவுகளை பார்க்கிறோம்:


    கருத்துரைகளுக்கு JavaScript ஐ இயக்கவும்.

    கருத்துரைகளுடன் Arduino திட்டம்:

    / * Sfe_bmp180 நூலகம் உதாரணம் ஸ்கெட்ச்

    இந்த ஸ்கெட்ச் SFE_BMP180 நூலகத்தை எவ்வாறு படிக்க வேண்டும் என்பதைப் பயன்படுத்துகிறது
    BOSCH BMP180 பாரோமெட்ரிக் அழுத்தம் சென்சார்.
    https://www.sparkfun.com/products/11824.
    பெரும்பாலான அழுத்தம் உணரிகள் போலவே, BMP180 முழுமையான அழுத்தத்தை அளவிடும்.
    சாதனம் மூலம் காணப்படும் உண்மையான சுற்றுப்புற அழுத்தம் இது
    இருவரும் உயரமும் வானிலுடனும் வேறுபடுகின்றன.
    ஒரு அழுத்தத்தை வாசிப்பதற்கு முன் நீங்கள் ஒரு தற்காலிக வாசிப்பு எடுக்க வேண்டும்.
    இது StartTemperature () மற்றும் gettemperature () உடன் செய்யப்படுகிறது.
    இதன் விளைவாக டிகிரி சி உள்ளது.
    நீங்கள் ஒரு வெப்பநிலை வாசிப்பு இருந்தால், நீங்கள் ஒரு அழுத்தம் வாசிப்பு எடுக்க முடியும்.
    இது STANTPRESSURE () மற்றும் greadpressure () உடன் செய்யப்படுகிறது.
    இதன் விளைவாக மில்லிபார் (எம்பி) aka hectopascals (HPA) உள்ளது.
    நீங்கள் வானிலை வடிவங்களை கண்காணிப்பதாக இருந்தால், ஒருவேளை நீங்கள் விரும்புவீர்கள்
    உயரத்தின் விளைவுகளை அகற்றவும். இது வாசிப்புகளை உருவாக்கும்
    பிற இடங்களில் இருந்து வெளியிடப்பட்ட அழுத்தம் அளவீடுகளுடன் ஒப்பிடலாம்.
    இதை செய்ய, sealelvel () செயல்பாடு பயன்படுத்த. நீங்கள் வழங்க வேண்டும்
    அழுத்தம் அளவிடப்படும் அதில் அறியப்பட்ட உயரம்.
    நீங்கள் உயரத்தை அளவிட விரும்பினால், நீங்கள் அழுத்தம் தெரிந்து கொள்ள வேண்டும்
    ஒரு அடிப்படை உயரத்தில். இது சராசரியாக seallevel அழுத்தம் இருக்கலாம், அல்லது
    உங்கள் உயரத்தில் ஒரு முந்தைய அழுத்தம் வாசிப்பு, எந்த விஷயத்தில்
    தொடர்ச்சியான உயர அளவீடுகள் + ஓரோ - ஆரம்ப அடிப்படையானது.
    இது முடிந்தது. உடன் உயரம் () செயல்பாடு.

    வன்பொருள் இணைப்புகள்:
    - (GND) GND
    + (VIN) 5V க்கு
    உங்கள் I2C ஊசிகளை (SCL மற்றும் SDA) உங்கள் உங்களுக்கு இணைக்க வேண்டும்
    Arduino. ஊசிகளின் வெவ்வேறு ஆர்டினோஸில் வேறுபட்டவை:
    எந்த Arduino ஊசிகளும் பெயரிடப்பட்ட: SDA SCL
    Uno, redboard, PRO: A4 A5.
    MEGA2560, காரணமாக: 20 21.
    லியோனார்டோ: 2 3.

    SFE_BMP180 நூலகம் உருவாகிய மிதக்கும் புள்ளி சமன்பாடுகளைப் பயன்படுத்துகிறது
    வானிலை நிலையம் தரவு லாஜர் திட்டம்: http://wmrx00.sourceforge.net/

    V10 Mike Grusin, Sparkfun Electronics 10/24/2013.
    V1.1.2 Arduino 1.6.4 5/2015 க்கான மேம்படுத்தல்கள்
    */

    // உங்கள் ஓவியத்தை # இந்த நூலகத்தை சேர்க்க வேண்டும், மற்றும் இந்த கம்பி நூலகம்.
    // (கம்பி Arduino சேர்க்கப்பட்டுள்ளது ஒரு நிலையான நூலகம் உள்ளது.):

    #சேர்க்கிறது.
    #சேர்க்கிறது.
    #சேர்க்கிறது.

    cONT INT RS \u003d 12, EN \u003d 11, D4 \u003d 5, D5 \u003d 4, D6 \u003d 3, D7 \u003d 2;
    Liquidcrystal LCD (RS, EN, D4, D5, D6, D7);

    // நீங்கள் ஒரு sfe_bmp180 பொருள் உருவாக்க வேண்டும், இங்கே "அழுத்தம்" என்று அழைக்கப்படும்:
    Sfe_bmp180 அழுத்தம்;

    வெற்றிடத்தை அமைப்பு ()
    {
    lcd.begin (16, 2);
    // சென்சார் துவக்க (இது சாதனத்தில் சேமித்த அளவீட்டு மதிப்புகள் பெற முக்கியம்).
    அழுத்தம் .begin ();
    }

    void Loop ()
    {
    சார் நிலை;
    இரட்டை T, P, P0 \u003d 1013.0, A; // 1013.0 - கடல் மட்டத்தில் GPA இல் அழுத்தம்

    // நீங்கள் முதலில் ஒரு அழுத்த வாசிப்பு செய்ய ஒரு வெப்பநிலை அளவீடு பெற வேண்டும்.
    // வெப்பநிலை அளவீடு தொடங்க:

    நிலை \u003d அழுத்தம். ஸ்டார்டெம்பெரெமர் ();
    என்றால் (நிலை! \u003d 0)
    {
    தாமதம் (நிலை);

    // முடிக்கப்பட்ட வெப்பநிலை அளவீடு மீட்டெடுக்கவும்:
    // அளவீட்டு மாறி டி இல் சேமிக்கப்படும் என்பதை நினைவில் கொள்க

    நிலைமை \u003d அழுத்தம் .Gettemperature (t);
    என்றால் (நிலை! \u003d 0)
    {
    lcd.setcursor (0, 0);
    lcd.print ("temp \u003d");
    lcd.print (t, 2);
    lcd.print ("c");
    // அழுத்தம் அளவீட்டு தொடங்க:
    // அளவுரு oversampling அமைப்பாகும், 0 முதல் 3 வரை (அதிக ரெஸ், நீண்ட காத்திருப்பு).
    // கோரிக்கை வெற்றிகரமாக இருந்தால், காத்திருக்க MS எண்ணிக்கை திரும்பியது.
    / கோரிக்கை தோல்வியுற்றால், 0 திரும்பியது.

    நிலை \u003d அழுத்தம். ஸ்டார்டரர் (3);
    என்றால் (நிலை! \u003d 0)
    {
    // முடிக்க அளவீட்டிற்காக காத்திருக்கவும்:
    தாமதம் (நிலை);

    // நிறைவு அழுத்தம் அளவீட்டு மீட்டெடுக்க:
    // அளவீட்டு மாறி பி இல் சேமிக்கப்படும் என்பதை நினைவில் கொள்க
    // செயல்பாடு முந்தைய வெப்பநிலை அளவீட்டு (t) தேவைப்படுகிறது.
    // (வெப்பநிலை நிலையானதாக இருந்தால், பல அழுத்த அளவீடுகளுக்கு ஒரு வெப்பநிலை அளவீடு செய்யலாம்.)
    // செயல்பாடு வருமானம் 1 வெற்றிகரமாக இருந்தால், 0 தோல்வி என்றால்.

    நிலை \u003d அழுத்தம்.ஜெண்டிரிஸ் (பி, டி);
    என்றால் (நிலை! \u003d 0)
    {
    / / அளவீடு அச்சிட:
    lcd.setcursor (0, 1);
    lcd.print ("p \u003d");
    lcd.print (p / 1.333.0); // டூப். 1.333 - Mm.rt.st. இல் GPU இன் மாற்றம்

    // நீங்கள் அழுத்த வாசிப்பு இருந்து உங்கள் உயரத்தை தீர்மானிக்க விரும்பினால்
    / / ஒரு அடிப்படை அழுத்தம் (கடல் நிலை அல்லது வேறு) சேர்த்து உயர செயல்பாடு பயன்படுத்த.
    // அளவுருக்கள்: P \u003d MB இல் முழுமையான அழுத்தம், P0 \u003d 1013 MB இல் அடிப்படை அழுத்தம்.
    / / முடிவு: ஒரு \u003d உயரத்தில் மீ.

    a \u003d pression.altitude (பி, P0);
    lcd.print ("h \u003d");
    lcd.print (a, 2);
    lcd.print ("m");
    }
    வேறு lcd.print ("பிழை");
    }
    வேறு lcd.print ("பிழை");
    }
    வேறு lcd.print ("பிழை");
    }
    வேறு lcd.print ("பிழை");
    தாமதம் (5000); // 5 விநாடிகள் இடைநிறுத்தம்.

    #சேர்க்கிறது. #சேர்க்கிறது. // SFE_BMP180 ஐ அணுக ஒரு மாறி அறிவிக்க வேண்டும்: sfe_bmp180 அழுத்தம்; # மீட்டர் தூரத்தில் 1655.0 // உயரம் 1655.0 // உயரம் கடல் மட்டத்திலிருந்து மீட்டர் வெயிட் அமைப்பு () (Serial.Begin (9600); serial.println ("reboot"); // துவக்கம் என்றால் (அழுத்தம்.பெக் ()) சீரியல் ( "Bmp180 init init"); வேறு (// நாம் இங்கு ஏதோ துக்கப்படுகிறோமா இல்லையென்றால். பொதுவாக, jambs ஒரு இணைப்பு கொண்ட jambs ("BMP180 init in n \\ n"); போது (1); // பார்க்க)) Void Loop () (கரி நிலை; இரட்டை t, p, p0, a; // நீங்கள் காற்று அழுத்தத்தை தெரிந்து கொள்ள விரும்பினால், கடல் மட்டத்தில் சரி, பொதுவாக வானிலை முன்னறிவிப்புகளில் பயன்படுத்தப்படுகிறது // நீங்கள் தெரிந்து கொள்ள வேண்டும் உங்கள் பகுதியில் கடல் மட்டத்தில் அளவீடு செய்யப்படும் // serial.println (); serial.print ("கடல் நிலை:"); Serial.Print (உயரம், 0 ); serial.print ("மீட்டர்,"); சீரியல் .print (உயரத்தை * 3.28084.0); சீரியல்.பிரிண்ட்லேன் ("அடி"); // நீங்கள் கடல் மட்டத்திற்கு மேலே உயரத்தை கண்டுபிடிக்க விரும்பினால், மற்றும் அழுத்தம் தெரியும் // நீங்கள் தற்போதைய வளிமண்டல அழுத்தம் குறிப்பிட வேண்டும். இதை செய்ய எப்படி குறியீடு முடிவில் எழுதப்பட்டுள்ளது. // அழுத்தம் இருந்து சில பக்கவாட்டாக பொறுத்தது என்பதால், நீங்கள் முதல் வெப்பநிலை // BMP180 ஒரு உள்ளமைக்கப்பட்ட வெப்பமானி கொண்ட கண்டுபிடிக்க வேண்டும். அளவீட்டு அளவீடு சிறிது நேரம் எடுக்கும். // எல்லாம் சரியாக இருந்தால், அழுத்தம் .startempertemperature MilicEcunds எண்ணிக்கை நிலைக்கு திரும்ப வேண்டும், // நீங்கள் வெப்பநிலை அளவீடு காத்திருக்க வேண்டும் // கம்பிகள் cants cants உடன் காத்திருக்க வேண்டும் 0 நிலையை \u003d அழுத்தம் திரும்ப வேண்டும் என்றால். (நிலை! \u003d 0) என்றால் (// நாம் காத்திருக்கிறோம்: தாமதம் (நிலை); // வெப்பநிலை எடுத்து, நாம் மாறி T: // செயல்பாடு 1 எல்லாம் சரி என்றால், 0 என்றால் சரி, 0 என்றால் \u003d Pression.gettemperature (t); என்றால் (நிலை! \u003d 0) (// ஒரு வெப்பநிலையை எழுதுங்கள்: serial.print ("வெப்பநிலை:"); சீரியல் .print (t, 2); serial.print ("டிகிரி சி," ); // celsiys serial.print ((9.0 / 5.0) * t + 32.0.2); serial.println ("டிகிரி எஃப்"); // Fahrenheita // ஏடிஎம் தீர்மானிக்க. அழுத்தம்: // அளவுரு தீர்மானம் குறிக்கிறது 0 முதல் 3 வரை (மேலும் தீர்மானம், அதிக துல்லியம், காத்திருக்க நீண்ட). // எல்லாம் சரியாக இருந்தால், அழுத்தம்.ஸ்டார்டிரியர் Miliscond நிலைக்கு திரும்புவார், // நீங்கள் காத்திருக்க வேண்டும் ஏடிஎமியின் அளவீடு. அழுத்தம் / / சில ஜாம்ப் 0 நிலையை திரும்பப் பெறும் என்றால் \u003d அழுத்தம் \u003d அழுத்தம் (3); என்றால் (நிலை! \u003d 0) இப்போது நீங்கள் மாறி P. // அழுத்தம் பெற முடியும் // செயல்பாடு 1 எல்லாம் சரி என்றால் எல்லாம் சரி என்றால், 0 என்றால் சரி, 0 என்றால் சரி. தகுதி \u003d அழுத்தம் (p, t) என்றால் (தகுதி! \u003d 0) (// காட்சி அனைத்து: Seri. Al.Print ("முழுமையான அழுத்தம்:"); Serial.print (p, 2); Serial.print ("மில்லிபார்,"); Serial.print (p * 0. 0295333727.2); Serial.println ("இன்ச் மெர்குரி தூண்"); // சென்சார் ஏடிஎம் திரும்பும். சென்சார் உயரத்தை பொறுத்து மாறுபடும் அழுத்தம். // வானிலை முன்னறிவிப்பில் நாம் விரும்பினால், நீங்கள் சந்தேகத்திற்குரிய கணக்கீடுகளை // அளவுருக்கள் செய்ய வேண்டும்: P \u003d Millibaras இல் சென்சார் இருந்து அழுத்தம், உயரத்தில் \u003d உயரம் கடல் மட்டத்தில் மீடியா நிலை. // முடிவு: P0 \u003d அழுத்தம், கடல் மட்டத்தில் P0 \u003d அழுத்தம் .சேல் (ப, உயரம்) மூலம் சரி செய்யப்பட்டது; Serial.print ("கடல் மட்டத்தில் அழுத்தம்:"); Serial.print (P0,2); Serial.print ("மில்லிபார்,"); Serial.print (P0 * 0.029533372727272); Serial.println ("இன்ச் மெர்குரி தூண்"); // அல்லது நீங்கள் மாறாக செய்ய விரும்பினால் அல்லது கடல் மட்டத்திலிருந்து உயரத்தை தெரிந்து கொள்ள விரும்பினால், // அளவுருக்கள்: P \u003d Millibaras, P0 \u003d அழுத்தம், P0 \u003d அழுத்தம், கடல் மட்டத்தில் சரி. // முடிவு: மீடியாவில் கடல் மட்டத்திற்கு மேலே ஒரு \u003d உயரம். a \u003d pression.altitude (பி, P0); Serial.print ("கடல் மட்டத்திற்கு மேலாக கணக்கிடப்பட்ட உயரம்:");); Serial.print (a, 0); Serial.print ("மீட்டர்,"); Serial.print (ஒரு * 3.28084.0); Serial.println ("அடி"); ) வேறு serial.println ("அழுத்தம் \\ n" பெறும் பிழை "); ) வேறெந்த serial.println ("அழுத்தம் \\ n" தொடங்கி பிழை "); ) வேறு serial.println ("ஒரு வெப்பநிலை \\ n ஐ பெறும் பிழை"); ) வேறு serial.println ("ஒரு வெப்பநிலை \\ n தொடங்கும் பிழை"); தாமதம் (5000); // இடைநிறுத்தம் 5 விநாடிகள். )

    காற்றழுத்தமானி வளிமண்டல அழுத்தத்தை அளவிடும் ஒரு சாதனமாகும். அதாவது, காற்று அழுத்தம், அனைத்து பக்கங்களிலும் இருந்து எங்களை அழுத்துகிறது. பள்ளியில் இருந்து, முதல் பாரோமீட்டர் மெர்குரி ஒரு தட்டு, மற்றும் ஒரு தலைகீழ் சோதனை குழாய் என்று தெரியும். இந்த சாதனத்தின் ஆசிரியர் சுவிசேஷகன் டாரிகெல்லி - இத்தாலிய இயற்பியலாளர் மற்றும் கணிதவியலாளர் ஆவார். ஆல்கஹால் தெர்மோமீட்டரின் அளவீடுகளைப் போலவே மெர்குரி பாரோமீட்டரின் அளவீடுகளை நீக்கலாம்: Flasks க்கு வெளியே அழுத்தம் பெரியது, அதில் உள்ள பாதரச நெடுவரிசை அதிகமானது. மெர்குரி தம்பதிகள், உங்களுக்கு தெரியும் என, மிகவும் விஷம்.

    பின்னர், ஒரு பாதுகாப்பான சாதனம் ஒரு பாரோமீட்டர் ஆகும். இந்த காற்றழுத்தத்தில், மெர்குரி ஒரு நெளி பெட்டியில் மாற்றப்பட்டது, இதில் வெற்றிடத்தை உருவாக்கியது இதில். வளிமண்டலத்தின் செல்வாக்கின் கீழ், பாக்ஸ் சுருக்கப்பட்டுள்ளது மற்றும் அம்புக்குறி கடிகாரத்தில் நெம்புகோல் அமைப்பு மீது மாறும். இந்த இரண்டு பார்கோமீட்டர்களும் எப்படி இருக்கும். இடது - aneroid, வலது - காற்றழுத்தமானி Torricelli.

    ஏன் ஒரு காற்றழுத்தமானி வேண்டும்? பெரும்பாலும், இந்த சாதனம் விமானத்தின் உயரத்தை தீர்மானிக்க விமானத்தில் பயன்படுத்தப்படுகிறது. அதிக சாதனம் கடல் மட்டத்திற்கு மேலாக உயர்கிறது, குறைந்த அழுத்தம் ஒரு பக்க காற்றழுத்தத்தை அனுபவிக்கும். இந்த சார்பை அறிந்துகொள்வது, உயரத்தை தீர்மானிக்க எளிது.


    மற்றொரு பொதுவான பயன்பாட்டு விருப்பம் ஒரு வீட்டில் வானிலை நிலையம் ஆகும். இந்த வழக்கில், வளிமண்டல அழுத்தம் வரும் வரவிருக்கும் வானிலை அறியப்பட்ட சார்புகளை நாம் பயன்படுத்தலாம். காற்றழுத்தத்துடன் கூடுதலாக, இத்தகைய நிலையங்களில் ஈரப்பதம் உணரிகள் மற்றும் வெப்பநிலை உள்ளன.

    மின்னணு பாரிமோமியல்

    ரோபாட்டிகளில் அத்தகைய பருமனான பாரோமீட்டர்களை நாம் பயன்படுத்த முடியாது. நாம் ஒரு மினியேச்சர் மற்றும் எரிசக்தி திறமையான சாதனம் தேவை என்று ஒரே Arduino uno இணைக்கிறது. பெரும்பாலான நவீன பாம்போமீட்டர்கள் Mems தொழில்நுட்பம், அத்துடன் முடுக்கிமுறைகளுடன் Hyrothetetometers படி செய்யப்படுகின்றன. Mems Barometers ஒரு piezoresistive அடிப்படையாக கொண்டது அல்லது ஒரு துளையிடும் பாதை முறை அடிப்படையில் அல்லது குறைபாடு சக்திகளின் நடவடிக்கையின் கீழ் பொருள் எதிர்ப்பை மாற்றும் விளைவைப் பயன்படுத்துகிறது.

    நீங்கள் பாரோமீட்டர் மெமர் வீடுகளைத் திறக்கும் என்றால், சாதனத்தின் பாதுகாப்பு உடலில் உள்ள துளைக்கு கீழே உள்ள முக்கியமான உறுப்பு (வலது) காணலாம், மற்றும் கட்டுப்பாட்டு வாரியம் (இடது), இது முதன்மை வடிகட்டுதல் மற்றும் அளவீட்டு மாற்றத்தை உருவாக்கும் கட்டுப்பாட்டு வாரியம் (இடது).


    சென்சார்கள் BMP085 மற்றும் BMP180.

    மிகவும் மலிவு அழுத்தம் சென்சார்கள், பெரும்பாலும் விமான கட்டுப்பாட்டு மற்றும் பல்வேறு வகையான வீட்டு மின்னணு சாதனங்கள் பயன்படுத்தப்படுகிறது, BMP085 மற்றும் BMP180 சென்சார்கள்: BMP085 மற்றும் BMP180 சென்சார்கள் காரணமாக இருக்கலாம். இரண்டாவது காற்றழுத்தமானி ஒரு புதியது, ஆனால் பழைய பதிப்புடன் முழுமையாக இணக்கமாக உள்ளது.


    BMP180 இன் சில முக்கிய பண்புகள்:

    • அளவிடப்பட்ட மதிப்புகளின் வரம்பு: 300 GPA இலிருந்து 1100 GPA இலிருந்து (கடல் மட்டத்திலிருந்து + 9000 மீ) வரை);
    • மின்னழுத்தத்தை வழங்குக: 3.3 முதல் 5 வோல்ட் வரை;
      தற்போதைய வலிமை: 5 μ ஒரு கணக்கெடுப்பு விகிதத்தில் - 1 ஹெர்ட்ஸ்;
    • சத்தம் நிலை: 0.06 GPA (0.5 மீ) கரடுமுரடான முறையில் (அல்ட்ரா குறைந்த சக்தி முறை) மற்றும் 0.02 GPA (0.17m) ஒரு மேம்பட்ட தீர்மானம் முறை.

    இப்போது இந்த சென்சார் கட்டுப்படுத்தி இணைக்க, மற்றும் வளிமண்டல அழுத்தம் மதிப்பீடு செய்ய முயற்சி.

    BMP180 ஐ இணைக்கவும்

    இரண்டு சென்சார்கள் ஒரு I2C இடைமுகம் உள்ளது, அதனால் அவர்கள் Arduino குடும்பத்தில் இருந்து எந்த மேடையில் இணைக்க முடியும் என்று. இது Arduino Unu க்கு இணைப்பு அட்டவணை போல தோன்றுகிறது.

    BMP 180.Gnd.VCC.SDA.SCL.
    Arduino uan.Gnd.+ 5v.A4.A5.

    திட்டவட்டமான திட்டம்

    தோற்றம் அமைப்பை


    நிகழ்ச்சி

    சென்சார் வேலை செய்ய, நாம் ஒரு நூலகம் வேண்டும்: bmp180_breakout_arduino_library

    களஞ்சியத்திலிருந்து அதை பதிவிறக்கம் செய்து, Arduino IDE இல் நிறுவவும். இப்போது எல்லாம் முதல் திட்டத்தை எழுதுவதற்கு தயாராக உள்ளது. சென்சார் இருந்து மூல தரவு பெற முயற்சி, மற்றும் அவர்களை காம் போர்ட் மானிட்டர் மீது வெளியீடு.

    #சேர்க்கிறது. #சேர்க்கிறது. Sfe_bmp180 அழுத்தம்; Void Setup () () (Serial.begin (9600); அழுத்தம்.பெகின் ();) வெற்றிடத்தை வளையம் () (இரட்டை பி; பி \u003d getpressure (); serial.println (p, 4); தாமதம் (100); () (Char station; dube t, p, p0, a; status \u003d practy.startempertemperature (); என்றால் (நிலை! \u003d 0) (// மெட்டே தாமதம் (நிலை) காத்திருக்கிறது; நிலை \u003d அழுத்தம் \u003d அழுத்தம் (t); (நிலையை! \u003d 0) என்றால் (நிலை \u003d அழுத்தம். ஸ்டார்டிரெயர் (3); (நிலை! \u003d 0) (/ / அழுத்தம் அளவீட்டு தாமதம் (நிலை) காத்திருக்கிறது; நிலை \u003d அழுத்தம் (பி, டி); என்றால் (அந்த நிலை ! \u003d 0) (திரும்ப (ப);)))))

    சென்சார் இருந்து நேசத்துக்குரிய அழுத்தத்தை பெறுவதற்கான செயல்முறை அத்தகைய அற்பமான அல்ல, பல நிலைகளைக் கொண்டுள்ளது. ஒரு எளிமையான வடிவத்தில், அல்காரிதம் இதுபோல் தெரிகிறது:

    1. உள்ளமைக்கப்பட்ட வெப்பநிலை சென்சார் ஒரு பாரோமீட்டர் அளவீடுகள் தேவை;
    2. சென்சார் வெப்பநிலையை மதிப்பிடும்போது நாங்கள் நேரம் காத்திருக்கிறோம்;
    3. நாம் வெப்பநிலை கிடைக்கும்;
    4. காற்றழுத்தத்திலிருந்து அழுத்தம் கொடுக்க வேண்டும்;
    5. நாம் நேரம் பி காத்திருக்கிறோம், சென்சார் அழுத்தம் மதிப்பிடுகிறது போது;
    6. அழுத்தம் மதிப்பைப் பெறுவோம்;
    7. செயல்பாடு இருந்து அழுத்தம் மதிப்பு திரும்ப.

    நேரம் B செயல்பாடு குறிப்பிடப்பட்டுள்ளது இது அளவீட்டு துல்லியம், பொறுத்தது தொடங்குதல்.. இந்த செயல்பாட்டின் ஒரே வாதம் 0 முதல் 3 வரை மதிப்புகள் எடுக்கலாம், அங்கு 0 என்பது Coarsest மற்றும் வேகமான மதிப்பீடு, 3 அழுத்தத்தின் மிகவும் துல்லியமான மதிப்பீடு ஆகும்.

    Arduino Uno இல் நிரலை ஏற்றுகிறோம், வளிமண்டல அழுத்தத்தின் அளவீடுகளின் ஓட்டத்தை நாங்கள் ஏற்றுக்கொள்கிறோம். உங்கள் தலையில் சென்சார் உயர்த்த முயற்சி, மற்றும் தரையில் நிலை விட்டு. சாட்சியம் ஒரு சிறிய மாறும். கடல் மட்டத்திலிருந்து உயரத்தில் இந்த புரிந்துகொள்ள முடியாத எண்களை எவ்வாறு மாற்றுவது என்பதை அது கண்டுபிடிக்க மட்டுமே உள்ளது.

    கடல் மட்டத்திலிருந்து உயரத்தில் அழுத்தத்தை மாற்றுதல்

    BMP180 சென்சார் ஹெக்டோபாஸ்கல்களில் அழுத்தம் கொடுக்கிறது (GPA). வளிமண்டல அழுத்தம் அளவிட இந்த அலகுகளில் இது உள்ளது. 1 GPA \u003d 100 பாஸ்கல்ஸ். கடல் மட்டத்தில், சராசரியாக அழுத்தம் 1013 GPA ஆகும், மேலும் கடல் மட்டத்திலிருந்து ஒவ்வொரு கூடுதல் மீட்டர் இந்த அழுத்தத்தை 0.11 GPA (தோராயமாக) குறைக்கும் என்று அறியப்படுகிறது.

    எனவே, நாம் செயல்பாடு கழித்து என்றால் getpressure. எண் 1013, மற்றும் மீதமுள்ள வித்தியாசத்தை 0.11 மணிக்கு பிரித்து, மீதமுள்ள கடல் மட்டத்திலிருந்து உயரத்தின் மதிப்பைப் பெறுவோம். எங்கள் திட்டம் மாறும்:

    Void Loop () (இரட்டை பி, alt; p \u003d getpressure (); alt \u003d (p - 1013) /0.11; serial.println (alt, 2); தாமதம் (100);)

    உண்மையில், அழுத்தம் கடல் மட்டத்திற்கு மேலே உயரத்தை பொறுத்தது, நமது சூத்திரம் நாம் வழக்கமாக வாழ்கின்ற உயரங்களுக்கு மட்டுமே ஏற்றது. அதிர்ஷ்டவசமாக, மனிதகுலம் உயரத்திலிருந்து அழுத்தத்தின் ஒரு நன்கு அறியப்பட்ட துல்லியமான சார்பு ஆகும், இது இன்னும் துல்லியமான முடிவுகளைப் பெறுவதற்கு நாங்கள் விண்ணப்பிக்க முடியும்.

    இங்கே பி இந்த கட்டத்தில் அளவிடப்படுகிறது அழுத்தம், P0 உயரம் பின்பற்ற வேண்டிய அழுத்தம் ஆகும்.

    SFE_BMP180 நூலகம் ஏற்கனவே ஏற்கனவே குறிப்பிடப்பட்ட ஒரு செயல்பாட்டை ஏற்கனவே கொண்டுள்ளது. துல்லியமான உயரத்தை பெறுவதற்கான சூத்திரம். நாங்கள் அதை எங்கள் திட்டத்தில் பயன்படுத்துகிறோம்.

    #சேர்க்கிறது. #சேர்க்கிறது. Sfe_bmp180 அழுத்தம்; இரட்டை p0 \u003d 0; Void Setup () (Serial.begin (9600); pression.begin (); p0 \u003d அழுத்தம் ();) வெற்றிடத்தை வளைய () (இரட்டை பி, alt; p \u003d getpressure (); alt \u003d pressment.ality (); , P0) serial.println (alt, 2); தாமதம் (100);) இரட்டை Getpressure () (...)

    உரை வாசிப்புகளை சேமிக்க GetPressure செயல்பாட்டை முழுமையாக நகலெடுக்கவில்லை.

    திட்டம் மற்றொரு மாறி P0 தோன்றினார் P0 நாம் திட்டத்தின் தொடக்கத்தில் அளவிடப்படும் அழுத்தம் ஆகும். ஒரு விமானத்தின் விஷயத்தில், P0 எடுத்துக் கொள்ளும் பகுதியின் மீது அழுத்தம் இருக்கும், அதில் நாம் உயரத்தின் தொகுப்பை ஆரம்பிக்கிறோம்.

    காட்சிப்படுத்தல்

    இப்போது திட்டத்தில் அழுத்தம் சோதனைகள் காட்ட முயற்சி செய்யலாம் Sfmonitor.சென்சார் 2 மீட்டர் உயரத்திற்கு நகரும் போது அழுத்தம் மாறும் என்பதை நாம் பார்க்கலாம்.

    நிலையான கான்ஸ்டல் பைட் packet_size \u003d 1; நிலையான கான்ஸ்ட் பைட் மதிப்பு_எஸ் \u003d 2; நிலையான கான்ஃபர் பூலியன் தனித்தனியாக_விலூஸ் \u003d உண்மை; #சேர்க்கிறது. #சேர்க்கிறது. #சேர்க்கிறது. Sfe_bmp180 அழுத்தம்; Serialflow Rd (& சீரியல்); இரட்டை p0 \u003d 0; வெற்றிடத்தை அமைப்பு () (rd.setpacketformat (value_size, packet_size, packet_values); rd.begin (9600); அழுத்தம். Rd.setpacketvalue (100 + int ((ப - P0) * 100)); rd.sendpacket (); தாமதம் (100);) இரட்டை getpressure () (...)

    நிரலின் விளைவாக, பாஸ்கல்களில் ஒரு அழுத்தம் கால அட்டவணையைப் பெறுவோம்:


    முடிவுரை

    நாம் பாடம் இருந்து புரிந்து கொள்ளும்போது, \u200b\u200bகடல் மட்டத்திலிருந்து உயரத்தின் நிர்ணயம் அத்தகைய அற்பமான பணி அல்ல. இது அழுத்தம் உயரத்தை சார்ந்தது என்று போதுமானதாக இல்லை, எனவே மற்றொரு படம் பல்வேறு வெளிப்புற காரணிகளை கெடுக்கும். உதாரணமாக, வீட்டிலேயே உள்ள அழுத்தம் தொடர்ந்து காலப்போக்கில் மாறும். ஒரு சில நிமிடங்களில் கூட, எங்கள் சாதனம் அளவிடப்படும் உயரம் 0.5 - 1 மீட்டர் வரம்பில் மாறுபடும். வெப்பநிலை கூட அளவீடுகளின் தரத்தை வலுவாக பாதிக்கிறது, எனவே அழுத்தம் கணக்கிடும் போது அதை கருத்தில் கொள்ள வேண்டும்.

    ஐந்து விமானம் MS5611 போன்ற உயர் துல்லியம் உணரிகள் பயன்படுத்த பரிந்துரைக்கப்படுகிறது. இந்த காற்றழுத்தமானி ஒரு அளவீட்டு துல்லியம் 0.012 GPA ஐ அடையலாம், இது BMP180 ஐ விட 5 மடங்கு சிறந்தது. மேலும், ஜி.பி.எஸ் ஒருங்கிணைப்புகள் விமானத்தின் பாத்திரத்தை உயரத்தை தெளிவுபடுத்த பயன்படுத்தப்படுகின்றன.

    வளிமண்டலத்தின் கவனிப்பில் வெற்றிகள்! 🙂

    ஏப்ரல் 2, 2015.

    BMP180 வளிமண்டல அழுத்தம் சென்சார் ஆகியோர் BOSCH இலிருந்து வளர்ப்பு மற்றும் அதன் முன்னோடி விட மின்சாரம் மற்றும் மிகவும் துல்லியமானதாக உள்ளது.

    சென்சார் BMP180.

    BMP180 சென்சார் முக்கிய பண்புகள்:

    • அழுத்தம் அளவீட்டு வரம்பு: 300 - 1100HPA.
    • மின்னழுத்தம் வழங்கல்: 3.3 மற்றும் 5V இலிருந்து
    • குறைந்த சக்தி நுகர்வு: 3 μA (அல்ட்ரா-குறைந்த சக்தி முறை)
    • துல்லியம்: குறைக்கப்பட்ட பவர் பயன்முறை, தீர்மானம் 0.06hpa (0.5 மீ)
    • 0.02hpa ஒரு தீர்மானம் கொண்ட உயர் நேரியல் முறை
    • இணைப்பு: I2C கம்யூனிகேஷன் புரோட்டோகால்
    • வரம்பில் வெப்பநிலையை அளவிடுவதற்கான திறன் -40 ... +85 ° C
    • பதில் நேரம்: 5ms.
    • காத்திருப்பு தற்போதைய: 0.1 MKA.

    • VCC - 5V சக்தியை இணைக்கும்
    • GND - மைனஸ் இணைப்பதற்காக (GND)
    • SCL மற்றும் SDA - I2C பஸ் இணைக்க
    • 3.3 - 3.3V பவர் இணைக்கும்

    BMP180 சென்சார் வாங்க:

    BMP180 சென்சார் நூலகங்கள்:

    BMP180 சென்சார் வேலை செய்ய, நூலகங்கள் BMP085 சென்சார் நோக்கம் என்று பயன்படுத்தப்படுகின்றன.

    Adafruit இலிருந்து வளிமண்டல அழுத்தம் சென்சார் BMP085 உடன் பணிபுரியும் நூலகம்

    அழுத்தம் சென்சார் BMP085 உடன் பணிபுரியும் நூலகம்

    நீங்கள் தீர்க்க சென்சார் வேலை பயன்படுத்த நூலகம் என்ன வகையான. BMP085 நூலகம் கண்ணோட்டம் நான் கட்டுரையில் முன்னதாக இருக்கிறேன்

    உதாரணமாக, நான் Adafruit நூலகத்தை பயன்படுத்துவேன். தொடங்குவதற்கு, நூலகம் இருந்து சோதனை ஸ்கெட்ச் தொடங்க மற்றும் துறை மானிட்டர் திறக்க ...

    நாம் பார்க்கும் போது:

    • வெப்பநிலை \u003d 27.40 * சி - டிகிரி செல்சியஸ் வெப்பநிலை
    • அழுத்தம் \u003d 97726 PA - வளிமண்டல பாஸ்கல் அழுத்தம்
    • உயரத்தில் \u003d 303.19 மீட்டர் - மீட்டர் உயரம்
    • Sealelvel (கணக்கிடப்படுகிறது) \u003d 97735 PA - பாஸ்கல்களில் வளிமண்டல அழுத்தம் (கடல் மட்டத்தில் (கணக்கிடப்பட்ட))
    • உண்மையான உயரத்தில் \u003d 317.47 மீட்டர் - உண்மையான உயரம் (கணக்கிடப்படுகிறது)

    BMP180 சென்சார் அமைவு மற்றும் அளவுத்திருத்தம்

    கணக்கிடப்பட்ட தரவு துல்லியமாக இல்லை என்ற உண்மையை உங்கள் கவனத்தை ஈர்க்க விரும்புகிறேன், அவை ஓவியத்தில் குறிப்பிடப்படுகின்றன.

    தகவல்

    உயரத்தின் துல்லியமான அளவைப் பெறலாம். நமது ஒருங்கிணைப்பிற்கான கடல் மட்டத்திற்கு மேலாக தற்போதைய அழுத்தத்தை நமக்குத் தெரிந்தால், வானிலை நிலைமைகளையும் போலவும் மாறுபடும். இது 1015 மில்லி என்றால், மதிப்பு 101,500 பி.ஏ. ஆகும்.

    இப்போது நாம் கூகிள் கார்டுகளைப் பயன்படுத்தி கடல் மட்டத்திலிருந்து நமது உண்மையான உயரத்தை கற்றுக்கொள்கிறோம், இதற்காக, இணைப்பை இயக்கலாம். Google இலிருந்து ஒரு வரைபடத்துடன் சாளரத்தில், வரைபடத்தில் லேபிளை அமைக்க, இடது சுட்டி பொத்தானை கிளிக் செய்து, இடது சுட்டி பொத்தானை கிளிக் செய்யவும்.

    உயரம் மதிப்புகள் கொண்ட என் இருப்பிடத்தின் ஒருங்கிணைப்பு

    நாங்கள் 203 மீ உயரத்தை மேலே உயரத்தைக் காண்கிறோம், ஆனால் நான் 3 வது தரையில் இருக்கிறேன், நீங்கள் மற்றொரு 7 மீ சேர்க்க வேண்டும், மேலும் 210 மீட்டர் உயரத்தை (தோராயமாக) உயரத்தை பெறுவோம். இப்போது நாம் ஸ்கெட்ச் மற்றும் மதிப்பீட்டின் மதிப்பிற்கு Mm.t.st (133.3 மணிக்கு மதிப்பு Delim) இல் மொழிபெயர்க்கவும், "MM" க்கு "PA" ஐ மாற்றவும்.

    குறியீடு.

    Arduino.

    Serial.print ("அழுத்தம் \u003d"); Serial.print (bmp.readpressure () / 133.3); Serial.println ("MM");

    தொடர். அச்சு ("அழுத்தம் \u003d");

    தொடர். அச்சிடு (BMP. Readpressure () / 133.3);

    தொடர். Println ("mm");

    மற்றும் இங்கே

    குறியீடு.

    Arduino.

    Serial.print ("sealelvel (கணக்கிடப்பட்ட) \u003d"); SERIAL.PRINT (BMP.READSEALEVERPPREPRARES () / 133.3); Serial.println ("MM");

    தொடர். அச்சு ( "சீலெவில் உள்ள அழுத்தம் (கணக்கிடப்பட்ட) \u003d") ;

    தொடர். அச்சு (BMP. ReadseaLevelpride () / 133.3);

    தொடர். Println ("mm");

    நாங்கள் மீண்டும் எங்கள் ஓவியத்தை கட்டணத்தில் ஏற்றி, துறைமுக மானிட்டரில் எங்களை பார்க்கிறோம்