ዝርዝር ሁኔታ:

ለፕሮግራሙ በማይታመን ሁኔታ ቀላል! 10 ደረጃዎች
ለፕሮግራሙ በማይታመን ሁኔታ ቀላል! 10 ደረጃዎች

ቪዲዮ: ለፕሮግራሙ በማይታመን ሁኔታ ቀላል! 10 ደረጃዎች

ቪዲዮ: ለፕሮግራሙ በማይታመን ሁኔታ ቀላል! 10 ደረጃዎች
ቪዲዮ: አስቸኳይ ጥሪ ለ40/60 በሦስት የመንግስት አካል ላይ ከስ ተመሰረተ /justice 40/60 2024, ሀምሌ
Anonim
Image
Image
ለፕሮግራሙ በማይታመን ሁኔታ ቀላል!
ለፕሮግራሙ በማይታመን ሁኔታ ቀላል!

ዛሬ ፣ ስለ STM32 ኮር ፣ ስለ L476RG ፣ ስለ አልትራ ዝቅተኛ ኃይል ፊት እናገራለሁ። በምስሉ ግራ በኩል ማየት ይችላሉ። ይህ መሣሪያ ለአርዲኖ ጋሻ ከአገናኞች የበለጠ ምንም ያልሆኑ ሁለት የሴት ፒን አሞሌዎች አሉት ፣ አንዱ በአንዱ በኩል። ይህ በጣም ጥሩ ነው ፣ አይደለም?

በእኔ አስተያየት STMicroelectronics ይህንን በልማት ኪት ውስጥ ያደረገው ባለሙያዎች ይህንን ቺፕ እንደሚጠቀሙ ስለሚያውቅ ነው። ይህ ኩባንያ ወደ አርዱዲኖ የበለጠ እየሄደ ነው። እና ይህ ለሌሎች በርካታ የባለሙያ STMicroelectronics ኪት እንዲሁ እውነት ነው።

በመጨረሻም ፣ ዛሬ ስለ ፕሮጀክቱ ፣ ከ L476RG በተጨማሪ ሁለት DS18b20 ዳሳሾችን እንጠቀማለን። ስለዚህ L476RG ን በመጠቀም ቀለል ያለ ስብሰባ እናደርጋለን ፣ ቤተ -መጽሐፍትን ወደ MBED አከባቢ እናስመጣለን ፣ በ MBED አከባቢ ውስጥ ፕሮግራም እንፈጥራለን ፣ እና መረጃን ከ L476RG በዩኤስቢ / ተከታታይ በኩል እናገኛለን።

በዚህ ቪዲዮ ውስጥ ስለ L476RG ትንሽ ተነጋግሬአለሁ - በመስመር ላይ ያለውን የ MBED አከባቢን እንዴት ማዋቀር እንደሚቻል የሚያሳዩበት ማይክሮስኮከርተርን ለማቀድ ቀላሉ መንገድ።

አንዳንድ ቪዲዮዎቼን የሚከተሉ ሰዎች STM32 ESP32 ን ይተካ እንደሆነ እየጠየቁኝ ነው። አንድ ነገር እላለሁ - አይተካም እና አልቻለም ፣ ምክንያቱም እነሱ ሁለት ፍጹም የተለያዩ ነገሮች ናቸው።

ይህ STM32 ቺፕ ማይክሮ መቆጣጠሪያ ነው ፣ ወይም ይልቁንስ; ልክ እንደ ESP32 “የነገሮች ስብስብ” አይደለም። ስለዚህ ስሙ ተመሳሳይ ሊመስል ይችላል ፣ ግን እነሱ ሙሉ በሙሉ የተለያዩ ናቸው። STM32 እንደ PIC ፣ Atmel ፣ ለምሳሌ አጠቃላይ ዓላማ ማይክሮ መቆጣጠሪያ ነው።

ደረጃ 1 - ያገለገሉ ሀብቶች

ጥቅም ላይ የዋሉ ሀብቶች
ጥቅም ላይ የዋሉ ሀብቶች

1 ኮር L476RG

2 DS18b20 ዳሳሾች (በገቢያ ላይ የተለመዱ የውሃ መከላከያ ሞጁሎችን እንጠቀማለን)

1 4 ኪ 7 ተከላካይ

አነስተኛ ፕሮቶቦርድ

ዝላይዎች ለግንኙነት

ደረጃ 2 - ስብሰባ

ስብሰባ
ስብሰባ

አንዱን የሙቀት ዳሳሾች በመጠቀም ስብሰባውን መጀመሪያ እናከናውናለን።

ኃይሉ 5V ይሆናል።

4 ኪ 7 ተከላካይ በውሂብ መስመር (1-ሽቦ) ላይ መጎተት ለማድረግ ይጠቅማል።

የ A0 ፒን በመጠቀም ውሂቡን እናነባለን።

ደረጃ 3 በ MBED ውስጥ አዲስ ፕሮግራም

አዲስ ፕሮግራም በ MBED
አዲስ ፕሮግራም በ MBED
አዲስ ፕሮግራም በ MBED
አዲስ ፕሮግራም በ MBED
አዲስ ፕሮግራም በ MBED
አዲስ ፕሮግራም በ MBED

አንዴ መለያዎ በ MBED ውስጥ ከተዋቀረ እና ከደረሱት በኋላ አዲስ ፕሮግራም እንፈጥራለን። ይህንን ለማድረግ በ “የእኔ ፕሮግራሞች” ላይ በቀኝ ጠቅ ያድርጉ እና “አዲስ ፕሮግራም…” ን ይምረጡ።

“መድረክ” ከሚጠቀሙበት ሰሌዳ ጋር የሚስማማ መሆኑን ያረጋግጡ።

አሁን “አብነት” ላይ ጠቅ እናደርጋለን።

“UART ን በመጠቀም በፒሲ ላይ መልእክት ያሳዩ” በሚለው ምሳሌ ላይ የተመሠረተ ፕሮግራም እንፈጥራለን።

በ "የፕሮግራም ስም" ውስጥ የፕሮግራሙን ስም ያስገቡ።

“ይህንን ፕሮግራም እና ቤተመጽሐፍት ወደ የቅርብ ጊዜ ክለሳ” አዘምን የሚለውን አማራጭ ይፈትሹ።

ነባሪውን MBED ቤተመፃህፍት እና ዋና.cpp ፋይልን ጨምሮ ለፕሮግራምህ አዲስ አቃፊ ይፈጠራል።

ሁሉም ነገር በደንብ እየሰራ መሆኑን ለመፈተሽ ሊጠቀሙበት ይችላሉ። ይህንን ለማድረግ በቀላሉ ያጠናቅሩት እና ወደ መድረኩ ይቅዱት።

የመረጡት ተከታታይ ተርሚናል በመጠቀም የሚከተሉትን መልእክቶች መቀበል ይችላሉ።

ደረጃ 4 - DS18b20 ቤተመፃሕፍትን ማስመጣት

DS18b20 ቤተመፃህፍት ማስመጣት
DS18b20 ቤተመፃህፍት ማስመጣት

ለ Ds18b20 በርካታ የመጽሐፍት ስሪቶች ስላሉ ፣ ምሳሌዎ ተመሳሳይ ቤተ -መጽሐፍት እንዲጠቀም url ን በመጠቀም እናስመጣለን።

ደረጃ 5 በ MBED ውስጥ አዲስ ፕሮግራም

አዲስ ፕሮግራም በ MBED
አዲስ ፕሮግራም በ MBED
አዲስ ፕሮግራም በ MBED
አዲስ ፕሮግራም በ MBED

በ “ምንጭ ዩአርኤል” መስክ ውስጥ https://os.mbed.com/users/Sissors/code/DS1820/ ን ይሙሉ እና አስመጣ የሚለውን ጠቅ ያድርጉ።

የእርስዎ DS1820 ቤተ -መጽሐፍት በፕሮግራም አቃፊዎ ውስጥ መታየት አለበት።

ደረጃ 6: የምንጭ ኮድ

ያካትታል

አስፈላጊዎቹን ቤተ -መጻሕፍት በማካተት ጀመርን።

#mbed.h »ን ጨምሮ /inclusão da biblioteca padrão do MBED#« DS1820.h »ን ያካትታል /

ጥቅም ላይ የዋሉትን ፒኖች የሚያመለክቱ ቋሚዎችን እንገልፃለን።

DS18b20 ከ 1-WIRE ግንኙነት ጋር ዳሳሽ መሆኑን ልብ ይበሉ። በዚህ ምክንያት ፣ ከመሳሪያዎቹ ጋር መላውን የመግባቢያ ፕሮቶኮል የሚያስተናግደውን ቤተመጽሐፍት እንጠቀማለን። ይህ እያንዳንዱን መሣሪያ እስከ የተነበቡ ትዕዛዞች መለየት ያካትታል።

#PINO_DE_DADOS A0 // ን ይግለጹ o pino para leitura dos dados#ይግለጹ MAX_SENSORES 16 // define o número máximo para o vetor de sensores

ከመረጃ መስመሩ ጋር የተገናኙትን 16 ሊሆኑ የሚችሉ መሳሪያዎችን እያንዳንዱን የሚያመለክት ቬክተር እንፈጥራለን።

DS1820* ዳሳሽ [MAX_SENSORES]; // cria um vetor com 16 posições para os sensores

በ DS1820 ቤተ -መጽሐፍት ውስጥ የተካተተውን ‹ያልተመደበProbe ()› ዘዴ በመጠቀም ፣ በመገናኛ መስመሩ ውስጥ ያሉትን ሁሉንም መሣሪያዎች የምንፈልግበትን ዋናውን () ዘዴ እንጀምራለን።

እያንዳንዱን የሚገኙ ዳሳሾችን በሚወክሉ አጋጣሚዎች የአነፍናፊውን ቬክተር እንሞላለን።

ይህንን የምናደርገው የመጨረሻው እስኪገኝ ወይም ከፍተኛውን 16 ዳሳሾች እስክንደርስ ድረስ ነው።

int main () {int encontrados = 0; ሳለ (DS1820:: unassignedProbe (PINO_DE_DADOS)) {// inicia a procura por sensores sensor [encontrados] = new DS1820 (PINO_DE_DADOS); // cria uma instancia para o sensor encontrado encontrados ++; ከሆነ (encontrados == MAX_SENSORES) // verifica se atingiu o máximo de sensores break; }

በመስመሩ ላይ የተገኙትን አነፍናፊዎች ቁጥር እንልካለን።

printf ("Dispositivos encontrado (s): %d / r / n / n", encontrados);

ሁሉም የሚገኙ ዳሳሾች የየራሳቸውን የሙቀት መጠን እንዲያሰሉ በመጠየቅ ማለቂያ የሌለውን ዑደት እንጀምራለን ፣ ከዚያም የተገኙትን ንባቦች በመላክ በአነፍናፊ ቬክተር በኩል ይድገሙት።

printf ("Dispositivos encontrado (s): %d / r / n / n", encontrados); (1) {sensor [0]-> convertTemperature (እውነት ፣ DS1820:: all_devices); // solicita a leitura de temperatura para todos os dispositivos encontrados for (int i = 0; የንጥል ሙቀት ()); //… e retorna a temperatura printf ("\ r / n"); ይጠብቁ (1); }

ደረጃ 7: መረጃ ደርሷል

ውሂብ ደርሷል
ውሂብ ደርሷል

አንድ ነጠላ ዳሳሽ በመጠቀም ፣ የሚከተለውን ተከታታይ ውፅዓት እናገኛለን።

ደረጃ 8 - ተጨማሪ ዳሳሾችን ጨምሮ

ተጨማሪ ዳሳሾችን ጨምሮ
ተጨማሪ ዳሳሾችን ጨምሮ
ተጨማሪ ዳሳሾችን ጨምሮ
ተጨማሪ ዳሳሾችን ጨምሮ

ኮዱን ለመፈተሽ ፣ ከመጀመሪያው አነፍናፊ ጋር በትይዩ በማገናኘት በቀላሉ በመገናኛ መስመሩ ውስጥ ሌላ ዳሳሽ እናስተዋውቃለን።

አዲስ ዳሳሾችን ከማገናኘትዎ በፊት ስብሰባውን ማጥፋትዎን ያስታውሱ።

ስብሰባውን እንደገና ስንጀምር የምንጭ ኮዱ ላይ ምንም ለውጦች ሳይኖረን የሚከተለውን ውጤት አገኘን።

ደረጃ 9 ምንጭ ይመልከቱ

#mbed.h " /inclusão da biblioteca padrão do MBED #ያካትታሉ" DS1820.h "// inclusão da biblioteca do sensor DS1820 #defiine PINO_DE_DADOS A0 // ይግለጹ o pino para leitura dos dados #define MAX_SENSORES 16 // ይግለጹ o número máximo para o vetor de sensores DS1820* sensor [MAX_SENSORES]; // cria um vetor com 16 posições para os sensores int main () {int encontrados = 0; ሳለ (DS1820:: unassignedProbe (PINO_DE_DADOS)) {// inicia a procura por sensores sensor [encontrados] = new DS1820 (PINO_DE_DADOS); // cria uma instancia para o sensor encontrado encontrados ++; ከሆነ (encontrados == MAX_SENSORES) // verifica se atingiu o máximo de sensores break; } printf ("Dispositivos encontrado (s): %d / r / n / n", encontrados); (1) {sensor [0]-> convertTemperature (እውነት ፣ DS1820:: all_devices); // solicita a leitura de temperatura para todos os dispositivos encontrados for (int i = 0; የንጥል ሙቀት ()); //… e retorna a temperatura printf ("\ r / n"); ይጠብቁ (1); }}

ደረጃ 10 - ፋይሎች

ፒዲኤፍ

ሌሎች

የሚመከር: