ዝርዝር ሁኔታ:

በመስራት ላይ RC የመኪና ፍጥነት መለኪያ 4 ደረጃዎች (ከስዕሎች ጋር)
በመስራት ላይ RC የመኪና ፍጥነት መለኪያ 4 ደረጃዎች (ከስዕሎች ጋር)

ቪዲዮ: በመስራት ላይ RC የመኪና ፍጥነት መለኪያ 4 ደረጃዎች (ከስዕሎች ጋር)

ቪዲዮ: በመስራት ላይ RC የመኪና ፍጥነት መለኪያ 4 ደረጃዎች (ከስዕሎች ጋር)
ቪዲዮ: Keynote: Autonomic Regulation of the Immune System 2024, ህዳር
Anonim
በመስራት ላይ RC መኪና የፍጥነት መለኪያ
በመስራት ላይ RC መኪና የፍጥነት መለኪያ

ይህ እንደ ቀላል ክብደት ላንድ ሮቨር እንደ ትልቅ የ RC ግንባታ አካል የፈጠርሁት አጭር ፕሮጀክት ነው። በዳሽቦርዱ ውስጥ የሥራ ፍጥነት መለኪያ እንዲኖረኝ ወሰንኩ ፣ ግን አንድ አገልጋይ እንደማይቆርጥ አውቃለሁ። አንድ ምክንያታዊ አማራጭ ብቻ ነበር - አርዱዲኖን ያሰማሩ!

ለመጀመር ትንሽ ዳራ… እኔ የኮዲንግ ወይም የኤሌክትሮኒክስ ሰው አይደለሁም። እኔ አሁንም ከውኃ ፍሰት አንፃር ኤሌክትሪክን አስባለሁ እና በተከላካዮች በተወሰነ ደረጃ ምስጢራዊ ነኝ። ያ እኔ እንኳን እኔ ይህንን ሥራ መሥራት ከቻልኩ እርስዎም እንዲሁ መቻል አለብዎት!

ክፍሎች ዝርዝር ፦

የማይክሮ መቆጣጠሪያ - እያንዳንዳቸው ወደ £ 1 የሚወጣውን ATTiny85 ቺፕ እጠቀም ነበር።

የማይክሮ መቆጣጠሪያ ፕሮግራም ሰሪ - ኮዱን ወደ ቺፕው ለመግባት ፣ እሱን ለማቀናበር መንገድ ያስፈልግዎታል። በመደበኛ አርዱዲኖ ይህ የዩኤስቢ ገመድ ብቻ ነው ፣ ግን ለ ATTiny ቺፕ ፣ አንድ ተጨማሪ ነገር ያስፈልግዎታል። ይህንን ለማድረግ ሌላ አርዱዲኖን መጠቀም ይችላሉ ወይም እንደ እኔ ፣ ከስፓርክፎን ትንሽ AVR ፕሮግራም አድራጊን መጠቀም ይችላሉ።

learn.sparkfun.com/tutorials/tiny-avr-prog…

እኔ በተለያዩ ዘዴዎች እነሱን መርሃግብር ስለሞከርኩ እና ይህ በጣም ቀላሉ ስለሆነ ይህንን እመክራለሁ። ቦርዱ ትንሽ ውድ ነው ፣ ግን ብዙ የ ATTiny ፕሮጀክቶችን ከሠሩ ጥሩ ኢንቨስትመንት።

8 ፒን ቺፕ ሶኬት - ቺፕውን በቀጥታ ከመሸጥ ይልቅ በሶኬት ውስጥ ካስገቡ ፣ በስብሰባው ውስጥ አንዳንድ ስህተቶችን ለራስዎ መግዛት ይችላሉ። ከተሞክሮ የተነገረ - ማንም እነሱን እንደገና ለማስተካከል ቺፖችን ማበላሸት አይፈልግም።

Capacitor: የ 100nF (ኮድ 104) የመቁረጥ አቅም (capacitor capacitor) ጥቅም ላይ ይውላል። ለምን እንደሆነ በትክክል አልገባኝም ፣ ግን የመብራት ማቀነባበሪያዎች በበይነመረብ ላይ አስፈላጊ እንደሆኑ አነበብኩ ፣ ስለዚህ እውነት መሆን አለበት…

ተከላካይ - 10 ኪΩ resistor መስመሩን ወደ አርዱዲኖ ለማውረድ ያገለግላል። እንደገና ፣ አሁንም ሌላ የኤሌክትሮኒክስ ምስጢር።

Perfboard/Stripboard: ወረዳዎን የሚያሰባስቡበት አንዳንድ የመሠረት ሰሌዳ።

ጠመዝማዛ ሽቦ - መደበኛ ሽፋን ያለው ሽቦ በሞተር ላይ ለመሸጥ በጣም ወፍራም ነው። ጥሩ የኢሜል ሽቦን መጠቀም በሞተር ተርሚናሎች ላይ ጭንቀትን ይቀንሳል እና ሕይወትዎን በጣም ቀላል ያደርገዋል።

Servo Wire: በ 3 ፒን JR ሴት ተሰኪ ውስጥ የሚያልቅ የሶስት ሽቦ ሪባን። እኔ ‘እያስተካከልኩ’ ከነበረው ከተቃጠለ ሰርቪስ የእኔን አግኝቻለሁ።

Stepper Motor: እኔ የ 6 ሚሜ ባይፖላር ኒዴክ ስቴፐር ሞተርን እጠቀም ነበር። እርከኑ በቀጥታ ከአርዲኖ እየተነዳ ስለሆነ ማንኛውም ትንሽ እርከን መሥራት አለበት።

የራስጌ ፒኖች - አስፈላጊ አይደለም ፣ ግን የእርምጃዎን ደረጃ በ 4 ራስጌ ካስማዎች ሽቦ ካደረጉ እና በወረዳዎ ላይ ሶኬት ከጫኑ ፣ ለመጫን ቀላልነት ዳሽቦርድዎን በቀላሉ መንቀል ይችላሉ።

ኮምፒተር - ሰሌዳዎን ለማቀናበር ኮምፒተር ያስፈልግዎታል። ከ Arduino IDE ጋር ሊሆን ይችላል። እና ምናልባት የዩኤስቢ ገመድ። እሱ እንዲሁ የኃይል ገመድ ካለው ፣ ከዚያ የተሻለ።

ደረጃ 1: ስርዓቱ

እኔ የፈጠርኩት የሥርዓት መሠረታዊ መግለጫ ከ RC ተቀባዩ የሚመጣው የ pulse Width Modulation (PWM) ምልክት በ ATTiny 85 ማይክሮ መቆጣጠሪያ (uC) በኩል ወደ ስቴፐር ሞተር መጥረጊያ የሚቀየርበት ዘዴ ነበር።

በ PWM ምልክቶች እና አርሲ ላይ ሀብት እዚህ አለ ፣ ግን ይህንን ለመድገም በጥብቅ መረዳት አያስፈልግዎትም።

am.wikipedia.org/wiki/Servo_control

ATTiny መሠረታዊ ነገሮችን ለማድረግ ገና በቂ በሆነ እኔ/ኦ ፒኖች አነስተኛ ስለሆነ ፣ ወደ ትናንሽ ሞዴሎች እና የ RC ፕሮጄክቶች ፍጹም ስለሚስማማ የአርዱዲኖ ተወዳጅ ጣዕም ነው። የ ATTiny ዋነኛው ኪሳራ አንድን መርሃግብር ለማድረግ ትንሽ ተጨማሪ ማዋቀር ይፈልጋል ፣ ግን አንዴ ካዋቀሩት በኋላ በጣም ርካሽ ስለሆኑ ለሁሉም ዓይነት ፕሮጄክቶች ቁልል መግዛት ይችላሉ።

የፍጥነት መለኪያ መደወያው መጠን ግብረመልስ ያለው የሞተር ሞተር እንዲኖረው በጣም ትንሽ ነው ፣ ስለሆነም ተመጣጣኝ ምላሽ እንዲኖር አንድ የእርከን ሞተር ጥቅም ላይ መዋል ነበረበት። የእግረኛ ሞተር በተለየ መጠን (ወይም ደረጃዎች…!) የሚንቀሳቀስ ሞተር ነው ፣ ይህም ለእንደዚህ ያለ ግብረመልስ ስርዓት ተስማሚ ያደርገዋል። ብቸኛው ማስጠንቀቂያ ‹ደረጃዎች› የውጤት እንቅስቃሴው ለስላሳ ከመሆን በተቃራኒ ቀልብ እንዲይዝ ማድረጉ ነው። በአንድ ሽክርክሪት በቂ ደረጃዎች ያሉት እርከን ካገኙ ፣ ይህ አይታይም ፣ ግን በዚህ ፕሮጀክት ውስጥ በተጠቀምኩበት እርከን ሙሉ ዙር ውስጥ 20 ወይም ከዚያ በላይ ደረጃዎች ብቻ ሲኖሩት ፣ የማዕዘን ዝላይ በጣም መጥፎ ነው።

ስርዓቱ ፣ ኃይል-ሲነሳ ፣ መርፌውን ዜሮ እስከማድረግ ድረስ ፣ ለሁለት አብዮቶች ደረጃውን ወደ ኋላ ያካሂዳል። የፍጥነት መለኪያው ዜሮ ምልክቱ እንዲሆን የሚፈልጉበት የእረፍት ፒን ይፈልጋል ፣ አለበለዚያ እሱ ለዘላለም ይሽከረከራል። ከዚያ ወደ ፊት እና ወደ የ PWM ምልክቶችን ወደ የሞተር እርምጃዎች ብዛት ቁጥር ያዞራል። ቀላል ፣ ትክክል…?

ደረጃ 2 - ሶፍትዌሩ

ማስተባበያ - እኔ የፕሮግራም አዘጋጅ አይደለሁም። ለዚህ ፕሮጀክት ከተለያዩ የተገኙ የኮድ ቁርጥራጮች የሚሰራ ነገርን በማሰባሰብ የዶ / ር ፍራንክንስታይን ዲጂታል አቻ ነኝ።

ስለዚህ ፣ እጅግ በጣም ምስጋናዬ የአርሲ ምልክቶችን ለመተርጎም ኮዱን ለሠራው ዱአን ቢ ይሄዳል።

rcarduino.blogspot.com/

እና የእርምጃውን እንደ የአናሎግ መለኪያ ለማሄድ ኮዱን ለሠራው አርዱናት

arduining.com/2012/04/22/ አርዱinoኖ-መንዳት-a…

እና ለሁለቱም ፣ በኮድዎ ላይ ስላደረግሁት በጣም ከልብ ይቅርታ እጠይቃለሁ።

አሁን ይህ ከመንገድ ውጭ ነው ፣ ወደ ATTiny የሚሰቀለው እዚህ አለ

#THROTTLE_SIGNAL_IN 0 // INTERRUPT 0 = DIGITAL PIN 2 - በአቋራጭ ውስጥ የማቋረጫውን ቁጥር ይጠቀሙ እንቆቅልሽ #THROTTLE_SIGNAL_IN_PIN 2 // INTERRUPT 0 = DIGITAL PIN 2 - በዲጂታል ውስጥ ያለውን የፒን ቁጥር ይጠቀሙ በዚህ ውስጥ ያለውን ንፅፅር ያንቁታል። በኤሌክትሪክ RC መኪና ላይ ገለልተኛ ስሮትል #ጥራት UPPER_THROTTLE 2000 // ይህ በኤሌክትሪክ RC መኪና ላይ በማይክሮ ሰከንዶች ውስጥ ከፍተኛው ስሮትል የሚቆይበት ጊዜ ነው። DEADZONE 50 // ይህ ስሮትል ሞተዝዞን ነው። ጠቅላላው የሞት ዞን ይህ በእጥፍ ነው። #የፍጥነት መለኪያውን ከፍተኛውን ጉዞ ለማስተካከል #አብራር STEPS 21 // ደረጃዎች በአንድ አብዮት (በ 315 ° የተገደበ) ያካትቱ። #ገላጭ COIL1 3 // የጥምዝ ፒኖች። ATTiny ለእግረኛው 0 ፣ 1 ፣ 3 ፣ 4 ፒኖችን ይጠቀማል። መቆራረጥን ማስተናገድ የሚችል ፒን 2 ብቻ ፒን ነው ፣ ስለዚህ ግቤት መሆን አለበት። #መግለፅ COIL2 4 // የእርምጃ ሞተሩ በትክክል ካልሠራ እነዚህን ለመቀየር ይሞክሩ። #ጥራት COIL3 0 #ጥራት COIL4 1 // የእግረኛውን ክፍል ምሳሌ ይፍጠሩ - Stepper stepper (STEPS ፣ COIL1 ፣ COIL2 ፣ COIL3 ፣ COIL4); int pos = 0; // በደረጃዎች (0-630) = (0 ° -315 °) int SPEED = 0; ተንሳፈፈ ThrottleInAvg = 0; int MeasurementsToAverage = 60; ተንሳፋፊ Resetcounter = 10; ስራ ፈት ባለበት ስሮትል int Resetval = 0; የማይለዋወጥ int ThrottleIn = LOWER_THROTTLE; ተለዋዋጭ ያልተፈረመ ረጅም StartPeriod = 0; // በማቋረጫ ውስጥ ተዘጋጅቷል // እኛ ከተለዋዋጭ ተለዋጭ ይልቅ nThrottleIn = 0 ን በሉፕ ልንጠቀም እንችላለን ፣ ግን አዲስ ምልክት እንዳለን ለማመልከት bNewThrottleSignal ን መጠቀም ለዚህ የመጀመሪያ ምሳሌ ባዶነት ማዋቀር () {// ን ለአርዲኖ ይንገሩን INT0 (ዲጂታል ፒን 2) ከ HIGH ወደ LOW ወይም LOW ወደ HIGH / // በሚቀይርበት ጊዜ ሁሉ ተግባሩ calcInput እንዲጠራ እንፈልጋለን ፣ እነዚህን ለውጦች መያዙ የግብዓት ምት ምን ያህል ጊዜ እንደተያያዘ ለማስላት ያስችለናል ብልሽት (THROTTLE_SIGNAL_IN ፣ calcInput ፣ CHANGE); stepper.setSpeed (50); // የሞተር ፍጥነቱን ወደ 30 RPM (360 PPS በግምት) ያዘጋጁ። stepper.step (ደረጃዎች * 2); // ቦታን ዳግም ያስጀምሩ (X እርምጃዎች በተቃራኒ ሰዓት አቅጣጫ)። } ባዶነት loop () {Resetval = millis; ለ (int i = 0; i (NEUTRAL_THROTTLE + DEADZONE) && ThrottleInAvg <UPPER_THROTTLE) {SPEED = map (ThrottleInAvg ፣ (NEUTRAL_THROTTLE + DEADZONE) ፣ UPPER_THROTTLE ፣ 0, 255); ዳግም ማስጀመሪያ = 0; } // ሌላ ካርታ ይቀለብሱ (ThrottleInAvg LOWER_THROTTLE) {SPEED = map (ThrottleInAvg ፣ LOWER_THROTTLE ፣ (NEUTRAL_THROTTLE - DEADZONE) ፣ 255 ፣ 0) ከሆነ ፤ ዳግም ማስጀመሪያ = 0; } // ከክልል በላይ ከሆነ (ThrottleInAvg> UPPER_THROTTLE) {SPEED = 255; ዳግም ማስጀመሪያ = 0; } // ከክልል በታች ከሆነ (ThrottleInAvg Resetcounter) {stepper.step (4); // የ ‹አርሲ› ምልክት ለረጅም ጊዜ በሟች ክልል ውስጥ ከሆነ እራሱን/ ሷን እንደገና እንዲያስተካክል ለመንገር እየሞከርኩ ነው። ይህ የኮዱ ክፍል በትክክል እንደሚሠራ እርግጠኛ አይደለሁም። }} int val = SPEED; // የ potentiometer እሴት (ክልል 0-1023) ቫል = ካርታ (ቫል ፣ 0 ፣ 255 ፣ 0 ፣ ደረጃዎች * 0.75) ያግኙ። // በደረጃው ክልል ውስጥ የካርታ ማሰሮ ክልል። ከሆነ (abs (val - pos)> 2) {// ልዩነት ከ 2 እርምጃዎች በላይ ከሆነ። ከሆነ ((val - pos)> 0) {stepper.step (-1); // አንድ እርምጃ ወደ ግራ ያንቀሳቅሱ። ፖዝ ++; } ከሆነ ((val - pos) <0) {stepper.step (1); // አንድ እርምጃ ወደ ቀኝ ያዙሩ። pos--; }} // መዘግየት (10); } ባዶ ባዶ ካልሲ ግብዓት () {// ፒን ከፍ ያለ ከሆነ ፣ የማቋረጥ መጀመሪያ (digitalRead (THROTTLE_SIGNAL_IN_PIN) == HIGH) {// ማይክሮስ በመጠቀም ጊዜ ያግኙ - ኮዳችን በጣም ሥራ ሲበዛበት ይህ ትክክል ያልሆነ ይሆናል ፣ ግን ለአሁኑ ትግበራ / እሱ በቀላሉ ለመረዳት እና በጣም በጥሩ ሁኔታ ይሠራል StartPeriod = micros (); } ሌላ {// ፒኑ ዝቅተኛ ከሆነ ፣ የልብ ምት መውደቁ ጠርዝ ነው ስለዚህ አሁን የ // ጅምር ጊዜን ulStartPeriod ን በማይክሮስ ከተመለሰ () ከሆነ (StartPeriod) {ThrottleIn = (int) (ማይክሮስ () - StartPeriod); StartPeriod = 0; }}}

ATTiny85 ን ስለማዘጋጀት የበለጠ መረጃ ለማግኘት ይህንን ይመልከቱ።

learn.sparkfun.com/tutorials/tiny-avr-prog…

ደረጃ 3 - ሃርድዌር

ሃርድዌር
ሃርድዌር
ሃርድዌር
ሃርድዌር
ሃርድዌር
ሃርድዌር

ወረዳውን ለመገንባት የወረዳውን ዲያግራም ይመልከቱ። እርስዎ እንዴት እንደሚሰበሰቡ የእርስዎ ነው ፣ ግን እኔ ለወረዳ ቦርድ ፕሮቶታይፕ ጥቅም ላይ የዋለውን ትንሽ የጭረት ሰሌዳ/ሽቶ ሰሌዳ እንዲጠቀሙ እና ቺፕውን በሶኬት ውስጥ እንዲጭኑ እመክራለሁ።

C1 = 100nF

አር 1 = 10 ኪ

በጣም ውጤታማ ለመሆን capacitor በተቻለ መጠን ወደ ቺፕ ቅርብ መሆን አለበት።

በሞተር ሞተሮች ላይ ያሉት ተርሚናሎች የሽቦ ሽቦውን ወደ ሞተሩ መገልበጥ እና ማቋረጥ ስለሚወዱ የሞተውን ሽቦዎች ወደ ሞተሩ በሚሸጡበት ጊዜ በጣም ይጠንቀቁ። ይህንን ለማስተካከል ጥሩ መፍትሔ ሽቦዎቹን መሸጥ እና ከዚያ አንድ ትልቅ የ 2-ክፍል ኤፖክሲን በመገጣጠሚያው ላይ ማድረጉ ነው ፣ ይፈውስ ፣ ከዚያም ሽቦዎቹን አንድ ላይ ያጣምሩት። ይህ በግለሰብ ተርሚናል መገጣጠሚያዎች ላይ ውጥረትን ይቀንሳል እና እነሱ መቆራረጥን ማቆም አለባቸው። ይህንን ካላደረጉ ፣ ዋስትና በሚሰጣቸው ቢያንስ አመቺ ጊዜን ያጥፋሉ።

የራስጌ ፒን ማገናኛን ከሠሩ ፣ እና ካስማዎቹን እንደዚህ ካዋቀሩ [Ca1 ፣ Cb1 ፣ Ca2 ፣ Cb2] ከ Ca1 ለ Coil A ፣ ሽቦ 1 ወዘተ ቆሞ ከሆነ ይህ መሰኪያውን በመቀያየር የመለኪያውን የማዞሪያ አቅጣጫ እንዲቀይሩ ያስችልዎታል። ዙሪያ።

መለኪያው ዜሮውን አቀማመጥ ለመገጣጠም ማብቂያ ማቆሚያ ይፈልጋል። ከተቻለ መርፌውን ከብረት እንዲሠራ እመክራለሁ። ይህ የመጨረሻውን ጫፍ ሲመታ ማወዛወዙን ያቆማል። መርፌውን በጥሩ ሁኔታ ላይ የሚያገኝበት መንገድ መርፌውን ወደ መጥረቢያው ለጊዜው ማጣበቅ ፣ ሞጁሉን ማብራት ፣ እንዲያርፍ ማድረግ እና ከዚያ መርፌውን በመጥረቢያ ላይ ማስወገድ እና እንደገና ማጣበቅ ነው ፣ መርፌው በመርፌ ላይ ተደግፎ መጨረሻ። ይህ መርፌውን ከሞተር መግነጢሳዊ መግነጢር ጋር ያስተካክላል ፣ እና መርፌዎ ሁል ጊዜ ወደ መጨረሻው ማቆሚያ ላይ መምጣቱን ያረጋግጣል።

ደረጃ 4 ኢፒሎግ

በዚህ አጭር አስተማሪ እንደተደሰቱ እና ጠቃሚ ሆኖ እንዳገኙት ተስፋ እናደርጋለን። ከእነዚህ ውስጥ አንዱን ከገነቡ ፣ ያሳውቁኝ!

መልካም እድል!

የሚመከር: