ዝርዝር ሁኔታ:

Arduino Doorbell: 4 ደረጃዎች
Arduino Doorbell: 4 ደረጃዎች

ቪዲዮ: Arduino Doorbell: 4 ደረጃዎች

ቪዲዮ: Arduino Doorbell: 4 ደረጃዎች
ቪዲዮ: 2023 Tesla MODEL Y Performance ⚠️ BUT Did You See… 🤤😘 #Shorts #Short #Tesla #teslamodely 2024, ሀምሌ
Anonim
አርዱዲኖ በር ደወል
አርዱዲኖ በር ደወል

ዛሬ አርዱዲኖን በመጠቀም የበሩን ደወል እንዴት እንደሚሠሩ አሳያችኋለሁ። ይህ የበር ደወል ከዘፈኖች ቤተ -መጽሐፍት የዘፈቀደ ዜማ ይጫወታል። የበሩን ደወል ማበጀት እና ተጨማሪ ዘፈኖችን ማከል ይችላሉ። ከመኝታ ቤትዎ ፣ ከመማሪያ ክፍልዎ ፣ ከቢሮዎ ወይም ከፊትዎ በር ውጭ ይጫኑት!

አቅርቦቶች

  • አርዱዲኖ ኡኖ (አብዛኛዎቹ ሌሎች ዓይነቶች ያደርጉታል)
  • ለፕሮግራም ከ Arduino IDE ጋር ኮምፒተር
  • ዩርዱ-ኤ ወደ ዩኤስቢ-ቢ ገመድ ለ Arduino ፕሮግራም
  • የዳቦ ሰሌዳ
  • 4x ዝላይ ሽቦዎች
  • Ushሽቡተን ወይም ሌላ መቀየሪያ
  • 10 kOhm Resistor
  • ተገብሮ ጫጫታ (ማለትም የፓይኦኤሌክትሪክ ድምጽ ማጉያ)
  • ለቋሚ ጭነት;

    • አርዱዲኖን ለማብራት 9V ዲሲ የኃይል አቅርቦት ወይም 9 ቪ ባትሪ
    • 2x ረዥም ሽቦዎች ከበሩ በር ውጭ ሽቦ

ደረጃ 1 የሃርድዌር ማዋቀር

የሃርድዌር ማዋቀር
የሃርድዌር ማዋቀር
የሃርድዌር ማዋቀር
የሃርድዌር ማዋቀር
የሃርድዌር ማዋቀር
የሃርድዌር ማዋቀር

በመጀመሪያ ፣ ሃርድዌር እናዘጋጃለን። በተገላቢጦሽ (ማለትም ተናጋሪ) እንጀምራለን። ተገብሮ የሚነፋውን (በ “+” ምልክት የተመለከተውን) አወንታዊ መጨረሻ በአርዱዲኖ ላይ ከዲጂታል ፒን 8 ጋር ማገናኘት እንፈልጋለን። የሌላውን የፓሲዜ ጫጫታ ጫፍ ከመሬት ጋር እናገናኘዋለን።

በመቀጠልም ለበር ደወል የግፋ ቁልፍን እንጭናለን። ለመለወጫው 10 kOhm ውጫዊ pulldown resistor እንጠቀማለን ፣ ስለዚህ ወደ አርዱዲኖ ግብዓት ላይ ተንሳፋፊ ቮልቴጅ ወይም ያልተረጋጋ ሁኔታ የለም። የ pulldown resistor ን በመጠቀም ፣ ቁልፉ በማይጫንበት ጊዜ አርዱዲኖ ቮልቴጁን 0V እና አዝራሩ ሲጫን 5 ቮን ያነባል። ስለ pullup ወይም pulldown resistors ተጨማሪ መረጃ ለማግኘት ይህንን ጽሑፍ ማንበብ ይችላሉ-

የግፊቱን አንድ ጎን ከ 5 ቮ ጋር እናገናኘዋለን። የግፋ ቁልፉ ሌላኛው ጎን በ 10 ኪ.ሜትር የ pulldown resistor በኩል ከመሬት ጋር ይገናኛል። ያስታውሱ -የግፊት ቁልፎች በአግድም ከውስጥ ጋር ተገናኝተዋል። ሲጫኑ በአቀባዊ ብቻ ይገናኛሉ። በዚህ ጽሑፍ ውስጥ ተጨማሪ መረጃ ተሰጥቷል-

ደረጃ 2 የሶፍትዌር ማዋቀር

ሁሉም ኮዱ ተያይ attachedል። ከዚህ በታች የእያንዳንዱ ተግባራት መግለጫዎች ከኮዱ ቅጽበተ -ፎቶዎች ጋር ናቸው።

አዘገጃጀት:

በማዋቀር () ተግባር ውስጥ ፣ ለኛ ቁልፍ እና ለድምጽ ማጉያችን ዲጂታል ፒኖችን ማዋቀር እንፈልጋለን። ፒን 2 ን እንደ አዝራራችን እንደ ግብዓት ማዋቀር እንፈልጋለን ፣ እና ፒን 8 ን ለድምጽ ማጉያችን እንደ ውፅዓት ማዋቀር እንፈልጋለን።

እንዲሁም አንድ ሰው የቤታችን ደወል ሲደወል ዜማ በዘፈቀደ ለመምረጥ የዘፈቀደ ቁጥር ጄኔሬተራችንን “መዝራት” እንፈልጋለን። የዘፈቀደ ቁጥር ጀነሬተራችንን መዝራት የዘፈቀደ ግብዓት መመገብ ማለት ነው። በአናሎግ ግብዓት 0. ላይ የእኛን የዘፈቀደ ቁጥር ጄኔሬተር በዘር እሴቱ እንዘራለን። ይህ ለበር ደጃችን የተለየ የዘፈን ምርጫዎች ቅደም ተከተል እንደሚኖረን ያረጋግጣል። ስለ አርዱዲኖ የዘፈቀደ () ተግባር የበለጠ መረጃ ለማግኘት እዚህ ይሂዱ

#"pitches.h" ን ያካትቱ

#ዘፈኖችን። pinMode (SPEAKER_PIN ፣ OUTPUT); የተለየ ትዕዛዝ randomSeed (analogRead (0)) እንድናገኝ // የዘፈቀደ የዘፈቀደ () ተግባር ፤ }

loop

በእኛ loop () ተግባር ውስጥ ፣ አዝራሩ ተጭኖ እንደሆነ (ዲጂታል ፒን 2 ከፍ ያለ) መሆኑን ለማየት በየጊዜው እንፈትሻለን። ፒኑ ከፍ ያለ ከሆነ ፣ 50 ms እንጠብቃለን እና አሁንም ከፍ ያለ መሆኑን ለማረጋገጥ እንደገና እንፈትሻለን። ይህ አዝራሩ ተጭኖ መሆኑን ያረጋግጣል እና የሐሰት አወንታዊን በሚያስከትለው በዲጂታል ግብዓት ፒን ላይ የባዘነ ጫጫታ አልነበረም።

አንዴ አዝራሩ እንደተጫነ ካረጋገጥን ፣ የመቀየሪያ መግለጫን በመጠቀም ከ 5 ዘፈኖች አንዱን ለመምረጥ የዘፈቀደ ቁጥር ጄኔሬተራችንን እንጠቀማለን። የእነዚህ ዘፈኖች መረጃ በ “ዘፈኖች.ህ” ውስጥ ተከማችቷል እና የቃጫው መረጃ በ “pitches.h” ውስጥ ይከማቻል። አንድ ዘፈን ከመረጥን በኋላ ይህንን መረጃ ወደ ተግባር play_song () ተግባር እናስተላልፋለን።

/ * ዋናው የ loop ተግባር */

ባዶነት loop () {// አዝራሩ ተጭኖ እንደሆነ ለማየት ይፈትሹ (digitalRead (BUTTON_PIN) == HIGH) {// መዘግየቱን ለማረጋገጥ 50 ሜ / አሁንም ተጭኖ መሆኑን ለማረጋገጥ // ማንኛውንም የተዛባ የተሳሳተ መዘግየት ያስወግዳል (50) ፤ ከሆነ (digitalRead (BUTTON_PIN) == HIGH) {// በዘፈቀደ ዘፈን ይምረጡ song_choice = የዘፈቀደ (5); // ማብሪያ/ ማጫወቻ (ዘፈን_ምርጫ) የሚጫወትበትን ዘፈን ይምረጡ (ጉዳይ 0: play_song (haircutLength, haircut, haircutDurations, haircutTempo); ሰበር; ጉዳይ 1 - የመጫወቻ_መዝሙር (ማሪዮ ርዝመት ፣ ማሪዮ ፣ ማሪዮ ዱራቶች ፣ ማሪዮቴምፖ); ሰበር; ጉዳይ 2 - play_song (miiLength, mii, miiDurations, miiTempo); ሰበር; ጉዳይ 3: play_song (hpLength, hp, hpDurations, hpTempo); ሰበር; ጉዳይ 4: play_song (takeonmeLength, takeonme, takeonmeDurations, takeonmeTempo); ሰበር; ነባሪ: play_song (miiLength, mii, miiDurations, miiTempo); ሰበር; }}}}

ጨዋታ_ዘፈን ፦

play_song () 4 ነጋሪ እሴቶችን ይወስዳል - በዘፈኑ ውስጥ የኢቲጀር ቁጥር ብዛት ፣ በዜማው ውስጥ ያሉት የእርከኖች ኢንቲጀር ድርድር ፣ የጊዜ ቆይታ ኢንተርደር ድርድር እና ለዚያ ልዩ ዘፈን ኢንቲጀር ቴምፕ። ለማጫወት ለሚፈልጉት እያንዳንዱ ዘፈን እያንዳንዳቸውን መግለፅ አለብዎት። የአርዱዲኖ ቶን ተግባሮችን እንዴት እንደሚጠቀሙ ለተጨማሪ መረጃ ይህንን መማሪያ ማየት ይችላሉ- https://www.arduino.cc/en/Tutorial/ToneMelody. ለነጥብ ነጠብጣቦች በዚህ መማሪያ አናት ላይ አንዳንድ ተግባሮችን አክያለሁ። በማስታወሻ ቆይታ ድርድር ውስጥ ያለው እሴት አሉታዊ ከሆነ ፣ ያ ማለት የነጥብ ማስታወሻ ነው (ርዝመቱ 1.5 እጥፍ ይበልጣል)።

/ * ዘፈኑን ይጫወታል */

ባዶ play_song (int num_notes ፣ int melody ፣ int noteDurations ፣ int tempo) {// ያልፉ እና ሁሉንም ማስታወሻዎች ለ (int i = 0; i 0) {ቆይታ = ቴም / ማስታወሻ ዱራዎች ፤ } // አሉታዊ ቁጥር ከሆነ ፣ የነጥብ ማስታወሻ / ማለት / ለነጥብ ማስታወሻዎች ሌላ ጊዜውን በግማሽ ከፍ ያደርገዋል (noteDurations <0) {duration = tempo / abs (noteDurations ) * 1.5; } ቃና (SPEAKER_PIN ፣ ዜማ ፣ ቆይታ); // ማስታወሻዎችን ለመለየት ፣ በመካከላቸው ዝቅተኛ ጊዜ ያዘጋጁ። // የማስታወሻው የቆይታ ጊዜ + 30% በደንብ የሚሰራ ይመስላል int int pauseBetweenNotes = ቆይታ * 1.30; መዘግየት (ለአፍታ አቁም tsakanin ማስታወሻዎች); // ድምፁን መጫወት ያቁሙ - noTone (SPEAKER_PIN); }}

የዘፈኖች ናሙና።

ከዚህ በታች በ “ዘፈኖች.ህ” ውስጥ ካሉ የዘፈኖች አንዱ ናሙና ነው። ማስታወሻዎቹ በ ‹pitches.h› ውስጥ የተገለጹ ማክሮዎች ናቸው። ቁጥሮቹ በሄርዝ (Hz) ውስጥ ካሉ ማስታወሻዎች ድግግሞሽ ጋር ይዛመዳሉ። የማስታወሻዎቹ የቆይታ ጊዜ -1 = ሙሉ ማስታወሻ ፣ 2 = ግማሽ ማስታወሻ ፣ 4 = የሩብ ማስታወሻ ፣ 8 = ስምንተኛ ማስታወሻ ፣ -4 = የነጥብ ሩብ ማስታወሻ ፣ ወዘተ … ርዝመቱ በመዝሙሩ ውስጥ ያሉት የማስታወሻዎች ብዛት ነው። ቴምፖው ለዘፈኑ ፍጥነት ከፋይ ነው (ከፍ ያለ ቁጥር ማለት ዘገምተኛ ቴምፕ ማለት ነው)። የሚወዱትን ቴምፕ እስኪያገኙ ድረስ በዚህ ቁጥር ዙሪያ መጫወት ይኖርብዎታል።

/* ሃሪ ፖተር */

int hp = {NOTE_D4 ፣ NOTE_G4 ፣ NOTE_AS4 ፣ NOTE_A4 ፣ NOTE_G4 ፣ NOTE_D5 ፣ NOTE_C5 ፣ NOTE_A4 ፣ NOTE_G4 ፣ NOTE_AS4 ፣ NOTE_A4 ፣ NOTE_F4 ፣ NOTE_GS4 ፣ NOTE_D4}; int hpDurations = {4, -4, 8, 4, 2, 4, -2, -2, -4, 8, 4, 2, 4, 1}; int hpLength = 14; int hpTempo = 1050;

ደረጃ 3: ለውጦች

ተጨማሪ ዘፈኖችን ያክሉ! በ “ዘፈኖች.ህ” ውስጥ የሚታየውን ቅርጸት ይከተሉ እና ለእገዛ ትምህርቱን ይጠቀሙ - https://www.arduino.cc/en/Tutorial/ToneMelody። ለእያንዳንዱ አዲስ ዘፈን ፣ በማቀያየር መግለጫው ላይ አዲስ መያዣ ማከል እና በዘፈቀደ () ተግባርዎ ሊፈጠር የሚችለውን ከፍተኛ ቁጥር ማሳደግዎን ያስታውሱ። መልካም ኮድ!

ደረጃ 4: ተጨማሪ ፕሮጀክቶች

ለተጨማሪ ፕሮጄክቶች ፣ ገጾቼን ይጎብኙ ፦

  • https://dargen.io/
  • https://github.com/mjdargen
  • https://www.instructables.com/member/mjdargen/

የሚመከር: