ዝርዝር ሁኔታ:
- ደረጃ 1: ምን ዓይነት OLED ሞጁሎች ልንጠቀም ነው?
- ደረጃ 2: I2C በ Nutshell ውስጥ
- ደረጃ 3 አስፈላጊ ሞጁሎች እና አካላት
- ደረጃ 4 - ለአርዱዲኖ የ OLED ማሳያ ሞዱል
- ደረጃ 5 የማሳያ ሞጁሉን አድራሻ ማግኘት
- ደረጃ 6: በ OLED ሞዱል ላይ መረጃን ለማሳየት የሚያስፈልጉ ቤተ -ፍርግሞችን መጫን ያስፈልጋል
- ደረጃ 7 የማሳያ ሞጁሉን ማስጀመር
- ደረጃ 8 ቀላል ጽሑፍን ያሳዩ
- ደረጃ 9 መሰረታዊ ቅርጾችን መሳል
- ደረጃ 10 የስዕል ስዕል
- ደረጃ 11 - መላ መፈለግ
- ደረጃ 12 ቀጥሎ ምን ይደረግ?
ቪዲዮ: ከ OLED ማሳያ እና አርዱinoኖ ጋር መዝናናት -12 ደረጃዎች (ከስዕሎች ጋር)
2024 ደራሲ ደራሲ: John Day | [email protected]. ለመጨረሻ ጊዜ የተሻሻለው: 2024-01-30 07:30
ስለ OLED ማሳያ ቴክኖሎጂ በእርግጠኝነት እንደሰሙ እርግጠኛ ነኝ። በአንፃራዊነት አዲስ እና ከድሮው ኤልሲዲ ቴክኖሎጂ የተሻለ ጥራት ያለው ነው። በዚህ መማሪያ ውስጥ በገበያ ላይ ከሚገኙት በጣም የተለመዱ ነጠላ ቀለም የ OLED ማሳያ ሞጁሎች በአንዱ ላይ መረጃን ለማሳየት የሚያስፈልጉትን ደረጃዎች መገምገም እንፈልጋለን። በዚህ ሞዱል ላይ መረጃን ለማሳየት በተጓዳኝ የአዳፍ ፍሬዝ ቤተ -መጽሐፍት የቀረቡትን ተግባራት ለማብራራት እሞክራለሁ።
ደረጃ 1: ምን ዓይነት OLED ሞጁሎች ልንጠቀም ነው?
የ OLED ሞጁሎች በተለያዩ መጠኖች እና ባህሪዎች ውስጥ ይገኛሉ። በዚህ መማሪያ ውስጥ የምንጠቀምበት አንድ ሞኖ ቀለም 128x64 OLED ሞዱል ነው። ይህ ዓይነቱ ሞዱል በሚከተሉት መጠኖች ውስጥ ይገኛል (በስዕሎቹ ላይ ለማየት)
- 128x64
- 128x32
- 96x16
- 64x48
- 64x32
እነዚህ ሁሉ ሞጁሎች የ I2C ፕሮቶኮልን ለግንኙነት አማካይነት ስለሚደግፉ ፣ የሁሉም ኮዱ እና ሽቦው በትክክል አንድ ነው። የሚያሳዩት ይዘቶች በላዩ ላይ በትክክል እንዲስማሙ ብቸኛው ልዩነት በኮድዎ ላይ ያለውን የማሳያ መጠን ግምት ውስጥ ማስገባት አለብዎት።
ደረጃ 2: I2C በ Nutshell ውስጥ
በመሃከለኛ የማቀነባበሪያ አሃድ (ሲፒዩ) ወይም በማይክሮ መቆጣጠሪያ ክፍል (MCU) መካከል ያለውን መረጃ ለማስተላለፍ የሚያገለግል የመረጃ ልውውጥ አውቶቡስ ሆኖ በ 80 ዎቹ በፊሊፕስ የተገነባው I2C (I squared C) ተብሎ የሚጠራው የተቀናጀ ወረዳ (አይአይሲ) እና ዳርቻ ቺፕስ. እሱ ለቴሌቪዥን ትግበራ የታለመ ነበር። በቀላልነቱ ምክንያት በጣም ተወዳጅ እየሆነ በመምጣቱ ከጥቂት ጊዜ በኋላ ለሲፒዩዎች እና ለ MCUs እና ለፒ.ፒ.ቢ.አንድ አስፈላጊ የ PCB ቦርድ አካል ያልሆኑ እና ከሽቦ ጋር የተገናኙበት የውሂብ ማስተላለፍ ዋና ዘዴዎች አንዱ ሆነ (ለምሳሌ ዳሳሾች ፣ የማሳያ ሞጁሎች ፣ ወዘተ)።
I2C በዋና እና በብዙ የባሪያ መሣሪያዎች መካከል የሁለትዮሽ የውሂብ ሽግግርን የሚደግፍ በሁለት ሽቦ የተሠራ የግንኙነት አውቶቡስ ያካትታል። በተለምዶ ዋናው መስቀለኛ መንገድ አውቶቡሱን የመቆጣጠር ሀላፊ ነው - በእውነቱ የሚከናወነው በተከታታይ የሰዓት መስመር (SCL) ላይ የማመሳሰል ምልክት በማመንጨት ነው። በዝውውሩ ወቅት በተከታታይ በጌታ የሚላክ ምልክት ነው እና ከአውቶቡሱ ጋር የተገናኙ ሌሎች ሁሉም አንጓዎች ግንኙነታቸውን ለማመሳሰል እና የአውቶቡሱን ፍጥነት ለመለየት ይጠቀሙበታል። መረጃ በተከታታይ ውሂብ (ኤስዲኤ) መስመር በኩል በጌታው እና በባሪያው መካከል ይተላለፋል። የማስተላለፊያ ፍጥነት እስከ 3.4 ሜጋ ባይት ሊደርስ ይችላል። በ I2C በኩል መረጃን ማስተላለፍ የሚፈልጉ ሁሉም መሣሪያዎች ልዩ አድራሻ ሊኖራቸው ይገባል እና በመሣሪያው ተግባር ላይ በመመርኮዝ እንደ አስተላላፊ ወይም ተቀባዩ ሆነው መሥራት ይችላሉ። ለምሳሌ ፣ የ OLED ማሳያ ሞዱል የተወሰኑ መረጃዎችን የሚቀበል እና የሚያሳያቸው ተቀባይ ሲሆን ፣ የሙቀት ዳሳሽ በ I2C አውቶቡስ በኩል የተያዘውን የሙቀት መጠን የሚልክ አስተላላፊ ነው። በተለምዶ ዋና መሣሪያ በአውቶቡስ ላይ የውሂብ ማስተላለፍን የሚጀምር እና ዝውውሩን ለመፍቀድ የሰዓት ምልክቶችን የሚያመነጭ መሣሪያ ነው። በዚያ ዝውውር ወቅት ፣ በዚህ ጌታ የተናገረው ማንኛውም መሣሪያ እንደ ባሪያ ይቆጠራል እና ያንን ውሂብ ያነባል።
አንድ መስቀለኛ መንገድ አንዳንድ መረጃዎችን ለመላክ ሲፈልግ ፣ የመጀመሪያው የውሂብ ባይት የተቀባዩ አድራሻ መሆን አለበት እና ከዚያ በኋላ ትክክለኛው ውሂብ ይመጣል። ይህ ማለት I2C ን (ለምሳሌ I2C OLED ማሳያ ሞዱል) በመጠቀም ወደ ውፅዓት መሣሪያ ውሂብ ለመላክ መጀመሪያ የ I2C አድራሻውን ማግኘት አለብን እና በሚቀጥለው ደረጃዎች መጀመሪያ የምናደርገው ይህ ነው።
ስለ I2C አውቶቡስ ዝርዝሮች እና ንድፈ ሀሳቦች የበለጠ ለማወቅ ፍላጎት ካለዎት የሚከተሉትን ማጣቀሻዎች መጠቀም ይችላሉ-
www.i2c-bus.org
learn.sparkfun.com/tutorials/i2c
ደረጃ 3 አስፈላጊ ሞጁሎች እና አካላት
ይህንን መማሪያ ለማጠናቀቅ የሚያስፈልጉዎትን የአካል ክፍሎች ዝርዝር እዚህ ማግኘት ይችላሉ-
የኢቤይ አገናኞች ፦
- 1 x አርዱዲኖ ኡኖ
- 1 x OLED ሞዱል 128x64:
- 4 x Dupont ኬብል
- 1 x Mini solderless breadboard:
የ Amazon.com አገናኞች
- 1 x Arduino Uno:
- 1 x OLED ሞዱል 128x64:
- 4 x ዱፖንት ኬብል
- 1 x Mini solderless የዳቦ ሰሌዳ
ደረጃ 4 - ለአርዱዲኖ የ OLED ማሳያ ሞዱል
ስለ I2C የነቁ መሣሪያዎች አንድ አስፈላጊ ማስታወሻ ከአርዱዲኖ ጋር ማገናኘት ያለብዎት መንገድ ሁሉም ተመሳሳይ ነው። ይህ የሆነበት ምክንያት አርዱዲኖ የ I2C ግንኙነቱን በተወሰኑ ፒኖች ላይ ብቻ ስለሚያካሂድ ነው። በዚህ መማሪያ ውስጥ አርዱዲኖ ኡኖን እጠቀማለሁ። አርዱዲኖ ኡኖ ፒን A5 ን እንደ SCK እና A4 እንደ ኤስዲኤ ይጠቀማል። ስለዚህ በስዕላዊ እይታ ላይ እንደሚታየው የ OLED ማሳያ ሞዱሉን ከአርዱዲኖ ኡኖ ጋር ማገናኘት እንችላለን። እኔ ከኦሌዲ ማሳያ ሞዱልዬ ባነሳሁት ሥዕል ውስጥ እንደሚመለከቱት ፣ ለቪሲሲ እና ለኤንዲኤን ማገናኛው ከሥዕላዊ እይታ የተለየ ነው። በትክክለኛው መንገድ ማገናኘቱን ለማረጋገጥ በሞጁሎችዎ ላይ ያሉትን የፒን ስያሜዎች መፈተሽን ያስታውሱ።
ከዚህ በታች እንደሚከተለው መገናኘት ያለባቸው 4 ፒኖች ብቻ እንፈልጋለን
አርዱዲኖ ቪሲሲ -> OLED ሞዱል ቪ.ሲ.ሲ
አርዱዲኖ GND -> OLED ሞዱል GND
አርዱዲኖ 4 -> OLED ሞዱል ኤስዲኤ
አርዱዲኖ 5 -> OLED ሞዱል አ.ማ
ደረጃ 5 የማሳያ ሞጁሉን አድራሻ ማግኘት
ከ I2C የነቃ መሣሪያ ጋር ለመገናኘት እንደ መጀመሪያ ደረጃ ፣ የሞጁሉ አድራሻ ሊኖርዎት ይገባል። ይህንን ለማድረግ ሞዱሉን ወደ አርዱዲኖ ካገናኙ በኋላ በአባሪዎ ላይ ያለውን ኮድ ብቻ መስቀል አለብዎት። ይህ ኮድ የ I2C ግንኙነትን ከሚይዝ ከአርዱዲኖ አይዲኢ ጋር የተካተተ ቤተ -መጽሐፍት የሆነውን የሽቦ ቤተ -መጽሐፍትን ያጠቃልላል። የተገናኙትን I2C መሳሪያዎችን ለመቃኘት ይሞክራል እና አድራሻቸውን በተከታታይ ወደብ በኩል ወደ ኮምፒተርዎ ይልካል። ስለዚህ ውጤቱን በአርዲኖ አይዲኢ ውስጥ በተከታታይ መቆጣጠሪያ መሣሪያ በኩል መድረስ ይችላሉ። የመጀመሪያው ሥሪት በአርዱዲኖ መጫወቻ ሜዳ ላይ ይገኛል)። እንዲሁም በመስመር ላይ አርዱዲኖ አርታኢዬ ውስጥ የበለጠ ሊነበብ በሚችል መንገድ ሊያዩት ይችላሉ። ይህ ኮድ በሚሠራበት ጊዜ በማያ ገጹ ላይ ምንም ነገር እንዲታይ አይጠብቁ።
በሥዕሉ ላይ እንደሚመለከቱት ፣ የእኔ ሞዱል 0x3C አድራሻ ላይ ተይ isል። በተለምዶ በአንድ የተወሰነ የምርት መስመር ውስጥ ያሉ ሁሉም መሣሪያዎች (ለምሳሌ ሁሉም 128x64 OLED ሞጁሎች) ተመሳሳይ አድራሻ አላቸው።
የ I2C መሣሪያዎች ተጨማሪዎች ከ 1 እስከ 126 ድረስ ተገድበዋል። ይህ ኮድ እያንዳንዱን መሣሪያ በቅደም ተከተል ለማገናኘት ይሞክራል (ምንም ውሂብ ሳያስተላልፍ) እና ከዚያ ከተሰጠው አድራሻ ጋር በመገናኘት ላይ ባለው ቤተ -መጽሐፍት ሪፖርት የተደረገ ስህተት ካለ ያረጋግጡ። ስህተት ከሌለ አድራሻውን ለማገናኘት እንደ የሚገኝ ሞዱል ያትማል። እንዲሁም የመጀመሪያዎቹ 15 አድራሻዎች የተያዙ መሆናቸውን ልብ ሊባል ይገባል ፣ ስለሆነም በላዩ ላይ ዘልሎ ከዚህ ክልል በላይ ያሉትን ያትማል። ያስታውሱ የእነዚህ I2C ሞጁሎች አድራሻ በመሣሪያው ላይ ከባድ ኮድ ያለው እና ሊለወጥ አይችልም። ስለዚህ በሚቀጥለው ጊዜ የቃnerውን ኮድ ማስኬድ አስፈላጊ እንዳይሆን ወደ ላቦራቶሪ መደርደሪያዎ በሚመልሱበት ጊዜ በሆነ ቦታ መፃፍ ወይም በሞጁሉ ላይ መለያ ማድረጉ ጥሩ ሀሳብ ነው። ሆኖም የተወሳሰበ አሰራር አይደለም ፤)
ደረጃ 6: በ OLED ሞዱል ላይ መረጃን ለማሳየት የሚያስፈልጉ ቤተ -ፍርግሞችን መጫን ያስፈልጋል
የሽቦ ቤተ -መጽሐፍት ከ I2C መሣሪያዎች ጋር በዝቅተኛ ደረጃ ግንኙነትን ማስተናገድ ይችላል። ከእሱ/ከእሱ መረጃ ለማንበብ/ለመፃፍ ከአንድ የተወሰነ መሣሪያ ጋር ለመገናኘት ሲፈልጉ በተለምዶ ያንን ሞጁል በሠራው ኩባንያ የቀረበ ቤተመጽሐፍት ይጠቀማሉ። ይህ ቤተ -መጽሐፍት ሁሉንም የ I2C የግንኙነት ዝርዝሮችን በተሰጠው ሞጁል ያስተናግዳል እናም በዚህ ሁኔታ ውሂቡን በፈለግነው መንገድ በሚያሳየው በንግድ ሥራችን ላይ የበለጠ እናተኩር።
በእንደዚህ ዓይነት የማሳያ ሞጁሎች የመጀመሪያውን ስሪት ያመረተው ኩባንያው አዳፍ ፍሬዝ በእነዚህ ሞኖክሮሞች ማሳያዎች ላይ መረጃን ለማሳየት Adafruit SSD1306 የተባለ ቤተ -መጽሐፍትን ይሰጣል። ስለዚህ ኮድ መስጠትን ከመጀመራችን በፊት ይህንን ቤተመጽሐፍት በአርዲኖ አይዲኢ ውስጥ በቤተመጽሐፍት አቀናባሪ (በ Sketch በኩል ተደራሽ> ቤተ -መጽሐፍትን አካትት> ቤተ -መጽሐፍቶችን አስተዳድር… ምናሌ) በኩል መጫን አለብን። የበለጠ ዝቅተኛ ደረጃ ግራፊክ ነገሮችን የሚያስተናግድ እና በአዳፍ ፍሬድ SSD1306 ውስጥ በውስጥ ጥቅም ላይ የሚውል ሌላ ቤተ -መጽሐፍት አለ። በስዕሎቹ ላይ እንደሚመለከቱት ሁለቱም በአርዱዲኖ አይዲኢ ላይ እንዲጫኑ ያስፈልግዎታል።
ደረጃ 7 የማሳያ ሞጁሉን ማስጀመር
በማሳያ ሞዱል ላይ መሳል Adafruit_SSD1306 በሚባል ክፍል ውስጥ ተጠቃልሏል። የዚህ ክፍል ትርጓሜ በአዳፍረስ ቤተ -መጽሐፍት ላይ ነው ፣ ስለዚህ መጀመሪያ ያንን ቤተ -መጽሐፍት ማካተት አለብን። ከዚያ በመጀመሪያ የዚህን ክፍል ምሳሌ ማንቃት አለብን። የዚህ ክፍል ገንቢ ማሳያው እንደገና ሊጀመርበት የሚችልበትን የወደብ ቁጥር ይወስዳል (ፒሲ 4) (ከ SCK ጋር የተገናኘ)። ይህ የኮዱ ክፍል በፋይሉ መጀመሪያ ላይ (ከማዋቀር () እና ከሉፕ () ተግባራት) የሚገኝ መሆን አለበት።
#ያካትቱ
Adafruit_SSD1306 ማሳያ (4);
አሁን በማዋቀር () ተግባር ውስጥ የእኛን I2C አድራሻ ከዚህ በታች በማሳየት የማሳያውን ጅምር ተግባር መደወል አለብን (SSD1306_SWITCHCAPVCC የኃይል ምንጩን ዓይነት ወደ ቤተ -መጽሐፍት የሚገልጽ የማያቋርጥ እሴት ነው)
ባዶነት ማዋቀር () {
display.begin (SSD1306_SWITCHCAPVCC ፣ 0x3C); display.display (); } ባዶነት loop () {} // loop ለአሁን ባዶ ሊሆን ይችላል
አሁን የማሳያው ነገር ዝግጁ ነው እና ተግባሮቹን (ለምሳሌ ማሳያ። መጻፍ () ፣ ማሳያ.drawLine ፣ ወዘተ) ብለን መጥራት እንችላለን። አስፈላጊው ማስታወሻ በማሳያችን ነገር ላይ በመደወል አንድ ነገር በሳልን ቁጥር ትክክለኛው ስዕል በሃርድዌር ደረጃ ላይ እንዲከሰት ለማድረግ የ display.display () ተግባርን መደወል አለብን። ይህ በዋናነት እኛ የምንጠራው የስዕል ተግባራት በእውነቱ ምክንያት በአፈፃፀም ምክንያቶች የማሳያውን “ትውስታ ውስጥ” ውክልና በማዘመን ነው። እሱ በእውነቱ የማስታወስ ለውጦችን ይይዛል። ስለዚህ በማያ ገጹ ላይ የሆነ ነገር መሳል ስንጨርስ የማሳያውን () ተግባር ለመጥራት ሁል ጊዜ ማስታወስ አለብን።
display.write (…); // በማስታወስ ውስጥ ማዘመኑን ይቀጥላል
display.drawLine (…); // በማስታወስ ውስጥ ማዘመኑን ይቀጥላል። display.display (); // ሁሉንም ለውጦች በማሳያ ሃርድዌር ላይ ያጠፋል
በዚህ ደረጃ ኮድዎን ለመስቀል ከሞከሩ ፣ የአዳፍሮት ኢንዱስትሪዎች አርማ እንደሚታይ ያስተውላሉ። ያንን ለመሳል ማን እንደጠየቀው ትገረም ይሆናል! በእውነቱ ይህ የአዳፍሬው ቤተ -መጽሐፍት የሚያደርገው ነው። ከዚህ ኩባንያ አርማ ጋር የሞዱሉን ማህደረ ትውስታ (የማሳያ ሃርድዌር ማህደረ ትውስታ ውክልና) ያስጀምራል። ያንን በጀማሪው ጊዜ ማየት ካልፈለጉ በማዋቀር ተግባርዎ ውስጥ ማሳያ.ዲፕሎማ () ከመደወልዎ በፊት ወዲያውኑ የ display.clearDisplay () ተግባርን ለመደወል መሞከር ይችላሉ። ይህ ተግባር ስሙ እንደሚያመለክተው ማሳያውን ሙሉ በሙሉ ያጸዳል።
#ያካትቱ
Adafruit_SSD1306 ማሳያ (4); ባዶነት ማዋቀር () {display.begin (SSD1306_SWITCHCAPVCC ፣ 0x3C); display.clearDisplay (); display.display (); } ባዶነት loop () {}
በ Adafruit_SSD1306 ቤተ -መጽሐፍት ሰነዶች ላይ በመመስረት ፣ በዚህ ክፍል የቀረቡትን የተለያዩ ተግባሮችን በመጠቀም ማሳያ ላይ ለመሳል ወይም በላዩ ላይ ፒክሴሎችን በቀጥታ ለማንቀሳቀስ ይችላሉ። በሚቀጥሉት ክፍሎች ስለሚሠራበት መንገድ ሀሳብ እንዲኖርዎት ለእያንዳንዳቸው ምሳሌ ለማቅረብ እንሞክራለን። አብዛኛዎቹ እነዚህ ምሳሌዎች ቀለል ያሉ የማይንቀሳቀሱ ይዘቶችን ብቻ ያሳያሉ ፣ ስለዚህ እኛ በቅንብር () ተግባራችን ውስጥ (ከመነሻ ኮድ በኋላ) ውስጥ ልናስቀምጣቸው እንችላለን። ይህን በማድረግ አንድ ጊዜ ብቻ ይሮጣል እና እዚያ ይቆያል።
ደረጃ 8 ቀላል ጽሑፍን ያሳዩ
ጽሑፍ ለማሳየት ፣ የቤተመፃሕፍቱን ቀላል ማሳያ.println () ተግባር ልንጠቀም እንችላለን። ጽሑፉን እንደ ሕብረቁምፊ ተቀብሎ ለማሳየት ይሞክራል። በማሳያው ላይ ጽሑፉን የት እንደምናቀርብ ለቤተ -መጽሐፍት መንገር እንዳለብን ማወቅ አስፈላጊ ነው። በማሳያው ላይ ያለው እያንዳንዱ ፒክሰል ከ X እና Y ጋር የተገለጸ ቅንጅት አለው ኤክስ ከግራ ወደ ቀኝ ያድጋል እና Y ከላይ ወደ ታች ይጨምራል። የማያ ገጹ የላይኛው ግራ ጥግ (X = 0 ፣ Y = 0) እና የታችኛው ቀኝ ጥግ (X = 127 ፣ Y = 63) ነው። በመጀመሪያው ሥዕል ላይ የማዕዘኖቹን መጋጠሚያዎች አስተውያለሁ። በማሳያው ላይ ጽሑፉን የት እንደምናሳይ ለመግለጽ የ display.setCursor () ተግባርን መጠቀም እንችላለን።
ሌላው የጽሑፉ ንብረት የእሱ ቀለም ነው። በሚከተለው ናሙና ላይ እንደሚታየው ማሳያ.setTextColor () ን በመጠቀም ቀለሙን መግለፅ እንችላለን።
display.clearDisplay ();
display.setTextColor (ነጭ); display.setCursor (35, 30); display.println ("ሰላም ዓለም!"); display.display ();
እንዲሁም አንድ ነጠላ ገጸ -ባህሪን ለማሳየት የ display.write () ተግባርን መጠቀም እንችላለን። የቁምፊን ኮድ እንደ uint8_t ዓይነት ይቀበላል እና ከዚያ ኮድ ጋር የሚዛመደውን ቁምፊ በሕብረቁምፊው ላይ ያሳያል። እንደ ምሳሌ ፣ ይህንን ተግባር በመጠቀም ተመሳሳዩን ሕብረቁምፊ ለማሳየት ከፈለግን ፣ የሚከተለውን ቅንጥብ መጠቀም እንችላለን።
display.clearDisplay ();
display.setTextColor (ነጭ); display.setCursor (35, 30); ማሳያ. ጻፍ (72); ማሳያ. ጻፍ (101); ማሳያ. ጻፍ (108); ማሳያ. ጻፍ (108); ማሳያ. ጻፍ (111); ማሳያ. ጻፍ (32); ማሳያ. ጻፍ (87); ማሳያ. ጻፍ (111); ማሳያ. ጻፍ (114); ማሳያ. ጻፍ (108); ማሳያ. ጻፍ (100); ማሳያ. ጻፍ (33); display.display ();
እንዲሁም ነጭ ዳራ ባላቸው ጥቁር ቀለም ጽሑፎችን መሳል ይቻላል። ይህንን ለማድረግ ወደ ማሳያ.
display.clearDisplay ();
// ቀለሙን ከነጭ የጀርባ ማሳያ ጋር ያዘጋጃል። setTextColor (ጥቁር ፣ ነጭ); display.setCursor (25, 30); display.println ("የተገለበጠ ጽሑፍ!"); display.display ();
እንዲሁም ማሳያ.setTextSize () ተግባርን በመጠቀም የጽሑፉን መጠን የማዋቀር አማራጭ አለዎት። ኢንቲጀር ቁጥርን እንደ መጠን ይቀበላል። ቁጥሩ ይበልጣል ፣ ጽሑፉ ትልቅ ይሆናል። አነስተኛው መጠን 1 ነው ፣ ይህም የጽሑፎች ነባሪ መጠን ነው። የሚከተለው ኮድ “ሀ” የሚለውን ፊደል በ 6 የተለያዩ መጠኖች ለመጻፍ ይሞክራል
display.clearDisplay ();
display.setTextColor (ነጭ); display.setCursor (0, 0); display.setTextSize (1); display.print ("A"); display.setTextSize (2); display.print ("A"); display.setTextSize (3); display.print ("A"); display.setTextSize (4); display.print ("A"); display.setTextSize (5); display.print ("A"); display.setTextSize (6); display.print ("A"); display.display ();
ደረጃ 9 መሰረታዊ ቅርጾችን መሳል
እንደ አራት ማዕዘን ፣ ክብ ፣ ሦስት ማዕዘን ፣ መስመር ወይም ነጥብ ያሉ መሰረታዊ ቅርጾችን መሳል በጣም ቀላል እና ለእያንዳንዱ የወሰነ ተግባር አለ።
የስዕል መስመር
መስመር ለመሳል ማሳያ.drawLine (startX ፣ startY ፣ endX ፣ endY ፣ color) ብለው መደወል ይችላሉ። ለምሳሌ የሚከተለው ኮድ ትልቅ ኤክስ እንዲቀርጹ በማያ ገጹ ውስጥ ሰያፍ መስመሮችን ይስላል።
display.clearDisplay ();
display.drawLine (0 ፣ 0 ፣ display.width () - 1 ፣ display.height () - 1 ፣ WHITE); display.drawLine (display.width () - 1, 0, 0, display.height () - 1, WHITE); display.display ();
የማሳያ ስፋት () እና የማሳያ ቁመት () ተግባሮችን በመጠቀም የማሳያውን ስፋት እና ቁመት መድረስ ይችላሉ። ይህን በማድረግ ኮድዎ ከማያ ገጹ መጠን ነፃ ይሆናል።
አራት ማዕዘን ስዕል መሳል
አራት ማእዘን ለመሳል ተግባሩ ማሳያ ነው። በአንዳንድ የዘፈቀደ ቦታዎች ላይ ሦስት አራት ማዕዘንን የሚስጥር ኮድ እዚህ አለ
display.clearDisplay ();
display.drawRect (100 ፣ 10 ፣ 20 ፣ 20 ፣ ነጭ); display.fillRect (10 ፣ 10 ፣ 45 ፣ 15 ፣ ነጭ) ፤ display.drawRoundRect (60, 20, 35, 35, 8, WHITE); display.display ();
ማሳያ. እንዲሁም በዚህ ምሳሌ ውስጥ ያለው ሦስተኛው ተግባር ማሳያ ነው። የማዕዘን ራዲየስን የሚያመለክተው ኢንቲጀር ቁጥር ከሆነው ቀለም በፊት ተጨማሪ ግቤትን ይቀበላል። ትልቁ እሴት ክብ ጥግ ጥግ ነው። እንዲሁም እሱ የሚያደርገውን ሊገምቱ የሚችሉ ይመስለኛል display.drawFillRoundRect የሚባል ተጓዳኝ የመሙላት ተግባር አለው።
የስዕል ክበብ
ተግባሩ ማሳያ.drawCircle (centerX ፣ centerY ፣ ራዲየስ ፣ ቀለም) ነው። ፈገግታ የሚመስል ቅርፅን የሚስብ ምሳሌ እዚህ አለ-
display.drawCircle (60 ፣ 30 ፣ 30 ፣ ነጭ);
display.fillCircle (50 ፣ 20 ፣ 5 ፣ ነጭ) ፤ display.fillCircle (70 ፣ 20 ፣ 5 ፣ ነጭ) ፤
ልክ እንደ አራት ማዕዘኖች ፣ በተሰጠው ቀለም የተሞላ ክበብ ለመሳል የማሳያውን.ፊል ክበብ ተግባርን መጠቀም ይችላሉ።
ባለ ሦስት ማዕዘን ስዕል
አህ ፣ እንደገና ማሳያ።
display.drawTriangle (24, 1, 3, 55, 45, 55, WHITE);
display.fillTriangle (104, 62, 125, 9, 83, 9, WHITE);
ነጥብ ይሳሉ
እንዲሁም በማሳያው ላይ አንድ የተወሰነ ነጥብ (ፒክስል ተብሎ የሚጠራው) በማሳያ ።drawPixel (pixelX ፣ pixelY ፣ color) ተግባር በኩል መቀባት ይችላሉ።
display.drawPixel (20, 35, WHITE);
display.drawPixel (45, 12, WHITE); display.drawPixel (120, 59, WHITE); display.drawPixel (97, 20, WHITE); display.drawPixel (35, 36, WHITE); display.drawPixel (72, 19, WHITE); display.drawPixel (90, 7, WHITE); display.drawPixel (11, 29, WHITE); display.drawPixel (57, 42, WHITE); display.drawPixel (69, 34, WHITE); display.drawPixel (108, 12, WHITE);
ደረጃ 10 የስዕል ስዕል
ምስልን መሳል የተለየ እና ትንሽ የተወሳሰበ ነው። የማሳያ ሞጁሉ ባለአንድ ቀለም እንደመሆኑ ፣ መጀመሪያ ምስላችንን ወደ ሞኖ ቀለም ቢትማፕ (ጥቁር እና ነጭ ተብሎም ይጠራል) ወደሚለው ቅርጸት መለወጥ አለብን። በእንደዚህ ዓይነት ቅርጸት እያንዳንዱ የምስሉ ፒክሴል በ 0 ወይም በ 1 ቀርቧል። 1 ዎች የቀለሙን መኖር ይወክላሉ እና 0 ዎች ማለት ባዶ ቦታ ማለት ነው። በዚህ ክፍል አናት ላይ በዚህ ቅርጸት የአርዲኖ አርማ ምሳሌን ማየት ይችላሉ። የቢትማፕ ምስልን ለመሳል ተግባር ማሳያ.drawBitmap (topLeftX ፣ topLeftY ፣ imageData ፣ ስፋት ፣ ቁመት ፣ ቀለም) ነው። የምስል ዳታ ልኬት በባይቶች ውስጥ የቁጥሮች ድርድር ነው። እያንዳንዱ ባይት 8 ቢት አለው ፣ ስለዚህ እያንዳንዱ ባይት የምስሉን 8 ፒክሰሎች ውሂብ ይ containsል። የምስሉን ስፋት እና ቁመት በመለየት ፣ የ drawBitmap ተግባር ቀጣዩ የፒክሴሎች ረድፍ ከየትኛው ቢት እንደሚጀምር ያውቃል።
ምስሌን ወደዚህ ቅርጸት ለመቀየር የመረጥኩት መፍትሔ መጀመሪያ በመስመር ላይ አንዱን “ምስል ወደ ASCII ለዋጮች” (ለምሳሌ https://my.asciiart.club) በመጠቀም ምስሌን ወደ ASCII ቁምፊዎች ስብስብ መለወጥ እና ከዚያ መተካት ነበር። በባዶ ቦታ በ 0 እና በሌሎች በ 1. ጥቅም ላይ የዋሉ ገጸ -ባህሪዎች 1. ያ ከታች ያዩታል። እያንዳንዱን 0 እና 1 በማሳያው ላይ እንደ ፒክሰል አድርገው ማሰብ ይችላሉ። ስለዚህ የስዕሉ መጠን 128x64 ከሆነው የማሳያችን መጠን መብለጥ የለበትም።
ማሳሰቢያ -ይህንን የ ASCII ቴክኒክ መጠቀም የሚመከር አካሄድ አይደለም ምክንያቱም በባህሪያት ገጽታ ጥምርታ ምክንያት ምስልዎ ይለወጣል (ቁምፊዎች ካሬ አይደሉም)። ምስሉን ወደ አስፈላጊው ቅርጸት መለወጥ ቀላል ስለሚያደርግ ብቻ ይህንን ዘዴ ሞክሬያለሁ። አለበለዚያ ከዚህ ጽሑፍ ወሰን ውጭ የሆኑ አንዳንድ ፕሮግራሞችን በመጠቀም ወይም አንዳንድ የፍጆታ መተግበሪያዎችን በመጠቀም የተሻለውን ውጤት ማግኘት ይቻል ነበር።
00000000000000000000011111111111111111111110000000000000000000000000000000000000011111111111111111111111111111100000000000000000 0000000000000111111111111111111111111111111111111110000000000000 0000000000011111111111111111111111111111111111111111100000000000 0000000001111111111111111111111111111111111111111111111000000000 0000000111111111111111111111111111111111111111111111111110000000 0000011111111111111111111111111111111111111111111111111111100000 0000111111111111111111111111111111111111111111111111111111110000 0001111111111111111111111111111111111111111111111111111111111000 0011111111111111111111111111111111111111111111111111111111111100 0111111111111111000000011111111111111111100000001111111111111110 0111111111110000000000000001111111111000000000000000111111111110 1111111111000000001111000000001111000000001111000000001111111111 1111111110000011111111111100000110000011111111111100000111111111 1111111100000111111111111111000000001111111001111110000011111111 1111111100001111100000011111100000011111100000011111000011111111 1111111100001111100000011111100000011111100000011111000011111111 1111111100000111111111111111000000001111111001111110000011111111 1111111110000011111111111100000110000011111111111100000111111111 1111111111000000001111000000001111000000001111100000001111111111 0111111111110000000000000000111111110000000000000000111111111110 0111111111111111000000001111111111111111000000001111111111111110 0011111111111111111111111111111111111111111111111111111111111100 0001111111111111111111111111111111111111111111111111111111111000 0000111111111111111111111111111111111111111111111111111111110000 0000011111111111111111111111111111111111111111111111111111100000 0000000111111111111111111111111111111111111111111111111110000000 0000000011111111111111111111111111111111111111111111111100000000 0000000000011111111111111111111111111111111111111111100000000000 0000000000000111111111111111111111111111111111111110000000000000 0000000000000000111111111111111111111111111111110000000000000000 0000000000000000000001111111111111111111111000000000000000000000
አሁን ባይት በመወከል እያንዳንዱን መስመር በ 8 መከፋፈል እና ከዚህ በታች ባለው ድርድር ውስጥ ማከማቸት አለብን።
የማይንቀሳቀስ const ያልተፈረመ ቻር PROGMEM arduino_logo = {
B00000000 ፣ B00000000 ፣ B00000111 ፣ B11111111 ፣ B11111111 ፣ B11100000 ፣ B00000000 ፣ B00000000 ፣ B00000000 ፣ B00000000 ፣ B01111111 ፣ B11111111 ፣ B11111111 ፣ B11111110 ፣ B00000000 ፣ እስከ መጨረሻ ድረስ ፣
ከዚያ የ drawBitmap ተግባርን በመደወል በማሳያው ላይ መሳል እንችላለን።
display.drawBitmap (32 ፣ 16 ፣ arduino_logo ፣ 64 ፣ 32 ፣ WHITE);
ደረጃ 11 - መላ መፈለግ
ይህ ረጅም አጋዥ ስልጠና ነበር እና ስለዚህ የሆነ ነገር ስህተት ሊሆን ይችላል። ለፕሮጀክትዎ የ OLED ማሳያ ሞዱል ሲያዘጋጁ ሊያጋጥሟቸው የሚችሉ አንዳንድ የተለመዱ ስህተቶች ዝርዝር እዚህ አለ (አንዳንዶቹ ይህንን አጋዥ ስልጠና ሲያዘጋጁ ለእኔ ተከሰቱ)።
በጭራሽ ምንም እየታየ አይደለም
ይህ በብዙ ምክንያቶች ሊከሰት ይችላል ስለዚህ በፕሮጀክትዎ ውስጥ ሊከሰት የሚችለውን የሚከተለውን ዝርዝር እንዲመለከቱ እመክራለሁ-
የ I2C አድራሻ ምናልባት የተሳሳተ ነው
የማሳያ ነገርዎን ሲያቀናብሩ በ i2c- ስካነር ኮድ ውስጥ ያገኙትን አድራሻ ማቀናበሩን ያረጋግጡ።
SCL እና SDA በተሳሳተ መንገድ ተገናኝተዋል
ይህ በእውነቱ ለእኔ ሆነ። አርዱዲኖ ኡኖን የሚጠቀሙ ከሆነ ከእኔ ጋር መገናኘታቸውን ለማረጋገጥ ግንኙነቶችዎን እንደገና መፈተሽ አለብዎት። ሌላ የአርዱዲኖ እትም (ለምሳሌ ሜጋ ፣ ሊዮናርዶ ፣ ወዘተ) የሚጠቀሙ ከሆነ ፣ I2C ን ወደ ሌሎች ፒኖች የተቀናበሩ ሊሆኑ እንደሚችሉ ማወቅ አለብዎት። በገመድ ቤተ -መጽሐፍት ሰነዶች ላይ ማረጋገጥ ይችላሉ።
ከሚታየው አካባቢ የሆነ ነገር እየሳቡ ነው
ይህ የሶፍትዌር ጉዳይ ነው። አንዳንድ መጋጠሚያዎችን በተሳሳተ መንገድ ለማስላት የስዕል ተግባሮችን ሲጠቀሙ በጣም የተለመደ ነው እና ስለዚህ የእርስዎ ስዕል ተበላሽቷል ወይም በከፋ ሁኔታ ውስጥ ሙሉ በሙሉ ከትዕይንቱ ውጭ ሊሆን ይችላል። ስሌቶችዎን ይገምግሙ እና ምን እየሆነ እንዳለ ለማየት በደረጃ ስዕል አንድ እርምጃ ለማድረግ ይሞክሩ።
ጽሑፍ በጭራሽ እየታየ አይደለም
የጽሑፉን ቀለም ማቀናበር ረስተዋል ወይም ወደ የተሳሳተ እሴት አዘጋጅተውታል
ጽሑፎችን ከመሳልዎ በፊት setTextColor ን መደወል ያስፈልግዎታል። አለበለዚያ ምንም ስህተቶች የሉዎትም ፣ ግን በማሳያው ላይ ምንም አያዩም። እንዲሁም የጽሑፍ ቀለሙን ከበስተጀርባው ቀለም ጋር ተመሳሳይ አድርገው ያዘጋጁ ይሆናል።
በጣም ትልቅ ቅርጸ -ቁምፊ እየተጠቀሙ ነው
የጽሑፉን መጠን ወደ በጣም ትልቅ እሴት ካዋቀሩት ቁምፊዎች ከሚታየው አካባቢ ሙሉ በሙሉ መውጣት ይችሉ ይሆናል።
ስለ ማሳያ መጠን የማጠናቀር ስህተት አለ
ይህ ለእኔም ሆነ ለአብዛኞቻችሁ የሚሆን ይመስለኛል። በእኛ ስክሪፕት አናት ላይ የምናካትተው በአርዕስት ፋይል Adafruit_SSD1306.h ውስጥ በተገለጹት የማሳያ መጠን ቋሚ እሴቶች ምክንያት ነው። ይህ ፋይል የሚገኘው በ {your-project-folder} libraries / Adafruit_SSD1306 / Adafruit_SSD1306.h ላይ ነው። ይህንን ፋይል ከከፈቱ የ OLED ማሳያ ሞዱል መጠንዎን የሚወክለውን ቋሚ ብቻ ማቃለል እንዳለብዎት የሚገልጽበት የአስተያየት ክፍል እንዳለ ያስተውላሉ። ለ 128x64 ማሳያ ሞጁሎች ፣ መስመሩ #define SSD1306_128_64 ያልተመረመረ መሆን አለበት።
/*=====================================================================
SSD1306 ማሳያዎች ---------------------------------------------------- ---------------------- ሾፌሩ በበርካታ ማሳያዎች (128x64 ፣ 128x32 ፣ ወዘተ) ውስጥ ጥቅም ላይ ውሏል። ተገቢ መጠን ያለው ክፈፍ ፣ ወዘተ ለመፍጠር ከዚህ በታች ተገቢውን ማሳያ ይምረጡ SSD1306_128_64 128x64 የፒክሰል ማሳያ SSD1306_128_32 128x32 የፒክሰል ማሳያ SSD1306_96_16 --------------------------- --------------------------------------------* / #መለየት SSD1306_128_64 / / #መግለፅ SSD1306_128_32 // #ዲዲኤስኤስዲ1306_96_16 /*======================================= =======================================*/
ደረጃ 12 ቀጥሎ ምን ይደረግ?
የ OLED ማሳያ እንደ የውጤት ሞዱል ለትርፍ ጊዜ ማሳለፊያዎችዎ ፕሮፌሽናል የሚመስል በይነገጽ ለማቅረብ ትልቅ ዕድል ይሰጥዎታል። በእሱ ላይ ትርጉም ያለው ውሂብ ለማሳየት ወይም ተጠቃሚው ምን እየሆነ እንደሆነ ወይም እሱ/እሷ አንድ ነገር ማድረግ ቢያስፈልገው ለመርዳት ሀሳቦችን እንደ መነሻ ነጥብ ለመከተል መሞከር ይችላሉ። በአንዳንድ ኤልኢዲዎች በኩል የፕሮጀክት/መሣሪያን ሁኔታ ከመተርጎም ይልቅ አንድ ተጠቃሚ በማሳያው ላይ መልእክት እንዲያነብ የበለጠ ግልፅ ይሆናል።
እንደ መነሻ ነጥብ ማድረግ የሚችሉት ምናልባት
- የሙቀት ዳሳሽ ዋጋን ያንብቡ እና በ OLED ሞዱል ላይ ያሳዩት። በእሱ ላይ ግፊት ወይም እርጥበት ዳሳሽ ማከል እና ሙሉ በሙሉ የሚሰራ የአየር ሁኔታ ጣቢያ ፕሮጀክት መፍጠር ይችላሉ።
- ጆይስቲክ ሞጁልን እንደ የግቤት መሣሪያ በመጠቀም በማሳያ ሞዱል ላይ የሆነ ነገር ለመሳል ይሞክሩ።
- በተግባራዊ ጥሪዎች/አርዲኖ ማቋረጫ ቅደም ተከተል በማሳያው ላይ አኒሜሽን ለመሳል ይሞክሩ
- በስርዓትዎ ጅምር ላይ (ከአዳፍ ፍሬዝ አርማ ይልቅ) ብጁ አርማዎን ያሳዩ
በአስተያየቶች ላይ መንገርዎን አይርሱ ፣ የ OLED ማሳያ ሞዱሉን በመጠቀም ምን ያደርጋሉ (ወይም አስቀድመው ያደረጉት)።
የሚመከር:
አርዱinoኖ 1.3 ኢንች OLED ማሳያ SH1106: 7 ደረጃዎች እንዴት እንደሚጠቀሙ
አርዱinoኖ 1.3 ኢንች OLED ማሳያ SH1106 ን እንዴት መጠቀም እንደሚቻል - በዚህ መማሪያ ውስጥ 1.3 ኢንች OLED ማሳያ SH1106 አርዱinoኖ እና ቪሱinoኖ ሶፍትዌርን እንዴት መጠቀም እንደሚቻል እንማራለን። ቪዲዮውን ይመልከቱ
ቀላል የአፈር እርጥበት ዳሳሽ አርዱinoኖ 7 ክፍል ማሳያ 4 ደረጃዎች (ከስዕሎች ጋር)
ቀላል የአፈር እርጥበት ዳሳሽ አርዱinoኖ 7 ክፍል ማሳያ -ሰላም! ማግለል ከባድ ሊሆን ይችላል። በቤቱ ውስጥ ትንሽ ግቢ እና የተትረፈረፈ ዕፅዋት በማግኘቴ እድለኛ ነኝ እናም ይህ ቤት ውስጥ ተጣብቄ ሳለሁ እነሱን በደንብ ለመንከባከብ የሚረዳኝ ትንሽ መሣሪያ መሥራት እችል ነበር ብዬ አስቤ ነበር። ይህ ፕሮጀክት ቀላል እና አዝናኝ ነው
ከአርዱዲኖ ኡኖ እና ከ OLED 0.96 SSD1306 ማሳያ ጋር ረጅም ጨዋታ ይጫወቱ ማሳያ 6 ደረጃዎች
ከአርዱዲኖ ኡኖ እና ከ OLED 0.96 SSD1306 ማሳያ ጋር ረዥም ጨዋታ ይጫወቱ -ሠላም ዛሬ እኛ ከአርዱዲኖ ጋር የONGንግ ጨዋታ እንሠራለን። እኛ ጨዋታውን ለማሳየት የ adafruit ን የ 0.96 ባለቀለም ማሳያ እንጠቀማለን &; ጨዋታውን ለመቆጣጠር የግፊት ቁልፎች
የቤት ማስጠንቀቂያ - አርዱinoኖ + የደመና መልእክት በትልቁ ማሳያ ላይ - 14 ደረጃዎች (ከስዕሎች ጋር)
የቤት ማስጠንቀቂያ - አርዱinoኖ + የደመና መልእክት በትልቅ ማሳያ ላይ - በሞባይል ስልኮች ዕድሜ ሰዎች ለጥሪዎችዎ 24/7 ምላሽ ይሰጣሉ ብለው ይጠብቃሉ። ወይም … አይደለም። አንዴ ባለቤቴ ወደ ቤት እንደገባች ስልኩ በእጅ ቦርሳዋ ውስጥ እንደተቀበረ ይቆያል ፣ ወይም ባትሪው ጠፍጣፋ ነው። እኛ የመሬት መስመር የለንም። መደወል ወይም
በጣም ርካሹ አርዱinoኖ -- ትንሹ አርዱinoኖ -- አርዱዲኖ ፕሮ ሚኒ -- ፕሮግራሚንግ -- አርዱዲኖ ኔኖ 6 ደረጃዎች (ከስዕሎች ጋር)
በጣም ርካሹ አርዱinoኖ || ትንሹ አርዱinoኖ || አርዱዲኖ ፕሮ ሚኒ || ፕሮግራሚንግ || አርዱዲኖ ኔኖ …………………………. እባክዎን ለተጨማሪ ቪዲዮዎች የዩቲዩብ ቻናሌን ሰብስክራይብ ያድርጉ ……. .ይህ ፕሮጀክት ከመቼውም ጊዜ በጣም ትንሽ እና ርካሽ አርዱዲኖን እንዴት ማገናኘት እንደሚቻል ነው። በጣም ትንሹ እና ርካሽ አርዱዲኖ አርዱዲኖ ፕሮ ሚኒ ነው። እሱ ከአርዲኖ ጋር ይመሳሰላል