ዝርዝር ሁኔታ:

በፓይዘን እና በእርስዎ Raspberry Pi's GPIO ፒን ብዙ LEDs ን መቆጣጠር 4 ደረጃዎች (ከስዕሎች ጋር)
በፓይዘን እና በእርስዎ Raspberry Pi's GPIO ፒን ብዙ LEDs ን መቆጣጠር 4 ደረጃዎች (ከስዕሎች ጋር)

ቪዲዮ: በፓይዘን እና በእርስዎ Raspberry Pi's GPIO ፒን ብዙ LEDs ን መቆጣጠር 4 ደረጃዎች (ከስዕሎች ጋር)

ቪዲዮ: በፓይዘን እና በእርስዎ Raspberry Pi's GPIO ፒን ብዙ LEDs ን መቆጣጠር 4 ደረጃዎች (ከስዕሎች ጋር)
ቪዲዮ: BigTreeTech - SKR 3 - Basics 2024, ህዳር
Anonim
በፓይዘን እና በእርስዎ Raspberry Pi's GPIO ፒኖች አማካኝነት ብዙ LEDs ን መቆጣጠር
በፓይዘን እና በእርስዎ Raspberry Pi's GPIO ፒኖች አማካኝነት ብዙ LEDs ን መቆጣጠር

ይህ አስተማሪ በ 4 RaspberryPi ላይ ብዙ የ GPIO ፒኖችን እንዴት መቆጣጠር እንደሚቻል ያሳያል 4 LEDs። እንዲሁም በፒቶን ውስጥ መለኪያዎች እና ሁኔታዊ መግለጫዎችን ያስተዋውቅዎታል።

ኤልኢዲ ለመቆጣጠር የእርስዎን Raspberry Pi GPIO ፒኖች በመጠቀም የእኛ ቀዳሚ አስተማሪ የ GPIO.output ትዕዛዙን በመጠቀም አንድ ኤልኢዲ እንዴት ማብራት እና ማጥፋት እንደሚቻል ያሳያል። ይህ አስተማሪ በወረዳዎ ላይ የበለጠ ቁጥጥርን እንዴት ማግኘት እንደሚችሉ ለማስተማር በዚያ እውቀት ላይ ይገነባል።

ደረጃ 1: የሚያስፈልግዎት

የሚያስፈልግዎት
የሚያስፈልግዎት
የሚያስፈልግዎት
የሚያስፈልግዎት

- RaspberryPi ከ Raspbian ጋር ቀድሞውኑ ተጭኗል። እንዲሁም ሞኒተር ፣ አይጥ እና ቁልፍ ሰሌዳ በመጠቀም ወይም በርቀት ዴስክቶፕ በኩል Pi ን መድረስ መቻል ያስፈልግዎታል። ማንኛውንም የ Raspberry Pi ሞዴል መጠቀም ይችላሉ። ከ Pi ዜሮ ሞዴሎች ውስጥ አንዱ ካለዎት አንዳንድ የራስጌ ፒኖችን ወደ ጂፒዮ ወደብ መሸጥ ይፈልጉ ይሆናል።

- ቀይ ፣ ሰማያዊ ፣ ቢጫ እና አረንጓዴ ኤልኢዲዎች

- የማይሸጥ ፕሮቶታይፒንግ የዳቦ ሰሌዳ

- 4 x 330 ohm Resistors

- አንዳንድ ወንድ ወደ ሴት ዝላይ ሽቦዎች

ደረጃ 2 - ወረዳዎን ይገንቡ

ወረዳዎን ይገንቡ
ወረዳዎን ይገንቡ
ወረዳዎን ይገንቡ
ወረዳዎን ይገንቡ

አንዳቸውም የመሪዎቹ ክፍሎች የሚነኩ አለመሆናቸው እና ኤልዲዎቹ በትክክለኛው መንገድ መገናኘታቸውን በማረጋገጥ በዳቦ ሰሌዳዎ ላይ ከላይ ያለውን ወረዳ ይገንቡ።

በእርስዎ LEDs ላይ አወንታዊ እና አሉታዊ መሪዎችን (ዋልታውን) እንዴት ለይተው ያውቃሉ? ኤልዲኢን በቅርበት ከተመለከቱ በቀለማት ያሸበረቀ መያዣ ውስጥ ሁለት ትናንሽ ብረቶች እንዳሉት ያያሉ። እነዚህ አኖዴ እና ካቶዴ ይባላሉ። ካቶዴድ ከሁለቱ ትልቁ ሲሆን እንዲሁም ከ LEDs አሉታዊ መሪ ጋር ተገናኝቷል።

አንዴ ወረዳዎን ከፈተሹ ፣ ከላይ ያለውን ሥዕላዊ መግለጫ በመከተል የመዝለያ ገመዶችን የእርስዎን Raspberry Pi GPIO ፒኖች ያገናኙ።

ደረጃ 3 LEDs ን ለመቆጣጠር እና ለመሞከር ስክሪፕት ይፍጠሩ

ኤልኢዲዎችን ለመቆጣጠር እና ለመሞከር ስክሪፕት ይፍጠሩ
ኤልኢዲዎችን ለመቆጣጠር እና ለመሞከር ስክሪፕት ይፍጠሩ

በእርስዎ Raspberry Pi ላይ ፣ IDLE ን ይክፈቱ (ምናሌ> ፕሮግራሚንግ> ፓይዘን 2 (IDLE))።

አዲስ ፕሮጀክት ይክፈቱ ወደ ፋይል> አዲስ ፋይል ይሂዱ። ከዚያ የሚከተለውን ኮድ ይተይቡ (ወይም ይቅዱ እና ይለጥፉ)

RPi. GPIO ን እንደ GPIO ያስመጡ

የማስመጣት ጊዜ GPIO.setmode (GPIO. BCM) GPIO.setup (17 ፣ GPIO. OUT) GPIO.setup (18 ፣ GPIO. OUT) GPIO.setup (22 ፣ GPIO. OUT) GPIO.setup (23 ፣ GPIO. OUT) GPIO.output (17, True) time.sleep (3) GPIO.output (17, False) time.sleep (1) GPIO.output (18, True) time.sleep (3) GPIO.output (18, False) time.sleep (1) GPIO.output (22, True) time.sleep (3) GPIO.output (22, False) time.sleep (1) GPIO.output (23, True) time.sleep (3) GPIO ውፅዓት (23 ፣ ሐሰት)

በ Raspberry Pis ሰነዶች አቃፊዎ ውስጥ ፕሮጀክትዎን እንደ ባለብዙ -ብርሃን.ፒ (ፋይል> አስቀምጥ እንደ) ያስቀምጡ።

በእርስዎ Raspberry Pi ክፍት ተርሚናል (ምናሌ> መለዋወጫዎች> ተርሚናል) ላይ የሚከተለውን በመተየብ ወደ ሰነዶች አቃፊዎ ይሂዱ።

ሲዲ/ቤት/ፒ/ሰነዶች

አሁን የሚከተለውን በመተየብ አዲሱን ስክሪፕትዎን ማስኬድ ይችላሉ-

python multilights.py

መብራቶቹ ለማብራት እና ለማጥፋት በተራው ይወስዱታል። ከዚህ በላይ ያለው ስክሪፕት የእያንዳንዱን ጊዜ እረፍት ለአፍታ ለመፍጠር የእንቅልፍ ትዕዛዙን ይጠቀማል ፣ እያንዳንዱ ብርሃን ለ 3 ሰከንዶች እንዲቆይ እና ቀጣዩን መብራት ከማብራትዎ በፊት ለ 1 ሰከንድ ያህል ይጠብቃል።

ደረጃ 4 - ልኬቶችን እና ሁኔታዊ መግለጫዎችን በመጠቀም ተጣጣፊነትን ማከል

ልኬቶችን እና ሁኔታዊ መግለጫዎችን በመጠቀም ከላይ ያለውን ስክሪፕት የበለጠ ተለዋዋጭ ማድረግ እንችላለን።

አንድ መለኪያ በስክሪፕቱ ውስጥ በኋላ ሊጠቀሙበት የሚችሉትን እሴት እንዲያከማቹ ያስችልዎታል። በጣም የተለመዱት የእሴቶች ዓይነቶች ሕብረቁምፊዎች (ጽሑፍ) ፣ ኢንቲጀሮች (ሙሉ ቁጥሮች) ወይም ተንሳፋፊዎች (የአስርዮሽ ቁጥሮች) ናቸው።

ሁኔታዊ መግለጫ አንድ የተወሰነ ሁኔታ መሟላቱን ወይም አለመሆኑን በመፈተሽ የኮዱ ክፍል መከናወን እንዳለበት ወይም አለመሆኑን ይወስናል። ሁኔታው መለኪያዎችንም ሊያካትት ይችላል።

በእርስዎ Raspberry Pi ላይ IDLE ን ይክፈቱ እና አዲስ ፕሮጀክት (ፋይል> አዲስ ፋይል) ይክፈቱ። ከዚያ የሚከተለውን ይተይቡ። የትር ቁልፍን በመጠቀም ሁሉም ገብነቶች (ትሮች) መካተታቸውን ለማረጋገጥ ይጠንቀቁ

RPi. GPIO ን እንደ GPIO ያስመጡ

የማስመጣት ጊዜ ከ sys ማስመጣት argv ይህም በድምፅ = argv [1] ledaction = argv [2] LEDa = 17 LEDb = 18 LEDc = 22 LEDd = 23 GPIO.setmode (GPIO. BCM) GPIO.setup (LEDa, GPIO. OUT) GPIO። setmode (GPIO. BCM) GPIO.setup (LEDb ፣ GPIO. OUT) GPIO.setmode (GPIO. BCM) GPIO.setup (LEDc ፣ GPIO. OUT) GPIO.setmode (GPIO. BCM) GPIO.setup (LEDd ፣ GPIO። ውጣ) ከሆነ ledaction == "ጠፍቷል": ከተነጠፈ == "ሀ": GPIO.output (LEDa, ሐሰት) ከሆነ == "ለ": GPIO.output (LEDb, False) ከተነጠፈ == "ሐ": GPIO.output (LEDc ፣ ሐሰተኛ) ከተነጠፈ == "መ": GPIO.output (LEDd, False) ከሆነ == "ሁሉም": GPIO.output (LEDa, False) GPIO.output (LEDb, False) GPIO. ውፅዓት (LEDc ፣ ሐሰተኛ) GPIO.output (LEDd ፣ ሐሰተኛ) ledaction == “በርቷል”: ከሆነ ፣ == “ሀ”: GPIO.output (LEDa ፣ True) ከሆነ == “ለ”: GPIO.output (LEDb ፣ እውነት) ከተነጠፈ == "ሐ": GPIO.output (LEDc, True) ከሆነ == "መ": GPIO.output (LEDd, True) ከሆነ == "ሁሉም": GPIO.output (LEDa, እውነት) GPIO.output (LEDb ፣ True) GPIO.output (LEDc ፣ True) GPIO.output (LEDd ፣ True)

በሰነዶችዎ አቃፊ ውስጥ እንደ controllight.py (ፋይል> አስቀምጥ እንደ) ያስቀምጡ። አሁን ተርሚናልን ይክፈቱ (ምናሌ> መለዋወጫዎች> ተርሚናል) እና የሚከተለውን ትዕዛዝ ይተይቡ

python controllight.py ለ በርቷል

ሁለተኛው LED መብራት አለበት። አሁን የሚከተለውን ይተይቡ

python controllight.py b ጠፍቷል

ሁለተኛው LED ማጥፋት አለበት።

በመስመሮች 5 ፣ 6 ፣ 7 እና 8 ውስጥ ፣ የትኛውን የ GPIO ፒን ከየትኛው LED ጋር እንዳገናኘን ለማከማቸት የ LEDa ፣ LEDb ፣ LEDc እና LEDd መለኪያዎች እንፈጥራለን። ይህ በስክሪፕቱ ላይ ጉልህ ለውጦችን ሳያስፈልግ አማራጭ የ GPIO ፒኖችን እንድንጠቀም ያስችለናል።

ለምሳሌ ፣ እኛ የመጀመሪያውን የ LEDs መሪን ወደ ፒን 3 (ጂፒኦ 2) ብናገናኝ ፣ መስመር 5 ን ወደሚከተለው መለወጥ ብቻ ያስፈልገናል።

LEDa = 2

መስመር 4 ከ controllight.py በኋላ የፃpedቸውን እሴቶች ወደ (ሐ) እና መሪነት (በርቷል) መለኪያዎች ያከማቻል። ስክሪፕቱ እነዚህን መለኪያዎች ይጠቀማል ፣ ከበርካታ ሁኔታዊ መግለጫዎች ጎን ለጎን የትኛው LED ን መቆጣጠር እንዳለበት እና እሱን ማብራት ወይም ማጥፋት።

መስመር 16 (ledaction == "በርቷል":) ሁኔታዊ መግለጫ ነው። ይህንን መግለጫ የሚከተሉ ወደ ውስጥ የገቡ መስመሮች የሚሠሩት የመግለጫው ሁኔታ ከተሟላ ብቻ ነው። በዚህ ሁኔታ ፣ ሁኔታው ledaction ጽሑፉን የያዘ መሆኑ ነው።

የስክሪፕቱን ሌሎች ሁኔታዊ መግለጫዎችን በማንበብ ፣ ተርሚናል ውስጥ የሚከተለውን ትእዛዝ ሲተይቡ ምን እንደሚሆን መተንበይ ይችላሉ?

python controllight.py ሁሉም በርቷል

ለምን አይተውት እና መልስዎን ከዚህ በታች ባለው የአስተያየቶች ክፍል ውስጥ አይለጥፉ።

የሚመከር: