ዝርዝር ሁኔታ:

ከ OLED ማሳያ እና አርዱinoኖ ጋር መዝናናት -12 ደረጃዎች (ከስዕሎች ጋር)
ከ OLED ማሳያ እና አርዱinoኖ ጋር መዝናናት -12 ደረጃዎች (ከስዕሎች ጋር)

ቪዲዮ: ከ OLED ማሳያ እና አርዱinoኖ ጋር መዝናናት -12 ደረጃዎች (ከስዕሎች ጋር)

ቪዲዮ: ከ OLED ማሳያ እና አርዱinoኖ ጋር መዝናናት -12 ደረጃዎች (ከስዕሎች ጋር)
ቪዲዮ: ሆስፒታል ውስጥ በደህንነት ካሜራ የተቀረፁ አስገራሚ ቪዲዮዎች Abel Birhanu 2024, ሀምሌ
Anonim
ከ OLED ማሳያ እና አርዱinoኖ ጋር አዝናኝ
ከ OLED ማሳያ እና አርዱinoኖ ጋር አዝናኝ

ስለ OLED ማሳያ ቴክኖሎጂ በእርግጠኝነት እንደሰሙ እርግጠኛ ነኝ። በአንፃራዊነት አዲስ እና ከድሮው ኤልሲዲ ቴክኖሎጂ የተሻለ ጥራት ያለው ነው። በዚህ መማሪያ ውስጥ በገበያ ላይ ከሚገኙት በጣም የተለመዱ ነጠላ ቀለም የ OLED ማሳያ ሞጁሎች በአንዱ ላይ መረጃን ለማሳየት የሚያስፈልጉትን ደረጃዎች መገምገም እንፈልጋለን። በዚህ ሞዱል ላይ መረጃን ለማሳየት በተጓዳኝ የአዳፍ ፍሬዝ ቤተ -መጽሐፍት የቀረቡትን ተግባራት ለማብራራት እሞክራለሁ።

ደረጃ 1: ምን ዓይነት OLED ሞጁሎች ልንጠቀም ነው?

ምን ዓይነት OLED ሞጁሎች ልንጠቀም ነው?
ምን ዓይነት OLED ሞጁሎች ልንጠቀም ነው?
ምን ዓይነት OLED ሞጁሎች ልንጠቀም ነው?
ምን ዓይነት OLED ሞጁሎች ልንጠቀም ነው?
ምን ዓይነት OLED ሞጁሎች ልንጠቀም ነው?
ምን ዓይነት OLED ሞጁሎች ልንጠቀም ነው?

የ OLED ሞጁሎች በተለያዩ መጠኖች እና ባህሪዎች ውስጥ ይገኛሉ። በዚህ መማሪያ ውስጥ የምንጠቀምበት አንድ ሞኖ ቀለም 128x64 OLED ሞዱል ነው። ይህ ዓይነቱ ሞዱል በሚከተሉት መጠኖች ውስጥ ይገኛል (በስዕሎቹ ላይ ለማየት)

  • 128x64
  • 128x32
  • 96x16
  • 64x48
  • 64x32

እነዚህ ሁሉ ሞጁሎች የ I2C ፕሮቶኮልን ለግንኙነት አማካይነት ስለሚደግፉ ፣ የሁሉም ኮዱ እና ሽቦው በትክክል አንድ ነው። የሚያሳዩት ይዘቶች በላዩ ላይ በትክክል እንዲስማሙ ብቸኛው ልዩነት በኮድዎ ላይ ያለውን የማሳያ መጠን ግምት ውስጥ ማስገባት አለብዎት።

ደረጃ 2: I2C በ Nutshell ውስጥ

I2C በ Nutshell ውስጥ
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 ማሳያ ሞዱል

የገመድ አልባ OLED ማሳያ ሞዱል ወደ አርዱinoኖ
የገመድ አልባ OLED ማሳያ ሞዱል ወደ አርዱinoኖ
የገመድ አልባ OLED ማሳያ ሞዱል ወደ አርዱinoኖ
የገመድ አልባ OLED ማሳያ ሞዱል ወደ አርዱinoኖ
የገመድ አልባ OLED ማሳያ ሞዱል ወደ አርዱinoኖ
የገመድ አልባ OLED ማሳያ ሞዱል ወደ አርዱinoኖ
የገመድ አልባ OLED ማሳያ ሞዱል ወደ አርዱinoኖ
የገመድ አልባ OLED ማሳያ ሞዱል ወደ አርዱinoኖ

ስለ 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 ሞዱል ላይ መረጃን ለማሳየት የሚያስፈልጉ ቤተ -ፍርግሞችን መጫን ያስፈልጋል

በ OLED ሞዱል ላይ መረጃን ለማሳየት ቤተ -ፍርግሞችን መጫን ያስፈልጋል
በ OLED ሞዱል ላይ መረጃን ለማሳየት ቤተ -ፍርግሞችን መጫን ያስፈልጋል
በ OLED ሞዱል ላይ መረጃን ለማሳየት ቤተ -ፍርግሞችን መጫን ያስፈልጋል
በ 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 ማሳያ ሞዱሉን በመጠቀም ምን ያደርጋሉ (ወይም አስቀድመው ያደረጉት)።

የሚመከር: