ዝርዝር ሁኔታ:

ግፊትን በማይክሮዎ ይለኩ - ቢት 5 ደረጃዎች (ከስዕሎች ጋር)
ግፊትን በማይክሮዎ ይለኩ - ቢት 5 ደረጃዎች (ከስዕሎች ጋር)

ቪዲዮ: ግፊትን በማይክሮዎ ይለኩ - ቢት 5 ደረጃዎች (ከስዕሎች ጋር)

ቪዲዮ: ግፊትን በማይክሮዎ ይለኩ - ቢት 5 ደረጃዎች (ከስዕሎች ጋር)
ቪዲዮ: ደም ግፊትን ለመቀነስ 5 ተፈጥሯዊ መንገዶች Lower Blood pressure Naturally. 2024, ህዳር
Anonim
ግፊትን በማይክሮዎ ይለኩ - ቢት
ግፊትን በማይክሮዎ ይለኩ - ቢት
ግፊትን በማይክሮዎ ይለኩ - ቢት
ግፊትን በማይክሮዎ ይለኩ - ቢት

የሚከተለው መማሪያ የግፊት መለኪያዎችን ለማከናወን እና የቦይልን ሕግ ለማሳየት ቀላል እና ርካሽ መሣሪያን ይገልጻል ፣ ማይክሮ -ቢትን ከ BMP280 ግፊት/የሙቀት ዳሳሽ ጋር በማጣመር።

ይህ መርፌ/ግፊት ዳሳሽ ጥምረት በአንዱ ቀደምት አስተማሪዎቼ ውስጥ በአንዱ ውስጥ ተገልጾ የነበረ ቢሆንም ፣ ከጥቃቅን ጋር ያለው ጥምረት ቢት አዲስ ዕድሎችን እያቀረበ ነው ፣ ለምሳሌ። ለክፍል ክፍል ፕሮጄክቶች።

በተጨማሪም ፣ ማይክሮ -ቢት ከ I2C ከሚነዳ ዳሳሽ ጋር በጥምረት ጥቅም ላይ የዋሉባቸው የመተግበሪያዎች መግለጫዎች ብዛት እስካሁን የተገደበ ነው። ይህ አስተማሪ ለሌሎች ፕሮጀክቶች መነሻ ነጥብ ሊሆን ይችላል ብዬ ተስፋ አደርጋለሁ።

መሣሪያው መጠነኛ የአየር ግፊትን መለኪያዎች እንዲያከናውን እና ውጤቱን በማይክሮ ቢት የ LED ድርድር ወይም በተገናኘ ኮምፒተር ላይ ለማሳየት ፣ በኋላ ላይ የአርዲኖ አይዲኢ ተከታታይ ሞኒተር ወይም ተከታታይ ሴራተር ተግባሮችን ይጠቀማል። እርስዎ መርፌን መርፌውን እራስዎ ስለሚገፉ ወይም ስለሚጎትቱ ፣ እናም አስፈላጊውን ኃይል ስለሚሰማዎት እርስዎም እንዲሁ ሀይፕቲክ ግብረመልስ አለዎት።

በነባሪ ፣ ማሳያው በ LED ማትሪክስ ላይ በሚታየው የደረጃ አመላካች ግፊቱን ለመገመት ያስችልዎታል። የ Arduino IDE ተከታታይ ሴራ ተመሳሳይ ለማድረግ ይፈቅዳል ፣ ግን በጣም በተሻለ ጥራት (ቪዲዮውን ይመልከቱ)። የበለጠ የተራቀቁ መፍትሄዎች እንዲሁ ይገኛሉ ፣ ለምሳሌ። በሂደት ቋንቋ። እንዲሁም የ A ወይም B ቁልፎችን በቅደም ተከተል ከጫኑ በኋላ በ LED ማትሪክስ ላይ ትክክለኛውን የግፊት እና የሙቀት መጠን እሴቶችን ማሳየት ይችላሉ ፣ ግን የአርዲኖ አይዲኢ ተከታታይ ተቆጣጣሪ በጣም ፈጣን ነው ፣ ይህም በእውነተኛ ጊዜ እሴቶችን ለማሳየት ያስችላል።

ጠቅላላ ወጪዎች እና መሣሪያውን ለመገንባት የሚያስፈልጉት የቴክኒክ ችሎታዎች በጣም ዝቅተኛ ናቸው ፣ ስለሆነም በአስተማሪ ቁጥጥር ስር ጥሩ የመማሪያ ክፍል ፕሮጀክት ሊሆን ይችላል። በተጨማሪም መሣሪያው ለ STEM ፕሮጀክቶች በፊዚክስ ላይ ያተኮረ ወይም ኃይል ወይም ክብደት ወደ ዲጂታል እሴት በሚለወጥባቸው ሌሎች ፕሮጄክቶች ውስጥ ጥቅም ላይ ሊውል ይችላል።

መርሆው በጣም ቀላል ማይክሮን ለመገንባት ጥቅም ላይ ውሏል-ቢት ዳይቭ-ኦ-ሜትር ፣ ምን ያህል ጥልቀትዎን እንደሚለኩ ለመለካት መሣሪያ።

ተጨማሪ 27-ሜይ -2018

ፒሞሮኒ ለ BMP280 ዳሳሽ የ MakeCode ቤተመፃሕፍት እንደሠራ ፣ ይህ እዚህ ለተገለጸው መሣሪያ ጥቅም ላይ የሚውል ስክሪፕት ለማዳበር እድሉን ሰጠኝ። ስክሪፕቱ እና ተጓዳኝ HEX- ፋይል በዚህ አስተማሪው የመጨረሻ ደረጃ ላይ ሊገኝ ይችላል። እሱን ለመጠቀም የ HEX ፋይልን ወደ ማይክሮ -ቢትዎ ይጫኑ። ልዩ ሶፍትዌር አያስፈልግም ፣ እና ስክሪፕቱን ለማርትዕ የመስመር ላይ MakeCode አርታኢን መጠቀም ይችላሉ።

ደረጃ 1 - ያገለገሉ ቁሳቁሶች

ያገለገሉ ቁሳቁሶች
ያገለገሉ ቁሳቁሶች
ያገለገሉ ቁሳቁሶች
ያገለገሉ ቁሳቁሶች
ያገለገሉ ቁሳቁሶች
ያገለገሉ ቁሳቁሶች
ያገለገሉ ቁሳቁሶች
ያገለገሉ ቁሳቁሶች
  • አንድ ማይክሮ ቢት ፣ የእኔን ከፒሞሮኒ አግኝቷል - 13.50 ጊባ
  • የ Kitronic Edge አገናኝ ለማይክሮ - ቢት - በፒሞሮኒ በኩል - 5 ጊባ ፣ ማስታወሻ: ፒሞሪኒ አሁን በ I2C ወደቦች ላይ ከፒን ጋር ቢን የሚባለውን ለዳቦ ሰሌዳ ተስማሚ የጠርዝ አያያዥ ይሰጣል።
  • 2 x 2 ፒን የራስጌ ቁርጥራጮች
  • ባትሪ ወይም ሊፖ ለማይክሮ -ቢት (አስፈላጊ አይደለም ፣ ግን አጋዥ) ፣ የባትሪ ገመድ ከመቀየሪያ (ዲቶ) ጋር - ፒሞሮኒ
  • የመዳሰሻ ገመዶችን ወደ ዳሳሾች አገናኝ አገናኝ
  • ረዥሙ (!) የዝልታ ገመዶች ለአነፍናፊው ፣ ቢያንስ እስከ መርፌው ፣ f/f ወይም f/m ድረስ
  • የ BMP280 ግፊት እና የሙቀት ዳሳሽ - ባንግጎድ - 5 የአሜሪካ ዶላር ለሶስት አሃዶች የዚህ ዳሳሽ የመለኪያ ክልል በ 550 እና በ 1537 ኤችፒ መካከል ነው።
  • 150 ሚሊ የፕላስቲክ ካቴተር መርፌ ከጎማ መያዣ ጋር - አማዞን ወይም ሃርድዌር እና የአትክልት ሱቆች - ከ 2 - 3 የአሜሪካ ዶላር
  • ትኩስ ሙጫ/ሙቅ ሙጫ ሽጉጥ
  • ብየዳ ብረት
  • አርዱዲኖ አይዲኢ የተጫነ ኮምፒተር

ደረጃ 2 - የመሰብሰቢያ መመሪያዎች

የስብሰባ መመሪያዎች
የስብሰባ መመሪያዎች
የስብሰባ መመሪያዎች
የስብሰባ መመሪያዎች
የስብሰባ መመሪያዎች
የስብሰባ መመሪያዎች

የመሸጫ ራስጌዎች ወደ BMP280 ዳሳሽ መፍረስ።

ሁለቱን 2 የፒን ራስጌዎች ወደ ፒን 19 እና የ Edge አያያዥ 20 አያያ pinችን (ምስሉን ይመልከቱ)።

ማይክሮ -ቢትን ከ Edge አያያዥ እና ከኮምፒተርዎ ጋር ያገናኙ።

በአዳፍ ፍሬው ማይክሮ -ቢት መመሪያዎች ውስጥ እንደተገለፀው ሶፍትዌር እና ማይክሮ -ቢት ያዘጋጁ። በደንብ አንብባቸው።

አስፈላጊዎቹን ቤተ -ፍርግሞች ወደ አርዱዲኖ አይዲኢ ይጫኑ።

በኋላ ደረጃ ላይ የተያያዘውን የ BMP280 ስክሪፕት ይክፈቱ።

ዳሳሹን ከ Edge አያያዥ ጋር ያገናኙ። GND ወደ 0V ፣ VCC እስከ 3V ፣ SCL ን ለመሰካት 19 ፣ ኤስዲኤን ለፒን 20።

ስክሪፕቱን ወደ ማይክሮ -ቢት ይስቀሉ።

አነፍናፊው ምክንያታዊ መረጃ እንደሚሰጥ ያረጋግጡ ፣ የግፊት እሴቶች በ 1020 hPa አካባቢ መሆን አለባቸው ፣ በተከታታይ ማሳያ ላይ ይታያሉ። እንደዚያ ከሆነ ኬብሎችን እና ግንኙነቶችን በመጀመሪያ ይፈትሹ ፣ ከዚያ የሶፍትዌር ጭነት እና ያስተካክሉ።

ማይክሮን ያጥፉ ፣ ቢት ፣ ዳሳሹን ያስወግዱ።

ረዥሙን ዝላይ ገመዶችን በሲሪንጅ መውጫ በኩል ያሂዱ። ምናልባት ክፍቱን ማስፋት ሊኖርብዎት ይችላል። ገመዶቹ እየተበላሹ መሆኑን ለመተው ይጠንቀቁ።

ዳሳሹን ወደ ዝላይ ገመዶች ያገናኙ። ግንኙነቶች ትክክለኛ እና ጥሩ መሆናቸውን ያረጋግጡ። ከማይክሮ -ቢት ጋር ይገናኙ።

ዳሳሽ በትክክል እየሰራ መሆኑን ያረጋግጡ። ገመዶችን በጥንቃቄ ይጎትቱ ፣ ዳሳሹን ወደ ሲሪንጅ አናት ያንቀሳቅሱ።

ተጣጣፊውን ያስገቡ እና ከተፈለገው የማረፊያ ቦታ (100 ሚሊ) ትንሽ ከፍ ያድርጉት።

በሲሪንጅ መውጫው መጨረሻ ላይ ሙቅ ሙጫ ይጨምሩ እና ቧንቧን ትንሽ ወደ ኋላ ያንቀሳቅሱት። መርፌው ዝግ አየር ጠባብ መሆኑን ያረጋግጡ ፣ አለበለዚያ የበለጠ ትኩስ ሙጫ ይጨምሩ። ትኩስ ሙጫውን ያቀዘቅዙ።

ዳሳሹ እየሰራ መሆኑን እንደገና ያረጋግጡ። ጠላፊውን ከወሰዱ ፣ በተከታታይ ማሳያ ውስጥ ያሉት ቁጥሮች እና የማይክሮ ቢት ማሳያ መለወጥ አለበት።

አስፈላጊ ከሆነ በሲጋራው ውስጥ ያለውን መጠን በማጠፊያው አቅራቢያ በመጨፍጨፍ እና መጥረጊያውን በማንቀሳቀስ ማስተካከል ይችላሉ።

ደረጃ 3 - ትንሽ ንድፈ ሀሳብ እና አንዳንድ ተግባራዊ ልኬቶች

ትንሽ ንድፈ ሀሳብ እና አንዳንድ ተግባራዊ ልኬቶች
ትንሽ ንድፈ ሀሳብ እና አንዳንድ ተግባራዊ ልኬቶች
ትንሽ ንድፈ ሀሳብ እና አንዳንድ ተግባራዊ ልኬቶች
ትንሽ ንድፈ ሀሳብ እና አንዳንድ ተግባራዊ ልኬቶች

እዚህ በተገለጸው መሣሪያ ፣ በቀላል የፊዚክስ ሙከራዎች ውስጥ የመጭመቂያ እና የግፊትን ትስስር ማሳየት ይችላሉ። መርፌው በ “ml”-ልኬት ላይ ሲመጣ ፣ መጠናዊ ሙከራዎች እንኳን ለማከናወን ቀላል ናቸው።

ከእሱ በስተጀርባ ያለው ጽንሰ -ሀሳብ - በቦይል ሕግ መሠረት [ጥራዝ * ግፊት] በተወሰነ የሙቀት መጠን ለጋዝ የማያቋርጥ እሴት ነው።

ይህ ማለት የተወሰነ መጠን ያለው ጋዝ ኤን-እጥፉን ቢጨምሩ ፣ ማለትም የመጨረሻው መጠን ከመጀመሪያው 1/N እጥፍ ከሆነ ፣ ግፊቱ N-fold ይጨምራል ፣ እንደ: P0*V0 = P1*V1 = cons t. ለተጨማሪ ዝርዝሮች እባክዎን በጋዝ ህጎች ላይ በዊኪፔዲያ ጽሑፍ ላይ ይመልከቱ። በባህር ደረጃ ፣ የባሮሜትሪክ ግፊት ብዙውን ጊዜ በ 1010 hPa (ሄክቶ ፓስካል) ክልል ውስጥ ነው።

ስለዚህ በማረፊያ ነጥቦች ለምሳሌ. V0 = 100 ml እና P0 = 1000 hPa ፣ አየሩ ወደ 66 ሚሊ ሊት (ማለትም V1 = 2/3 * V0) ወደ 1500 hPa (P1 = 3/2 የ P0) ግፊት ያስከትላል። ቧንቧን ወደ 125 ሚሊ (5/4 እጥፍ መጠን) መጎተት ወደ 800 hPa (4/5 ግፊት) ግፊት ያስከትላል። ለእንደዚህ ዓይነቱ ቀላል መሣሪያ መለኪያዎች በሚያስደንቅ ሁኔታ ትክክለኛ ናቸው።

መሣሪያው በአንጻራዊ ሁኔታ ሲሪንጅ ውስጥ በአንፃራዊ ሁኔታ ሲታይ አነስተኛ መጠን ያለው አየር ለመጭመቅ ወይም ለማስፋት ምን ያህል ኃይል እንደሚያስፈልግ ቀጥተኛ የሃፕቲክ ግንዛቤ እንዲኖርዎት ያስችልዎታል።

ግን እኛ ደግሞ አንዳንድ ስሌቶችን ማከናወን እና በሙከራ ማረጋገጥ እንችላለን። በ 1000 hPa መሠረታዊ ባሮሜትሪክ ግፊት አየርን ወደ 1500 ኤኤፒኤ እንጨምራለን እንበል። ስለዚህ የግፊት ልዩነት 500 hPa ፣ ወይም 50, 000 ፓ ለኔ መርፌ ፣ የፒስተን ዲያሜትር (መ) ወደ 4 ሴ.ሜ ወይም 0.04 ሜትር ነው።

አሁን ፒስተን በዚያ ቦታ ለመያዝ የሚያስፈልገውን ኃይል ማስላት ይችላሉ። የተሰጠው P = F/A (ግፊት በአከባቢ የተከፋፈለ ኃይል ነው) ፣ ወይም ተለውጧል F = P*A። የ “SI” ኃይል ለኃይል “ኒውተን” ኤን ፣ ለርዝመት “ሜትር” ሜትር ፣ እና 1 ፓ በአንድ ካሬ ሜትር 1N ነው። ለክብ ፒስተን ፣ ቦታው A = ((d/2)^2)*pi ን በመጠቀም ሊሰላ ይችላል ፣ ይህም ለሲንጅዬ 0.00125 ካሬ ሜትር ይሰጣል። ስለዚህ

50, 000 ፓ * 0.00125 ሜ^2 = 63 N.

በምድር ላይ 1 N ከ 100 ግራ ክብደት ጋር ይዛመዳል ፣ ስለሆነም 63 N የ 6.3 ኪ.ግ ክብደት ከመያዝ ጋር እኩል ናቸው።

ደረጃን በመጠቀም ይህ በቀላሉ ሊረጋገጥ ይችላል። ወደ 1500 hPa ግፊት እስኪደርስ ድረስ መርፌውን በመርከቡ ወደ መርፌው ይግፉት ፣ ከዚያ መጠኑን ያንብቡ። ወይም መጠነ-ገደቡ ከ6-7 ኪ.ግ እስኪታይ ድረስ ይግፉት ፣ ከዚያ የ “ሀ” ቁልፍን ይጫኑ እና በማይክሮው ላይ የሚታየውን እሴት ያንብቡ-ቢት ኤል ኤል ኤል ማትሪክስ። እንደ ተለወጠ ፣ ከላይ ባሉት ስሌቶች ላይ የተመሠረተ ግምት መጥፎ አልነበረም። በትንሹ ከ 1500 hPa በላይ የሆነ ግፊት በሰውነት ሚዛን ላይ ከሚታየው “ክብደት” ጋር ይዛመዳል (ምስሎችን ይመልከቱ)። እርስዎም ይህንን ፅንሰ -ሀሳብ ማዞር እና በግፊት መለኪያዎች ላይ በመመርኮዝ ቀለል ያለ ዲጂታል ልኬት ለመገንባት መሣሪያውን መጠቀም ይችላሉ።

እባክዎን ለአነፍናፊው የላይኛው ወሰን 1540 hPa ያህል ነው ፣ ስለሆነም ከዚህ በላይ ያለው ማንኛውም ግፊት ሊለካ አይችልም እና ዳሳሹን ሊጎዳ ይችላል።

ተንሳፋፊውን በአንድ ወይም በሌላ መንገድ ለማንቀሳቀስ የሚሞክሩ ኃይሎችን በቁጥር ለመለካት ስለሚፈቅድ ከትምህርት ዓላማዎች ጎን ፣ አንዱ ስርዓቱን ለአንዳንድ የእውነተኛ ዓለም መተግበሪያዎች ሊጠቀም ይችላል። ስለዚህ በጠባባዩ ላይ የተቀመጠውን ክብደት ወይም በመክተቻው ላይ በሚመታ ተጽዕኖ ኃይል መለካት ይችላሉ። ወይም የተወሰነ የመድረሻ እሴት ከተደረሰ በኋላ ብርሃንን ወይም ድምጽን የሚያነቃቃ ወይም ድምጽ የሚጫወት ማብሪያ / ማጥፊያ ይገንቡ። ወይም በቧንቧው ላይ በተተገበረው የኃይል ጥንካሬ ላይ በመመርኮዝ ድግግሞሹን የሚቀይር የሙዚቃ መሣሪያ ሊገነቡ ይችላሉ። ወይም እንደ የጨዋታ መቆጣጠሪያ ይጠቀሙበት። ምናብዎን ይጠቀሙ እና ይጫወቱ!

ደረጃ 4 የማይክሮ ፓይቶን ስክሪፕት

ከማይክሮ ቢት የእኔን BMP280 ስክሪፕት አግኝተዋል። እሱ ከባግዳጎድ ድር ጣቢያ ፣ ከአዳፍ ፍሬው ማይክሮቢት ቤተ -መጽሐፍት ጋር ተዳምሮ የ BMP/BME280 ስክሪፕት የመነጨ ነው። የመጀመሪያው የባንግጎድ ዳሳሽ እንዲጠቀሙ ይፈቅድልዎታል ፣ ሁለተኛው የ 5x5 LED ማሳያ አያያዝን ያቃልላል። ምስጋናዬ ለሁለቱም ገንቢዎች ይሄዳል።

በነባሪ ፣ ስክሪፕቱ በጥቂት መዘግየቶች ለውጦችን ለማየት በመፍቀድ በ 5 ደረጃዎች ውስጥ የግፊት ልኬቶችን ውጤቶች በማይክሮ -ቢት 5x5 ያሳያል። ትክክለኛዎቹ እሴቶች በአርዱዲኖ አይዲኢ ተከታታይ ማሳያ ላይ በትይዩ ሊታዩ ይችላሉ ፣ ወይም የበለጠ ዝርዝር ግራፍ የአርዱዲኖ አይዲኢ ሴራ ሴራ ሊታይ ይችላል።

የ A ቁልፍን ከተጫኑ የሚለካው የግፊት እሴቶች በማይክሮ -ቢት 5x5 LED ድርድር ላይ ይታያሉ። የ B ቁልፍን ከተጫኑ ፣ የሙቀት እሴቶቹ ይታያሉ። ይህ ትክክለኛውን ውሂብ ለማንበብ ቢፈቅድም የመለኪያ ዑደቶችን በከፍተኛ ሁኔታ ያቀዘቅዛል።

ተግባሮቹን ለማቀናጀት እና ስክሪፕቱን ለማሻሻል ብዙ የሚያምሩ መንገዶች እንዳሉ እርግጠኛ ነኝ። ማንኛውም እርዳታ እንኳን ደህና መጡ።

#xxx ን ያካትቱ

#አዳፍሩት_Microbit_Matrix ማይክሮቢት ያካትቱ; #ጥራት BME280_ADDRESS 0x76 ያልተፈረመ ረጅም int hum_raw ፣ temp_raw ፣ pres_raw; ረጅም int t_fine ተፈርሟል; uint16_t dig_T1; int16_t dig_T2; int16_t dig_T3; uint16_t dig_P1; int16_t dig_P2; int16_t dig_P3; int16_t dig_P4; int16_t dig_P5; int16_t dig_P6; int16_t dig_P7; int16_t dig_P8; int16_t dig_P9; int8_t dig_H1; int16_t dig_H2; int8_t dig_H3; int16_t dig_H4; int16_t dig_H5; int8_t dig_H6; // መያዣዎች ለካ እሴቶች int value0; int እሴት 1; int እሴት 2; int እሴት 3; int value4; // ------------------------------------------------ -------------------------------------------------- ------------------ ባዶነት ማዋቀር () {uint8_t osrs_t = 1; // የአየር ሙቀት መጨመር x 1 uint8_t osrs_p = 1; // ግፊት ከመጠን በላይ ማህተም x 1 uint8_t osrs_h = 1; // እርጥበት ከመጠን በላይ ማተም x 1 uint8_t ሁነታ = 3; // መደበኛ ሁነታ uint8_t t_sb = 5; // Tstandby 1000ms uint8_t ማጣሪያ = 0; // አጣራ uint8_t spi3w_en = 0; // 3-ሽቦ SPI uint8_t ctrl_meas_reg = (osrs_t << 5) | (osrs_p << 2) | ሞድ; uint8_t config_reg = (t_sb << 5) | (ማጣሪያ << 2) | spi3w_en; uint8_t ctrl_hum_reg = osrs_h; pinMode (PIN_BUTTON_A ፣ INPUT); pinMode (PIN_BUTTON_B ፣ INPUT); Serial.begin (9600); // Serial.println ("ሙቀት [deg C]"); // Serial.print ("\ t"); Serial.print ("ግፊት [hPa]"); // ራስጌ Wire.begin (); ጻፍ (0xF2 ፣ ctrl_hum_reg); ጻፍ (0xF4 ፣ ctrl_meas_reg); ጻፍ (0xF5 ፣ config_reg); readTrim (); // microbit.begin (); // microbit.print ("x"); መዘግየት (1000); } // ---------------------------------------------- -------------------------------------------------- -------- ባዶ ባዶ () {double temp_act = 0.0 ፣ press_act = 0.0 ፣ hum_act = 0.0; የተፈረመ ረጅም int temp_cal; ያልተፈረመ ረጅም int press_cal ፣ hum_cal; int N; // የ LED ማትሪክስ ማሳያ ደፍ እሴቶችን ያዘጋጁ ፣ በ hPa ድርብ max_0 = 1100 ውስጥ። ድርብ max_1 = 1230; ድርብ max_2 = 1360; ድርብ max_3 = 1490; የንባብ ውሂብ (); temp_cal = calibration_T (temp_raw); press_cal = calibration_P (pres_raw); hum_cal = መለካት_ኤች (hum_raw); temp_act = (ድርብ) temp_cal / 100.0; press_act = (ድርብ) press_cal / 100.0; hum_act = (ድርብ) hum_cal / 1024.0; microbit.clear (); // የ LED ማትሪክስ ዳግም አስጀምር /* Serial.print ("PRESS:"); Serial.println (press_act); Serial.print ("hPa"); Serial.print ("TEMP:"); Serial.print ("\ t"); Serial.println (temp_act); */ ከሆነ (! digitalRead (PIN_BUTTON_B)) {// በቁጥሮች ውስጥ እሴቶችን ማሳየት ክበቦችን ለመለካት መዘግየቶች microbit.print (“T:”) ፤ microbit.print (temp_act ፣ 1); microbit.print ("'C')); // Serial.println (""); } ሌላ ከሆነ (! digitalRead (PIN_BUTTON_A)) {microbit.print ("P:"); microbit.print (press_act, 0); microbit.print ("hPa"); } ሌላ {// በተወሰነ ደረጃ የግፊት እሴቶችን እንደ ፒክሴሎች ወይም መስመሮች ማሳየት / 5 ደረጃዎች 1490 hPa // ገደቦች በ max_n እሴቶች ከተገለጹ (press_act> max_3) {(N = 0); // የላይኛው ረድፍ} ሌላ ከሆነ (press_act> max_2) {(N = 1); } ሌላ ከሆነ (press_act> max_1) {(N = 2); } ሌላ ከሆነ (press_act> max_0) {(N = 3); } ሌላ {(N = 4); // የመሠረት ረድፍ} // Serial.println (N); // ለልማት ዓላማዎች // microbit.print (N); // እንደ መስመር // microbit.drawLine (N ፣ 0 ፣ 0 ፣ 4 ፣ LED_ON); // እሴቶችን ወደ ቀጣዩ መስመር እሴት ይለውጡ 4 = value3; እሴት 3 = እሴት 2; እሴት 2 = እሴት 1; እሴት 1 = እሴት 0; እሴት 0 = N; // ምስል ይሳሉ ፣ አምድ በአምድ microbit.drawPixel (0 ፣ value0 ፣ LED_ON); // እንደ Pixel: አምድ ፣ ረድፍ። 0 ፣ 0 ግራ የላይኛው ጥግ microbit.drawPixel (1 ፣ value1 ፣ LED_ON); microbit.drawPixel (2 ፣ እሴት 2 ፣ LED_ON); microbit.drawPixel (3, value3, LED_ON); microbit.drawPixel (4 ፣ value4 ፣ LED_ON); } // መረጃን ወደ ተከታታይ ተቆጣጣሪ እና ተከታታይ ሴራ ላክ // Serial.println (press_act) ፤ // ለቁጥር ማሳያ እሴት (ዎችን) ወደ ተከታታይ ወደብ ይላኩ ፣ እንደ አማራጭ

Serial.print (press_act); // ለሴራተኛ እሴት ወደ ተከታታይ ወደብ ይላኩ

// የአመልካች መስመሮችን ይሳሉ እና የሚታየውን ክልል ያስተካክሉ Serial.print ("\ t"); Serial.print (600); Serial.print ("\ t"); Serial.print (1100) ፣ Serial.print ("\ t"); Serial.println (1600); መዘግየት (200); // በሰከንድ ሦስት ጊዜ ይለኩ} // ---------------------------------------- -------------------------------------------------- -------------------------------------------------- - // ለ bmp/bme280 ዳሳሽ የሚከተለው ያስፈልጋል ፣ ባዶ ሆኖ እንደተነበበ ይቆዩTrim () {uint8_t ውሂብ [32] ፣ i = 0; // አስተካክል 2014/Wire.begin ማስተላለፊያ (BME280_ADDRESS); Wire.write (0x88); Wire.endTransmission (); Wire.requestFrom (BME280_ADDRESS ፣ 24); // 2014/ሳለ ያስተካክሉ (Wire.available ()) {data = Wire.read (); i ++; } Wire.begin ማስተላለፊያ (BME280_ADDRESS); // አክል 2014/Wire.write (0xA1); // አክል 2014/Wire.endTransmission (); // 2014/Wire.requestFrom (BME280_ADDRESS ፣ 1) ያክሉ; // 2014/ውሂብ አክል = Wire.read (); // 2014/i ++ ን ይጨምሩ; // አክል 2014/Wire.begin ማስተላለፊያ (BME280_ADDRESS); Wire.write (0xE1); Wire.endTransmission (); Wire.requestFrom (BME280_ADDRESS ፣ 7) ፤ // 2014/ሳለ ያስተካክሉ (Wire.available ()) {data = Wire.read (); i ++; } dig_T1 = (ውሂብ [1] << 8) | ውሂብ [0]; dig_P1 = (ውሂብ [7] << 8) | ውሂብ [6]; dig_P2 = (ውሂብ [9] << 8) | ውሂብ [8]; dig_P3 = (ውሂብ [11] << 8) | ውሂብ [10]; dig_P4 = (ውሂብ [13] << 8) | ውሂብ [12]; dig_P5 = (ውሂብ [15] << 8) | ውሂብ [14]; dig_P6 = (ውሂብ [17] << 8) | መረጃ [16]; dig_P7 = (ውሂብ [19] << 8) | መረጃ [18]; dig_T2 = (ውሂብ [3] << 8) | ውሂብ [2]; dig_T3 = (ውሂብ [5] << 8) | ውሂብ [4]; dig_P8 = (ውሂብ [21] << 8) | ውሂብ [20]; dig_P9 = (ውሂብ [23] << 8) | ውሂብ [22]; dig_H1 = ውሂብ [24]; dig_H2 = (ውሂብ [26] << 8) | ውሂብ [25]; dig_H3 = ውሂብ [27]; dig_H4 = (ውሂብ [28] << 4) | (0x0F እና ውሂብ [29]); dig_H5 = (ውሂብ [30] 4) & 0x0F); // ያስተካክሉ 2014/dig_H6 = ውሂብ [31]; // ያስተካክሉ 2014/} ባዶ መጻፍ Reg (uint8_t reg_address ፣ uint8_t ውሂብ) {Wire.beginTransmission (BME280_ADDRESS) ፤ Wire.write (reg_address); Wire.write (ውሂብ); Wire.endTransmission (); }

ባዶ ንባብ ውሂብ ()

{int i = 0; uint32_t ውሂብ [8]; Wire.begin ማስተላለፊያ (BME280_ADDRESS); Wire.write (0xF7); Wire.endTransmission (); Wire.requestFrom (BME280_ADDRESS ፣ 8); ሳለ (Wire.available ()) {data = Wire.read (); i ++; } pres_raw = (ውሂብ [0] << 12) | (ውሂብ [1] 4); temp_raw = (ውሂብ [3] << 12) | (ውሂብ [4] 4); hum_raw = (ውሂብ [6] << 8) | ውሂብ [7]; }

የተፈረመ ረጅም int calibration_T (የተፈረመ ረጅም int adc_T)

{የተፈረመ ረጅም int var1 ፣ var2 ፣ T; var1 = ((((adc_T >> 3)) - ((ረጅም ረጅም int) dig_T1 11; var2 = (((((adc_T >> 4) - ((ረጅም የተፈረመ) dig_T1)) * ((adc_T >> 4)) - ((ረጅም የተፈረመ int) dig_T1))) >> 12) * ((ረጅም ረጅም int) dig_T3)) >> 14 ፤ t_fine = var1 + var2; T = (t_fine * 5 + 128) >> 8; ይመለሱ T;} ያልተፈረመ ረጅም int calibration_P (የተፈረመ ረጅም int adc_P) {የተፈረመ ረጅም int var1 ፣ var2; ያልተፈረመ ረጅም int P; var1 = (((ረጅም ረጅም int) t_fine) >> 1) - (ረጅም ረጅም int) 64000; var2 = (((var1 >> 2) * (var1 >> 2)) >> 11) * ((የተፈረመ ረጅም int) dig_P6) ፤ var2 = var2 + ((var1 * ((የተፈረመ ረጅም int) dig_P5)) 2) + (((ረጅም ፈረመ int) dig_P4) 2) * (var1 >> 2)) >> 13)) >> 3) + ((((የተፈረመ ረጅም int) dig_P2) * var1) >> 1)) >> 18; var1 = ((((32768+var1))*((ረጅም int int የተፈረመ) dig_P1)) >> 15); ከሆነ (var1 == 0) {መመለስ 0; } P = (((ያልተፈረመ ረጅም int)) (((የተፈረመ ረጅም int) 1048576) -adc_P)-(var2 >> 12)))*3125; ከሆነ (P <0x80000000) {P = (P << 1) / ((ያልተፈረመ ረጅም int) var1); } ሌላ {P = (P / (ያልተፈረመ ረጅም int) var1) * 2; } var1 = (((የተፈረመ ረጅም int) dig_P9) * ((ረጅም የተፈረመ int) (((P >> 3) * (P >> 3)) >> 13))) >> 12; var2 = (((ረጅም int int የተፈረመ)) (P >> 2)) * ((ረጅም የተፈረመ int) dig_P8)) >> 13; P = (ያልተፈረመ ረጅም int) ((ረጅም የተፈረመ int) P + ((var1 + var2 + dig_P7) >> 4)); ተመለስ ፒ; } ያልተፈረመ ረጅም int calibration_H (የተፈረመ ረጅም int adc_H) {ረጅም int v_x1 ተፈርሟል ፤ v_x1 = (t_fine - ((ረጅም የተፈረመ int) 76800)); v_x1 = (((((adc_H << 14) -(((የተፈረመ ረጅም int) dig_H4) 15) * (((((((v_x1 * ((የተፈረመ ረጅም int)) dig_H6)) >> 10) * (((v_x1 * ((የተፈረመ ረጅም int) dig_H3)) >> 11) + ((ረጅም ረጅም የተፈረመበት) 32768))) >> 10) + ((ረጅም ረጅም የተፈረመበት) 2097152)) * ((ረጅም የተፈረመ int) dig_H2) + 8192) >> 14));) v_x1 = (v_x1 419430400? 419430400: v_x1)

ደረጃ 5 - MakeCode/JavaScript እስክሪፕቶች

MakeCode/JavaScript እስክሪፕቶች
MakeCode/JavaScript እስክሪፕቶች

ፒሞሮኒ በቅርቡ ኤቪቪሮውን አውጥቷል -ቢት ፣ ይህ ከ BMP280 ግፊት ዳሳሽ ፣ የብርሃን/የቀለም ዳሳሽ እና ከኤምኤምኤስ ማይክሮፎን ጋር ይመጣል።እንዲሁም የማይክሮ ፓይቶን እና የሜክኮድ/ጃቫስክሪፕት ቤተ -መጽሐፍትን ያቀርባሉ።

እኔ ለግፊት ዳሳሽ የ MakeCode ስክሪፕት ለመጻፍ በኋላ ላይ ተጠቀምኩ። ተጓዳኝ የሄክስ ፋይል በቀጥታ ወደ ማይክሮ -ቢትዎ ሊገለበጥ ይችላል። ኮዱ ከዚህ በታች ይታያል እና የመስመር ላይ MakeCode አርታዒን በመጠቀም ሊቀየር ይችላል።

ለማይክሮ-ቢት ዳይቭ-ኦ-ሜትር የስክሪፕት ልዩነት ነው። በነባሪነት የግፊት ልዩነትን እንደ አሞሌ ግራፍ ያሳያል። የመጫን ቁልፍ ሀ የማጣቀሻ ግፊትን ያዘጋጃል ፣ የመጫን ቁልፍ ቢ በ hPa ውስጥ ባለው በእውነተኛ እና በማጣቀሻ ግፊት መካከል ያለውን ልዩነት ያሳያል።

ከመሠረታዊ የባርኮድ ሥሪት በተጨማሪ ንባብን ለማቃለል የታሰበ “ኤክስ” ፣ የመስቀለኛ መንገድ ስሪት እና “ኤል” ስሪት ያገኛሉ።

ዓምድ = 0 ይሁን

let remain = 0 let Row = 0 let Meter = 0 let Delta = 0 let Ref = 0 let Is = 0 Is = 1012 basic.showLeds (` # # # # # # #… # #. #. # #…. basic.showLeds (` # #. #. #. #. #. # # # # # # # # # # # # # # # # # # # # # # # #. #) {basic.showString ("" + Delta + "hPa") basic.pause (200) basic.clearScreen ()} ሌላ {Is = envirobit.getPressure () ዴልታ = ነው - Ref Meter = Math.abs (ዴልታ) ከሆነ (ሜትር> = 400) {ረድፍ = 4} ሌላ ከሆነ (ሜትር> = 300) {ረድፍ = 3} ሌላ ከሆነ (ሜትር> = 200) {ረድፍ = 2} ሌላ ከሆነ (ሜትር> = 100) {ረድፍ = 1} ሌላ {ረድፍ = 0} ይቀራል = ሜትር - ረድፍ * 100 ከሆነ (ይቀራል> = 80) {ዓምድ = 4} ሌላ ከሆነ (ይቀራል> = 60) {ዓምድ = 3} ሌላ ከሆነ (ይቀራል> = 40) {አምድ = 2 } ሌላ ከሆነ (ይቀራል> = 20) {ዓምድ = 1} ሌላ {አምድ = 0} ለ (ColA = 0 ፣ ColA <= Column; ColA ++) {led.plot (ColA ፣ Row)} basic.pause (500)}})

የሚመከር: