ዝርዝር ሁኔታ:

አርዱዲኖን በመጠቀም የኃይል አቅርቦት ድግግሞሽ እና የቮልቴጅ መለኪያ 6 ደረጃዎች
አርዱዲኖን በመጠቀም የኃይል አቅርቦት ድግግሞሽ እና የቮልቴጅ መለኪያ 6 ደረጃዎች

ቪዲዮ: አርዱዲኖን በመጠቀም የኃይል አቅርቦት ድግግሞሽ እና የቮልቴጅ መለኪያ 6 ደረጃዎች

ቪዲዮ: አርዱዲኖን በመጠቀም የኃይል አቅርቦት ድግግሞሽ እና የቮልቴጅ መለኪያ 6 ደረጃዎች
ቪዲዮ: የአርዱዪኖ ሶፍትዌርን እንዴት ማውረድ እና መጫን እንደሚቻል 2024, ህዳር
Anonim
አርዱዲኖን በመጠቀም የኃይል አቅርቦት ድግግሞሽ እና የቮልቴጅ ልኬት
አርዱዲኖን በመጠቀም የኃይል አቅርቦት ድግግሞሽ እና የቮልቴጅ ልኬት

መግቢያ ፦

የዚህ ፕሮጀክት ግብ እዚህ ህንድ ውስጥ ከ 220 እስከ 240 ቮልት እና 50Hz ባለው የአቅርቦት ድግግሞሽ እና ቮልቴጅን መለካት ነው። እኔ ምልክት ለመያዝ እና ድግግሞሽ እና ቮልቴጅን ለማስላት አርዱዲኖን ተጠቅሜያለሁ ፣ ያለዎትን ማንኛውንም ማይክሮ መቆጣጠሪያ ወይም ሰሌዳ መጠቀም ይችላሉ። ወረዳው ጥቂት ክፍሎችን ይፈልጋል እና ለሁሉም ተግባራዊ ዓላማዎች በትክክል ትክክለኛ ነው።

ደረጃ 1: ክፍሎች ያስፈልጋሉ

  • አርዱዲኖ ኡኖ
  • አይሲ ኤል ኤም 358
  • ወደታች ወደታች ትራንስፎርመር (ከ 220 ቮ እስከ 12 ቮ)
  • ተቆጣጣሪዎች ፦

    • 0.1uF
    • 2 x 1uF
  • ተከላካዮች ፦

    • 3 x 1 ኪ.ሜ
    • 2 x 100 ኪ.ሜ
    • 1.5 ኪ.ሜ
    • 3.3 ኪ
    • 6.8 ኪ
  • 3 x 1N4148 diode
  • የዳቦ ሰሌዳ እና የጃምፐር ሽቦ (አማራጭ)

ደረጃ 2: ንድፋዊ ንድፍ

የእቅድ ንድፍ
የእቅድ ንድፍ
የእቅድ ንድፍ
የእቅድ ንድፍ

ከላይ ባለው ወረዳ ውስጥ ፣ ትራንስፎርመር አንደኛ ከአቅርቦት አውታሮች ጋር የተገናኘ ሲሆን ዋናው ከኛ የመለኪያ ወረዳ ጋር ተገናኝቷል

ደረጃ 3 - ወረዳውን መረዳት

ወረዳውን መረዳት
ወረዳውን መረዳት
ወረዳውን መረዳት
ወረዳውን መረዳት
ወረዳውን መረዳት
ወረዳውን መረዳት

በተግባራዊነቱ መሠረት ይህ ወረዳ በአራት ክፍሎች ሊከፈል ይችላል-

መ: ዜሮ ማቋረጫ መፈለጊያ ወረዳ

ሲናዌቭ ከአዎንታዊ ወደ አሉታዊ በሚሄድበት ጊዜ ይህ ወረዳ 5V ካሬ የልብ ምት ይፈጥራል። Resistor R1 ከ D1 እና D2 ጋር ተዳምሮ በ diode መጋጠሚያ ላይ ያለውን የግብዓት ቮልቴጅ ማወዛወዝን እስከ -0.6V ወደ +5.6V (ዳዮድ ወደፊት ቮልቴጅ 0.6 ቪ ይሆናል ብለን በመገመት)። በተጨማሪም ፣ የ R1 እሴትን በመጨመር የወረዳውን የግቤት voltage ልቴጅ ክልል ከፍ ማድረግ ይችላሉ።

የ LM358 የግብዓት የጋራ -ሞገድ ቮልቴጅ በ -0.3 ቮልት የተገደበ በመሆኑ አሉታዊውን የቮልቴጅ ማወዛወዝን ወደ -0.24 ቮልት ለመገደብ ተቃዋሚው R2 እና R3 የቮልቴጅ መከፋፈያ ይፈጥራሉ።

ተከላካዩ R4 ፣ R5 ፣ capacitor C1 እና ኦፕ-አምፕ (እዚህ እንደ ማነፃፀሪያ ጥቅም ላይ የዋለ) ተከላካዩ R4 እና R5 ሂስተሬሲስን ከምድር በላይ ባለው ግቤት +49.5mV ላይ የሚያስቀምጡበትን የ Schmitt Trigger ወረዳ ይመሰርታሉ። የ Schmitt Trigger ውፅዓት ለቀጣይ ሂደት ለ Arduino PIN2 ይመገባል።

ለ: ማግለል እና ቮልቴጅ ወደ ታች ይወርዳሉ

ስሙ እንደሚጠቁመው ይህ ክፍል ተለይቶ ወደ ቮልቴጁ በግምት ወደ 12 ቮርዶች ይወርዳል። ወደ ታች የወረደው ቮልቴክ ተጨማሪ ወደ የመሣሪያ መሣሪያ ወረዳ ይመገባል።

ሐ: ፒክ መፈለጊያ ወረዳ

ይህ ወረዳ የግብዓት ምልክትን ከፍተኛውን ከፍተኛ ቮልቴጅ ይወስናል። የተከላካይ መከፋፈያ R6 እና R7 የግብዓት ቮልቴጅን በ 0.23 (12Vrms ወደ 2.76Vrms ይቀንሳል)። ዲዲዮ D3 የምልክቱን አዎንታዊ ግማሽ ዑደት ብቻ ያካሂዳል። በ C2 ላይ ያለው voltage ልቴጅ ቮልቴጅ የበለጠ ለማስላት ወደ አርዱዲኖ አናሎግ ፒን A0 እስከሚመገበው የተስተካከለ ምልክት ከፍተኛ እሴት ድረስ ይጨምራል።

በተጨማሪም ፣ እዚህ እንደጠቀስነው ይህንን የወረዳ በትክክለኛ ጫፍ መመርመሪያ ወረዳ መተካት ይችላሉ። ግን ለኔ ማሳያ ዓላማዎች ፣ ከላይ ያለው ወረዳ በቂ ይሆናል።

መ: አርዱinoኖ

በዚህ ክፍል ፣ አርዱዲኖ በሻሚት ትሪግገር ወረዳ የተፈጠረውን የካሬ ጥራጥሬዎችን ይይዛል እና የአናሎግ ቮልቴጅን ከከፍተኛው መመርመሪያ ወረዳ ያነባል። የካሬው የልብ ምት (ከኤሲ አቅርቦት ጊዜ ሰው ጋር እኩል ነው) እና የአቅርቦቱን voltage ልቴጅ የጊዜ መጠን (ስለሆነም ድግግሞሽ) ለመወሰን ውሂቡ የበለጠ ይከናወናል።

ደረጃ 4 - የድግግሞሽ እና የቮልቴጅ ስሌት

የድግግሞሽ ስሌት;

በአርዱዲኖ እርዳታ የምልክቱን የጊዜ ጊዜ T መለካት እንችላለን። ከዜሮ ማቋረጫ መርማሪው የካሬው ሞገድ ፍጥነቶች እስከ ፒን 2 ድረስ ይመገባሉ ፣ ከዚያ የእያንዳንዱን የልብ ምት ጊዜ መለካት እንችላለን። በማቋረጦች እገዛ በሁለት ከፍ በሚሉ የካሬ ጫፎች ጫፎች መካከል ያለውን የጊዜ ጊዜ ለማስላት የአርዱዲኖን ውስጣዊ ሰዓት ቆጣሪ (በተለይ ሰዓት ቆጣሪ 1) መጠቀም እንችላለን። የሰዓት ቆጣሪ በሰዓት ዑደት በ 1 ይጨምራል (ያለ ቅድመ -ተቆጣጣሪ = 1) እና እሴቱ በመመዝገቢያ TCNT1 ውስጥ ተከማችቷል። ስለዚህ የ 16Mhz ሰዓት ቆጣሪውን በእያንዳንዱ ማይክሮ ሰከንድ በ 16 ይጨምራል። በተመሳሳይ ለቅድመ -ተቆጣጣሪ = 8 ሰዓት ቆጣሪው በእያንዳንዱ ማይክሮ ሰከንድ በ 2 ይጨምራል። ስለዚህ በሁለት ከፍ ባለ ጠርዝ መካከል ያለው የጊዜ ጊዜ

T = (TCNT1 እሴት) / ለእያንዳንዱ ቆጠራ የተወሰደ ጊዜ

ለእያንዳንዱ ቆጠራ = ጊዜ ጠባቂ / (አርዱዲኖ የሰዓት ፍጥነት (16 ሜኸ))

ስለዚህ ድግግሞሽ f = 1 / T = (የአርዱዲኖ የሰዓት ፍጥነት (16 ሜኸ) / (ቅድመ ጠባቂ * ቲሲኤን! እሴት)

ስለዚህ የሰዓት ቆጣሪ ፍጥነት (Hz) በ = (አርዱዲኖ የሰዓት ፍጥነት (16 ሜኸ)) / ቅድመ ጠባቂ

እና የምልክቱ ድግግሞሽ በ = (አርዱዲኖ የሰዓት ፍጥነት) ይሰጣል

በተዛማጅ ፣ ተደጋጋሚነት ረን ከግንኙነት f = 1/T ማስላት እንችላለን።

የቮልቴጅ ስሌት;

የ Arduino የጀልባው ADC የ 10 ቢት ጥራት አለው (ሊሆኑ የሚችሉ እሴቶች = 2^10 = 1024) ፣ እሴቶችን በ 0-1023 ክልል ውስጥ ይመልሳል። ተጓዳኝ የአናሎግ ቮልቴጅ V ን ለማስላት የሚከተለውን ግንኙነት መጠቀም አለብን

ቪ = (የኤ.ዲ.ሲ ንባብ) * 5/1023

የአቅርቦቱን ቮልቴጅ Vs (አርኤምኤስ) ለማስላት የትራንስፎርመር ሬሾን ፣ የተከላካይ መከፋፈያ R6R7 ን እና ከፍተኛውን የመመርመሪያ ወረዳውን ግምት ውስጥ ማስገባት አለብን። እኛ በቀላሉ የተለያዩ ሁኔታዎችን/ጥምርን እንደ አንድ ላይ ማሰባሰብ እንችላለን-

ትራንስፎርመር ሬሾ = 12/230 = 0.052

Resistor divider = R7/(R6 + R7) = 0.23

በከፍተኛው መመርመሪያ ወረዳ = 1.414

Vs (rms) = V/(1.414*0.052*0.23) = (ADC ንባብ)*0.289

ይህ ዋጋ ከትክክለኛው እሴት በጣም የራቀ መሆኑን ልብ ሊባል ይገባል ፣ በዋነኝነት በትክክለኛው ትራንስፎርመር ጥምርታ እና በ diode ወደፊት የቮልቴጅ ውድቀት ምክንያት። ይህንን ለማለፍ አንዱ መንገድ ወረዳውን ከተሰበሰበ በኋላ ምክንያቱን መወሰን ነው። ያ ማለት የአቅርቦቱን voltage ልቴጅ እና በ capacitor C2 ላይ ያለውን voltage ልቴጅ ከአንድ መልቲሜትር ጋር በመለካት ፣ ከዚያ Vs (rms) እንደሚከተለው በማስላት ነው።

Vs (rms) = ((የአቅርቦት ቮልቴጅ *5)/(ቮልቴጅ በ C2 *1023)) *(ADC ንባብ)

በእኔ ሁኔታ Vs (rms) = 0.33*(ADC ንባብ)

ደረጃ 5: የአርዲኖ ኮድ

#ጥራት volt_in A0 // የአናሎግ ቮልቴጅ ተነባቢ ፒን

ተለዋዋጭ uint16_t t_period; uint16_t ADC_value = 0; ተንሳፋፊ ቮልት ፣ ፍሪፍ; ባዶ ባዶ isr () {t_period = TCNT1; // TCNT1 እሴት በ t_period TCNT1 = 0 ያከማቻል። // Timer1 ADC_value = analogRead ን እንደገና ያስጀምሩ (volt_in); // የአናሎግ ቮልቴጅን ያንብቡ} float get_freq () {uint16_t timer = t_period; (ሰዓት ቆጣሪ == 0) ከተመለሰ 0; // በዜሮ መከፋፈልን ለማስወገድ 16000000.0/(8UL*ሰዓት ቆጣሪ); // ድግግሞሽ በ f = clk_freq/(prescaler*timeperiod)} ባዶ ማዘጋጀት () {TCCR1A = 0; TCCR1B = ቢት (CS11); // ቅድመ -ተቆጣጣሪ ወደ 8 TCNT1 = 0 ያዘጋጁ። // የሰዓት ቆጣሪ 1 እሴት TIMSK1 = ቢት (TOIE1) ዳግም ያስጀምሩ; // ያንቁ Timer1 የትርፍ ፍሰት EIFR | = ቢት (INTF0); // ግልጽ የ INT0 ማቋረጫ ባንዲራ Serial.begin (9600); } ባዶነት loop () {attachInterrupt (0, isr, RISING); // የውጭ መቋረጥን (INT0) መዘግየትን ያንቁ (1000) ፤ detachInterrupt (0); freq = get_freq (); ቮልት = ADC_value*0.33; ሕብረቁምፊ buf; buf += ሕብረቁምፊ (freq, 3); buf += F ("Hz / t"); buf += ሕብረቁምፊ (ቮልት); buf += F ("ቮልት"); Serial.println (buf); }

ደረጃ 6 መደምደሚያ

መደምደሚያ
መደምደሚያ
መደምደሚያ
መደምደሚያ

በዳቦ ሰሌዳ ውስጥ ወረዳውን መሰብሰብ እና ኮዱን ማረም እና ውሂቡን ለማከማቸት የ SD ካርድ ማከል ይችላሉ ፣ ይህም በኋላ ሊተነተን ይችላል። አንደኛው ምሳሌ ፣ ከፍተኛውን ሰዓት ላይ ያለውን ቮልቴጅ እና ድግግሞሽ መተንተን ይችላሉ።

በዳቦ ሰሌዳ ውስጥ የሰበሰብኩት ወረዳ በኤል.ኤም 358 (ባለሁለት ኦፕፓም) ፋንታ LM324 (ባለአራት ኦምፓም) ተጠቅሟል ምክንያቱም በዚያ አይሲ (IC) ስላልነበረኝ እና በ COVID-19 ወረርሽኝ ምክንያት በሀገር አቀፍ ደረጃ መቆለፉ ለእኔ አዲስ IC ማግኘት አስቸጋሪ ሆኖብኛል።. የሆነ ሆኖ የወረዳውን አሠራር አይጎዳውም።

ለማንኛውም ጥቆማዎች እና ጥያቄዎች ከዚህ በታች አስተያየት ለመስጠት ነፃነት ይሰማዎ።

የሚመከር: