ዝርዝር ሁኔታ:

ከእውቀት ጋር የተለየ አቀራረብ -3 ደረጃዎች
ከእውቀት ጋር የተለየ አቀራረብ -3 ደረጃዎች

ቪዲዮ: ከእውቀት ጋር የተለየ አቀራረብ -3 ደረጃዎች

ቪዲዮ: ከእውቀት ጋር የተለየ አቀራረብ -3 ደረጃዎች
ቪዲዮ: ሚስትክ ከሌላ ወንድ ጋር እየማገጠች እንደሆነ የምታውቅበት 13 ምልክቶች| 15 Sign of women cheating 2024, ሀምሌ
Anonim
ከነፃነት ጋር የተለየ አቀራረብ
ከነፃነት ጋር የተለየ አቀራረብ

ከአርዱዲኖ ናኖ ጋር በነበረኝ የመጀመሪያ ፕሮጀክት ውስጥ ከኔክስሽን ንክኪ ማሳያ ጋር ተገናኝቼ ፣ በተከታታይ ወደብ በኩል ለኔክስሽን ለመገናኘት ረጅም ተከታታይ ትዕዛዞችን ጽፌ ነበር እና ሙሉ በሙሉ ገለልተኛ ትዕዛዞችን መላክ ካስፈለግን ይህ በአጋጣሚ ጊዜያት ውስጥ የማይቀር ነው።

እኔም ከማንኛውም ነገር በላይ ከቤተመጽሐፍት ጋር 'በመዋጋት' ብዙ ጊዜ እንዳጠፋሁ መቀበል አለብኝ። ስለዚህ ያለ ከባድ የ ITEAD ቤተ -መጻሕፍት ሙሉ በሙሉ ወደ ሥራ መጣሁ።

ብዙም ሳይቆይ ለኔክስሽን የምስል ዕቃዎች ባህሪዎች ላይ የተደረጉ ለውጦችን ለማነጋገር አጣዳፊ አለመሆኔን ተገነዘብኩ ፣ ግን እኔ ሙሉ ቡድን ስገኝ እስክሰበስብ ድረስ እና በአጠቃላይ ወደ ኔክስሽን እስክልክላቸው ድረስ መጠበቅን እመርጣለሁ።

እራሴን በተሻለ ሁኔታ ለማብራራት እሞክራለሁ።

በፕሮጄጄቴ ውስጥ 16 የጽሑፍ አመላካቾችን ባካተተ ጊዜ አንዳንዶቹን ማብራት ወይም ማጥፋት እፈልጋለሁ ፣ እሱን የማብራት (ለምሳሌ) ከጨለማው ግራጫ ወደ ነጭ የሚያልፍ የ ‹bco› ን ባህርይ በመጠቀም ነው የማደርገው። ጥቁር አራት ማእዘን) ፣ እና በተቃራኒው ለማጥፋት።

በመተግበሪያዬ ውስጥ 16 ትዕዛዞችን ወደ 16 ተከታታይ ትዕዛዞች ወደ አንድ ወደብ መላክ ምንም ፋይዳ እንደሌለው ተረዳሁ ፣ አንዱ ለ ‹16 ›ምልክቶች ለእያንዳንዱ‹ bco ›።

በምትኩ አርዱinoኖ የትኞቹ ምልክቶች በ ‹ላይ› (HIGH) እና የትኞቹ በ ‹16› ቢት መመዝገቢያ ውስጥ ‹ጠፍ› (LOW) መሆን እንዳለባቸው መሰብሰብ እመርጣለሁ ፣ እያንዳንዱም ቢት ከ ‹XXXXXXXX ምልክት ›ምልክት ጋር የሚዛመድ ነው።

እያንዳንዱን የመመዝገቢያውን ትንሽ ካዘመንኩ በኋላ እሴቱን ለኔክስሽን አስተላልፋለሁ ፣ አንድ ነጠላ መልእክት 16 አባላትን የሚመለከት መረጃ የያዘ ነው።

በዚህ መንገድ ከአርዱዲኖ እና ከኔክስቴሽን የመገናኛ ልውውጥ በእጅጉ ቀንሷል ምክንያቱም በዚያ ነጠላ መልእክት ወደ ነክሲክ በተላለፈው አንድ መልእክት ውስጥ ካልሆነ ግን የ 16 መልዕክቶችን ማስተላለፍ የሚፈልግ መረጃ ይሰበሰባል።

እውነት ነው ፣ ሁሉንም ሪፖርቶች ማዘመን ሁል ጊዜ አስፈላጊ አይደለም ፣ ግን ያለበለዚያ ማድረግ የበለጠ ጊዜ እንደሚያጠፋ እርግጠኛ ነኝ።

በአርዲኖ በተቀበለው ኢንቲጀር ውስጥ እያንዳንዱ እያንዳንዱ ቢት ፣ የ Nextion ማሳያ ከተፈለገው ባህርይ ጋር ማጎዳኘት አለበት።

ይህ ማለት ኮድ በ Nextion ማሳያ ውስጥ መፃፍ አለበት ፣ ግን መፍራት የለበትም - ከተሳካሁ…

ከዚያ ድርብ ጠቀሜታ አለ -አርዱዲኖ ቀለል ያለ ኮድ ይኖረዋል እና ከኔክስሽን ጋር በተከታታይ ግንኙነት ውስጥ ይሳተፋል።

በአንድ መልእክት ውስጥ ውሂቡን ከተቀበለ በኋላ Nextion ፣ ለ 16 መልእክቶች ከመጠበቅ ይልቅ በፍጥነት ይጠቀማሉ። ስለዚህ የ 16 ምልክቶችን ማብራት ወይም ማጥፋት በጣም የተለመደው ሁነታን በተመለከተ ለመጀመሪያ ጊዜ ምልክት ማድረጉ እና ለመጨረሻው ምልክት በትእዛዙ አፈፃፀም መካከል ያልታወቀ የመልእክት ብዛት ጊዜው የሚያልፍበት ይሆናል።

በኔክስሽን ማሳያ ውስጥ ይህንን ስርዓት በጥንታዊው መንገድ ፈጠርኩ ፣ ማለትም ‹ጭምብል› መመዝገቢያውን በእያንዳንዱ ጊዜ ማዞር እያንዳንዱን 16 ቢት ለመመርመር ያስችልዎታል። ቢት ሲመረመር ከፍተኛ ነው ፣ ከዚያ ትንሽ ጋር የተገናኘው ምልክት በማሳያው ላይ ያበራል እና ትንሽ ሲጠፋ ይጠፋል።

የዚህ ሥርዓት ‹አሉታዊ› ገጽታ በኔክስሽን ማሳያ ውስጥ የተፃፈው ኮድ ከአርዲኖ ኮድ ይልቅ ለመመዝገብ ያን ያህል ምቹ አለመሆኑ ነው። በተጨማሪም ፣ የኔክስሽን ኮድ በተለያዩ ነገሮች ላይ የመበተን አደጋ አለው። እርስዎ የሚያደርጉትን ነገር ወዲያውኑ ለመመዝገብ ጥንቃቄ መደረግ አለበት።

እኔ በገጽ 0 ውስጥ በ tm0 ውስጥ ብቻ ወደሚገኘው ወደ Nextion ነገር ውስጥ የምቀዳውን ኮድ ለመጻፍ Notepad ++ ን እጠቀማለሁ።

የኔክስሽን ቋንቋ አገባብ ብዙ ገደቦች አሉት ፣ ግን እነሱን ለማሸነፍ ወይም በትንሹ ጥረት በዙሪያቸው ለመሄድ እና ችግሮቹን ከእይታዎች ለማየትም ይሞክራል።

እንደ ምሳሌ ፣ አርዱዲኖ በተቻለ መጠን በጣም የመጀመሪያ ደረጃ በሆነ መንገድ በእኔ የተፃፈበትን መዝገብ የሚጽፍበትን መንገድ ሪፖርት አደርጋለሁ።

ደረጃ 1 - መዝገቡ እንዴት እንደሚተላለፍ

በፋይሉ ArduinoCode. PDF ሁሉንም የእኔን ንድፍ አሳያለሁ። (ኮዱን እዚህ ማንበብ በጣም ግልፅ አይደለም)

እዚህ ወደ ታች ፣ እኔ ቤተ -መጻህፍት እገዛ ሳይኖር አርዱኢኖ የ 16 ቢት ምዝገባን ወደ Nextion እንዴት እንደሚልክ ለማሳየት እፈልጋለሁ ፣ ግን በ ITEAD የተገለፀውን አገባብ ማክበር።

//***************************************************************************************

ባዶ NexUpd ()

//***************************************************************************************

{

SRSerial.print ("vINP.val =");

SRSerial.print (InpReg); // የተሰበሰቡትን 16 ቁርጥራጮች ወደ Nextion ማሳያ ያስተላልፉ

SRSerial.print (InpReg); // የተሰበሰቡትን 16 ቁርጥራጮች ወደ Nextion ማሳያ ያስተላልፉ

SRSerial.write (ማብቂያ); // 255

SRSerial.write (ማብቂያ); // 255

SRSerial.write (ማብቂያ); // 255

}

//***************************************************************************************

ደረጃ 2.. ግን ከዚህ በፊት…

.. ግን በፊት…
.. ግን በፊት…

በእርግጥ ኮዱ በሁሉም መግለጫዎች እና በማዋቀር () ይጀምራል።

ግብዓቶቹ INPUT_PULLUP ናቸው ፣ ስለዚህ የግቤት መቀየሪያዎቹ በተለምዶ ክፍት ናቸው እና ሲዘጉ GND ን ወደ ተጓዳኝ ግብዓት ይተገብራሉ።

(ይህ የመጀመሪያ አስተማሪዬ ነው እና በዚህ መጥፎ መንገድ ኮዴን በማሳየቴ አዝናለሁ። እባክዎን ArduinoCode. PDF ን በጣም ግልፅ መሆኑን ያውርዱ።

ስለዚህ ጉዳይ የበለጠ ላውራ

ለኔክስሽን ማሳያ ምን ማድረግ እንዳለበት 'ለመንገር' የራሴን መንገድ አዳብረዋል። አብዛኛውን ጊዜ MCU (በእኔ ጉዳይ ላይ አርዱinoኖ) ለማንኛውም የነጠላ ነገር ባህርይ እንዲተገበር ለእያንዳንዱ ነጠላ ልዩነት መልእክት ይልካል። ይህ ዘዴ ተከታታይ መስመሩን ያለማቋረጥ ለመጫን ሁልጊዜ በጣም አስቸኳይ ያልሆኑ ነገሮችን ለማድረግ ብዙ ጊዜ ያባክናል። እኔ አርዱዲኖ ወደ 16 ቢት የሚሰበስበው የበለጠ ምቹ ሆኖ አግኝቼያለሁ። ስለ እያንዳንዱ 500 ሚአር የእኔ አርዱኢኖ በእያንዳንዱ መዝገብ ውስጥ የተካተተውን 16 ቢት የያዘ አንድ መልእክት ለኔክስሽን ይልካል። በኔክስሽን ውስጥ በግልጽ መፈጸም ያለበትን የሚይዝ ኮድ እንፈልጋለን። ይህ የተግባሩ ስርጭት (እና ኮዱ) ሌሎች ብዙ ጥቅሞችን እንዲያገኝ ያስችለዋል። ለምሳሌ ፣ ብልጭ ድርግም የሚል ብርሃንን እንዴት ማድረግ እንደሚቻል ያስቡ! በእኔ አቀራረብ ቀላል ነው - በአርዱዲኖ መመዝገቢያ ውስጥ ትንሽ ያዘጋጁ እና ወደ Nextion ይላኩት። የነጭነት መንትያ መመዝገቢያዎች ከአርዱinoኖ በጣም አልፎ አልፎ ሊዘመኑ ይችላሉ ፣ ምክንያቱም ብልጭ ድርግም የሚለው ድግግሞሽ ከግንኙነቱ ነፃ ስለሆነ። ብልጭ ድርግም የሚለካው ድግግሞሽ ከሰዓት ቆጣሪ ነገር ወደ Nextion ላይ የሚመረኮዝ ሲሆን ከ 50 mS አቅራቢያ ካለው ዝቅተኛ የጊዜ መሠረት ጋር ሊሠራ ይችላል። ስለዚህ በእኔ ዘዴ በአንጻራዊ ሁኔታ ከፍተኛ በሆነ (በ 2 Hz እንበል) ፣ የኔ አርዱኢኖ መልዕክቶችን በየ 10 ሰከንዶች ቢልክም ፣ ለከባድ ምሳሌ ብቻ ፣ በኔክስሽን ውስጥ መብራት ብልጭ ድርግም ማለት እንችላለን። ይህ ተቃራኒውን ችግር ሊጠቁም ይችላል -ግንኙነቱ ካልተሳካ እንዴት ማድረግ እንደሚቻል? ይህ የዚህ ውይይት ዓላማ አይደለም ፣ ግን ይህንን ችግር ቀደም ሲል በአንድ የመመልከቻ ውሻ አንድ ፈትቻለሁ - አንዱ በአርዱዲኖ ኮድ ውስጥ ፣ ሌላ ወደ ኔክስቲንግ ኮድ።

ብልጭ ድርግም የሚባለው በ Nextion ኮድ ነው ፣ እያንዳንዱ ብርሃን ተገቢ ህጎቹን በሚከተልበት - አብራ/አጥፋ ወይም አረንጓዴ/ቀይ ወይም ደግሞ የተፃፈውን (ወይም ሌላ ተጨማሪ) በመለወጥ። ስለ እኔ ፕሮጀክት ሌሎች ነገሮችን መናገር እችል ነበር ፣ ግን እኔ እንደ እኔ በደንብ ለመተርጎም በጣም ቀላል ያልሆኑ ብዙ ቃላትን ከማከልዎ በፊት ጥያቄዎችዎን መጠበቅ እመርጣለሁ።

ደረጃ 3: የ Nextion ነገሮችን ማርትዕ

የ Nextion ነገሮችን ማርትዕ
የ Nextion ነገሮችን ማርትዕ

በ tm0 ነገር ላይ ከኔክስሽን አርታኢ ጋር የፃፍኩት የኮዱ ክፍል እዚህ አለ።

ከአርዱዲኖ በተቀበሉት 16 ቢት ፣ የኔክስሽን ማሳያ ምልክቶቹን ማብራት እና ማጥፋት ብቻ አይደለም። ግንዛቤን እንዳያወሳስብ ለጊዜው ማብራሪያዎቹን እተወዋለሁ።

እኔ ጀማሪ ነኝ እና ስለዚህ እዚህ የተደባለቀውን ኮድ ለማንበብ የ Nextion code. PDF ገጽ ማውረድ የተሻለ ነው። (ይቅርታ ይህ የመጀመሪያ አስተማሪዬ ነው)

ከፈለጉ ለዚህ ማመልከቻዬ የተሟላውን ኮድ “ኤችኤምአይ” ማውረድ ይችላሉ። የዚህ ኮድ የፋይል ስም POW1225. HMI ነው። ወደ የእርስዎ Nextion ማሳያ NX4024T032 ሊሄድ ይችላል ፣ ግን እሱን ለመረዳት በብዙ ነገሮች ውስጥ መዋኘት እና በአርታኢው ትንሽ መስኮት ውስጥ ኮዱን ማየት አለብዎት። ስለዚህ በፋይሉ Nextion code. PDF ውስጥ የተፃፈውን ዋናውን ኮድ ለመመልከት የበለጠ ቀላል ይመስለኛል

// ፕሮጀክት POW1225. HMI 15 ሜይ 2019

// vACC (va0) አሰባሳቢ

// vINP (va1) የግቤት ምዝገባ xxxx xxxx xxxx xxxx

tm0.en = 1 // tm0 ጀምር

tm0.tim = 50 // tm0 የጊዜ መሠረት 50 mS

// አርዲ ***************

vACC.val = vINP.val & 0x0001 // ጭንብል

ከሆነ (vACC.val! = 0) // ሙከራ RDY

{

tRDY.pco = ሰማያዊ / ቀይ

} ሌላ

{

tRDY.pco = GRAY // ጨለማ ግሬይ

}

// PWR ***************

vACC.val = vINP.val & 0x0002

ከሆነ (vACC.val! = 0) // ሙከራ PWR

{

tPWR.pco = አረንጓዴ / አረንጓዴ ግሪን

tPON.txt = "በርቷል" // በርቷል

tPON.pco = አረንጓዴ / አረንጓዴ ግሪን

} ሌላ

{

tPWR.pco = GRAY // ጨለማ GRAY 33808

tPON.txt = "ጠፍቷል" // ጠፍቷል

tPON.pco = GRAY // ጨለማ GRAY 33808

}

// ደረቅ ***************

vACC.val = vINP.val & 0x0004

ከሆነ (vACC.val! = 0) // ሙከራ ማድረቅ

{

tDRV.pco = BLUE // BLUE

tDRY.pco = BLUE // BLUE

} ሌላ

{

tDRV.pco = GRAY // ጨለማ GRAY 33808

tDRY.pco = GRAY // ጨለማ GRAY 33808

}

// ሩጡ ***************

vACC.val = vINP.val & 0x0018

ከሆነ (vACC.val! = 0) // ሙከራ አሂድ

{

tRUN.bco = ቀይ / / ማርስያ ቀይ (በርቷል)

tRUN.pco = BLACK // በጥቁር ላይ

tDIR.bco = ቀይ // ድሪ ቀይ

tDIR.pco = BLACK // በጥቁር ላይ

} ሌላ

{

tRUN.bco = 32768 // ማርሲያ ግሬይ (ጠፍቷል)

tRUN.pco = GRAY // በግሬይ ላይ

tDIR.bco = 32768 // DIR dark GREEN 1024

tDIR.pco = ግሬይ // ድሬ ግሬይ

tDIR.txt = "---" // አቁም

}

// ግራ **************

vACC.val = vINP.val & 0x0008

ከሆነ (vACC.val! = 0) // የሙከራ ሩጫ ትክክል

{

tDIR.txt = "<<<" // ድሪ ግራ

}

// ቀኝ *************

vACC.val = vINP.val & 0x0010

ከሆነ (vACC.val! = 0) // የሙከራ ሩጫ ግራ

{

tDIR.txt = ">>>" // DIR RIGHT

}

// ሁለቱም **************

vACC.val = vINP.val & 0x0018

ከሆነ (vACC.val == 24) // ሁለቱንም ይሞክሩ

{

tDIR.txt = ">>! <<" // DIR BOTH

}

// ሙከራ **************

vACC.val = vINP.val & 0x0020

ከሆነ (vACC.val! = 0) // የሙከራ ሙከራ

{

tTEST.pco = ነጭ // ነጭ

tsw tTEST ፣ 1 // የንክኪ ክስተቶችን ያንቁ

} ሌላ

{

tTEST.pco = GRAY // ጨለማ GRAY 33808

tsw tTEST ፣ 0 // የንክኪ ክስተቶችን ያሰናክሉ

}

// ጥፋት *************

vACC.val = vINP.val & 0x0040

ከሆነ (vACC.val == 0) // የሙከራ ስህተት

{

tFLT.pco = GRAY // ጥፋት የለም

}

ከሆነ (vACC.val! = 0)

{

tFLT.pco = YELLOW // ጥፋት አለ

}

// ኢሜ ***************

vACC.val = vINP.val & 0x0080

ከሆነ (vACC.val == 0) // የሙከራ ኢሜይ

{

tEME.pco = GRAY // EME የለም

}

ከሆነ (vACC.val! = 0)

{

tEME.pco = RED // EME ይገኛል

}

}

// ፈርሞ *************

vACC.val = vINP.val & 0x0100

ከሆነ (vACC.val! = 0) // ሙከራ FERMO

{

tFER.pco = ጥቁር / ጥቁር / ጥቁር

tFER.bco = አረንጓዴ // ግሪን

} ሌላ

{

tFER.pco = ግሬይ // ግሬይ

tFER.bco = 672 // ጨለማ ግሪን

}

// *******************

ዕውቅና

የእርሱን አስተምህሮዎች በማንበብ የዓላማዎቼን አንድ ክፍል በፍጥነት ስላገኘሁ ምስጋናዬን ለጌዲዮን ሮሶውቭ መስጠት እፈልጋለሁ። አመሰግናለሁ አቶ. ጌዲዮን ሮስሶውቭ

የሚመከር: