រ៉ឺស័រនិងអេមអេមអនុញ្ញាតឱ្យអ្នកបង្កើតសៀគ្វីគួរឱ្យចាប់អារម្មណ៍ខ្លាំងណាស់ដូចជាល្បីល្បាញ តម្រងប្រេកង់។ តម្រងទាំងនេះមានកម្មវិធីជាច្រើននៅក្នុងឧស្សាហកម្មអេឡិចត្រូនិច។ ដូចករណីតម្រងច្រកទាបតម្រងច្រកខ្ពស់ជាដើម។ ពួកវាគួរឱ្យចាប់អារម្មណ៍ជាពិសេសសម្រាប់កម្មវិធីសម្លេងជាក់លាក់ដែលអាចត្រងសំលេងលឺសំលេងរំខានរឺសំលេងខ្លាំងរឺច្រើនទៅតាមប្រេកង់របស់វា។ ដូច្នេះពួកវាមានប្រយោជន៍ណាស់។
ប្រសិនបើអ្នកចង់ដឹងបន្ថែមទៀត តម្រងច្រកទាបនិងតម្រងផ្សេងទៀតនិងវិធីដែលពួកគេអាចជួយអ្នកក្នុងគម្រោងរបស់អ្នកជាមួយអារីដូណូឬ DIY ខ្ញុំលើកទឹកចិត្តឱ្យអ្នកបន្តអាន ...
តម្រងអគ្គិសនី
ដូចដែលឈ្មោះរបស់វាបង្ហាញថាតម្រងគឺជាសៀគ្វីមួយដែលត្រូវបានបង្កើតឡើងដោយស៊េរីនៃឧបករណ៏និងកុងទ័រនិងសូម្បីតែឧបករណ៍ពង្រីកប្រតិបត្តិការមួយចំនួនសម្រាប់គោលបំណងនៃ អនុញ្ញាតឱ្យតែផ្នែកជាក់លាក់នៃការឆ្លងកាត់ប្រេកង់។ នោះគឺពីវិសាលគមទាំងមូលនៃប្រេកង់ដែលអាចប្រើបានពួកគេនឹងត្រងផ្នែកមួយឬច្រើនដើម្បីរារាំងពួកគេពីការឆ្លងកាត់។
ប្រសិនបើសម្រាប់ ejemplo យើងកំពុងនិយាយអំពីវិសាលគមដែលអាចស្តាប់បានដោយមនុស្សដែលមានចាប់ពី ២០ ហឺតដល់ ២០ គីតដោយមានតម្រងដែលអ្នកអាចលុបចោលទាបបំផុតឬខ្ពស់បំផុតដើម្បីអាចឱ្យសំឡេងតិចៗ / បន្ទាបបាសបាសឆ្លងកាត់បាន។ វាជាអ្វីមួយដែលប្រព័ន្ធថតសំលេងឬការផលិតឡើងវិញជាច្រើនប្រើដូចជាមីក្រូហ្វូនឧបករណ៍បំពងសម្លេង។ ល។
ប្រភេទ
- តម្រងច្រកទាប
- តម្រងច្រកខ្ពស់
- ក្រាហ្វតម្រងប្រេកង់
នេះបើយោងតាម ប្រភេទតម្រងឬផ្ទុយទៅវិញដោយផ្អែកលើប្រេកង់ដែលពួកគេរារាំងឬសៀគ្វីដែលពួកគេបានឆ្លងកាត់មានសៀគ្វីផ្សេងៗគ្នាដែលមានៈ
- តម្រងច្រកទាប: ពួកគេត្រូវបានគេហៅថាដូច្នេះពីព្រោះពួកគេជាតម្រងទាំងនោះដែលអនុញ្ញាតឱ្យប្រេកង់ទាបបំផុតឆ្លងកាត់និងបង្ក្រាបឬកាត់បន្ថយការឆ្លងកាត់នៃប្រេកង់ខ្ពស់។ ពួកវាមានរ៉ឺស័រមួយរឺច្រើន (ជាស៊េរីជាមួយការផ្គត់ផ្គង់ថាមពលនិងបន្ទុក) និងឧបករណ៍ភ្ជាប់ចរន្តអគ្គិសនីមួយរឺក៏ពីរជាមួយនឹងការផ្គត់ផ្គង់និងបន្ទុក។ ចងចាំថាបន្ទុកត្រូវបានគេយល់ថាជាឧបករណ៍ដែលភ្ជាប់ទៅនឹងតម្រងហើយដែលប្រមូលលទ្ធផលរបស់តម្រង ... នៅក្នុងតម្រងទាំងនេះក៏មានបំរែបំរួលដូចជា L, T និង π.
- តម្រងច្រកខ្ពស់៖ តម្រងច្រកខ្ពស់គឺផ្ទុយពីច្រកទាបក្នុងករណីនេះអ្វីដែលវានឹងត្រងឬកំណត់គឺច្រកប្រេកង់ទាបដែលអនុញ្ញាតឱ្យប្រេកង់ខ្ពស់ឆ្លងកាត់។ នៅក្នុងនេះធាតុអេឡិចត្រូនិចដែលតែងវាត្រូវបានវិនិយោគ។ នោះគឺនៅទីនេះឧបករណ៍ចាប់ថាមពលនឹងជាស៊េរីដែលមានការផ្គត់ផ្គង់ថាមពលនិងបន្ទុកខណៈដែលរ៉ឺស័រនឹងត្រូវរលត់។ វាក៏មានប្រភេទរងដូចក្នុងករណីតម្រងឆ្លងកាត់ទាប។
- តម្រងច្រកក្រុមតន្រ្តី: ប្រភេទនៃតម្រងនេះបញ្ចោញប្លុកអត្រាឆ្លងកាត់ប្រេកង់ពីរ។ នោះគឺពួកគេដើរតួទាំងតម្រងច្រកទាបនិងជាតម្រងឆ្លងកាត់ខ្ពស់ប្រឆាំងនឹងការឆ្លងកាត់ប្រេកង់ទាបបំផុតនិងខ្ពស់បំផុតក្នុងពេលតែមួយ។ និយាយម៉្យាងទៀតវាគ្រាន់តែអនុញ្ញាតឱ្យប្រេកង់កណ្តាលឆ្លងកាត់ប៉ុណ្ណោះ។
- តម្រងក្រុមតន្រ្តី៖ វាពិតជាផ្ទុយពីប្រវតិ្តសាស្រ្តមុនដែលវាធ្វើគឺវាត្រងការឆ្លងកាត់នៃប្រេកង់ពាក់កណ្តាលហើយអនុញ្ញាតអោយឆ្លងកាត់ប្រេកង់ទាបបំផុតនិងខ្ពស់បំផុត។
ចងចាំថា inductances ពួកគេអនុញ្ញាតឱ្យឆ្លងកាត់ប្រេកង់ទាបហើយប្រឆាំងនឹងការឆ្លងកាត់ប្រេកង់ខ្ពស់។ ផ្ទុយទៅវិញ កុងទ័រ ពួកគេអនុញ្ញាតឱ្យឆ្លងកាត់ប្រេកង់ខ្ពស់ហើយប្រឆាំងនឹងការឆ្លងកាត់ប្រេកង់ទាប។
ខ្ញុំចង់បន្ថែមតម្រងនៅលើកំរិតជាក់ស្តែង ពួកគេមិនល្អឥតខ្ចោះហើយពួកគេតែងតែអនុញ្ញាតឱ្យប្រេកង់ទាបឬខ្ពស់មួយចំនួនដែលអ្នកគួរតែរារាំង។ ទោះយ៉ាងណាក៏ដោយពួកគេបំពេញការងាររបស់ពួកគេបានយ៉ាងល្អសម្រាប់កម្មវិធីភាគច្រើន។
ហើយចុងក្រោយខ្ញុំសូមបញ្ជាក់ពីរឿងមួយទៀតហើយនោះគឺថាអ្នកប្រាកដជាធ្លាប់លឺហើយ តម្រង EMA និង DEMA។ តម្រងអេម៉ាអេមអេមអេមអេសអេមអេសអេមអេស (អឹមភីអិលអេសភីអិលធីឌី) អនុញ្ញាតឱ្យអនុវត្តតម្រងប្រភេទនេះតាមរបៀបសាមញ្ញក្នុងឧបករណ៍ដែលបានបង្កប់។ ចំពោះឌីអេអេអេអេអេអេអេ (អេឡិចត្រូនិកផ្លាស់ទីមធ្យមទ្វេ) ពួកគេមានការឆ្លើយតបលឿនជាងអេម៉ាអេមដោយរក្សានូវសម្លេងរំខានល្អដែលអ្នកចង់ជៀសវាង។
កត្តាអាល់ហ្វា
El កត្តាអាល់ហ្វាដែលអ្នកនឹងឃើញដែលបង្ហាញនៅក្នុងលេខកូដ Arduino IDE នៅក្នុងផ្នែកបន្ទាប់គឺជាប៉ារ៉ាម៉ែត្រដែលកំណត់ឥរិយាបថនៃតម្រងនិទស្សន្ត។ វាទាក់ទងនឹងប្រេកង់កាត់៖
- អាល់ហ្វា = ១៖ ដែលផ្តល់ជាសញ្ញាមួយដល់ទិន្នផលដែលមិនបានកែ។
- អាល់ហ្វា = ០៖ តម្លៃតម្រងនឹងមាន ០ ជានិច្ច។
- អាល់ហ្វា = x: តម្លៃផ្សេងទៀតអាចទទួលបានការផ្លាស់ប្តូរផ្សេងទៀតនៅក្នុងតម្រងអេម៉ាអេម។ ប្រសិនបើអ្នកបន្ថយកត្តាអាល់ហ្វាអ្នកនឹងបន្ទន់សញ្ញាប្រេកង់ដែលទទួលបានកាន់តែច្រើនហើយពេលវេលាឆ្លើយតបរបស់ប្រព័ន្ធក៏កើនឡើងដែរ (វាត្រូវការពេលយូរដើម្បីស្ថេរភាព) ។
តម្រងនិងអារីដូណូ
អ្នកគួរតែដឹងថាវាមិនចាំបាច់ក្នុងការបង្កើតសៀគ្វីទេ តម្រងច្រកខ្ពស់ឬតម្រងច្រកទាប ដើម្បីភ្ជាប់វាទៅនឹងក្តារ Arduino របស់អ្នកហើយធ្វើការជាមួយវា។ ទោះបីជាអ្នកអាចពិសោធន៍និងបង្កើតតម្រងសាមញ្ញទាំងនេះក៏ដោយអ្នកក៏អាចសាកល្បងផងដែរថាតើអេម៉ាអេមអាចដំណើរការបានយ៉ាងដូចម្តេចជាមួយនឹងក្តារអារីដូណូនិងលេខកូដសាមញ្ញសម្រាប់ Arduino IDE ។ វាគឺជារឿងតែមួយគត់ដែលអ្នកត្រូវមើលពីរបៀបដែលវាទទួលខុសត្រូវក្នុងការច្រោះប្រេកង់មួយចំនួន (ក្នុងករណីនេះសកម្មភាពត្រូវបានធ្វើត្រាប់តាមហើយចំនួនគត់ / អណ្តែតមួយចំនួនត្រូវបានត្រងយ៉ាងសាមញ្ញ) ត្រាប់តាមអ្វីដែលខ្ញុំនឹងធ្វើ ត្រងតាមពិត) ។
នេះគឺជាគំរូកូដមួយចំនួនដែលអ្នកអាចប្រើដើម្បីអនុវត្ត។
ឧទាហរណ៏នៃតម្រងឌីជីថលសាមញ្ញនៅក្នុង Arduino នៃប្រភេទ ច្រកទាប:
float lowpass_prev_out[LOWPASS_ANALOG_PIN_AMT], lowpass_cur_out[LOWPASS_ANALOG_PIN_AMT]; int lowpass_input[LOWPASS_ANALOG_PIN_AMT]; int adcsample_and_lowpass(int pin, int sample_rate, int samples, float alpha, char use_previous) { // pin: Pin analógico de Arduino usado // sample_rate: El ratio adecuado // samples: Samples // alpha: El factor Alpha para el filtro paso bajo // use_previous: Si es true se sigue ajustando hasta el valor más reciente. float one_minus_alpha = 1.0-alpha; int micro_delay=max(100, (1000000/sample_rate) - 160); if (!use_previous) { lowpass_input[pin] = analogRead(pin); lowpass_prev_out[pin]=lowpass_input[pin]; } int i; for (i=samples;i>0;i--) { delayMicroseconds(micro_delay); lowpass_input[pin] = analogRead(pin); lowpass_cur_out[pin] = alpha*lowpass_input[pin] + one_minus_alpha*lowpass_prev_out[pin]; lowpass_prev_out[pin]=lowpass_cur_out[pin]; } return lowpass_cur_out[pin]; } int resulting_value; void setup() { Serial.begin(9600); resulting_value = adcsample_and_lowpass(0, 1000, 300, 0.015, false); } void loop() { resulting_value = adcsample_and_lowpass(0, 1000, 150, 0.015, true); Serial.println(resulting_value);
ឧទាហរណ៍កូដសម្រាប់ប្រភេទ Arduino ឆ្លងកាត់ខ្ពស់:
int sensorPin = 0; //pin usado para el ADC int sensorValue = 0; //Inicia sensor variable equivalente a EMA Y float EMA_a = 0.3; //Inicialización del EMA Alpha int EMA_S = 0; //Iniciación del EMA s int highpass = 0; void setup(){ Serial.begin(115200); EMA_S = analogRead(sensorPin); } void loop(){ sensorValue = analogRead(sensorPin); //Lee el valor del sensor ADC EMA_S = (EMA_a*sensorValue) + ((1-EMA_a)*EMA_S); //Ejecuta el filtro EMA highpass = sensorValue - EMA_S; //Calcula la seña alta Serial.println(highpass); delay(20); //Espera 20ms }
ឧទាហរណ៍លេខកូដ Arduino ក្រុមតន្រ្តីឆ្លងកាត់:
int sensorPin = 0; //Pin para el ADC int sensorValue = 0; //Inicia la variable del sensor, equivale a EMA Y float EMA_a_low = 0.3; //Inicia EMA Alpha float EMA_a_high = 0.5; int EMA_S_low = 0; //Inicia EMA S int EMA_S_high = 0; int highpass = 0; int bandpass = 0; void setup(){ Serial.begin(115200); EMA_S_low = analogRead(sensorPin); EMA_S_high = analogRead(sensorPin); } void loop(){ sensorValue = analogRead(sensorPin); //Lee el valor del sensor ADC EMA_S_low = (EMA_a_low*sensorValue) + ((1-EMA_a_low)*EMA_S_low); //Ejecuta EMA EMA_S_high = (EMA_a_high*sensorValue) + ((1-EMA_a_high)*EMA_S_high); highpass = sensorValue - EMA_S_low; bandpass = EMA_S_high - EMA_S_low; Serial.print(highpass); Serial.print(" "); Serial.println(bandpass); delay(20); }
ឧទាហរណ៍លេខកូដ Arduino សម្រាប់ក្រុមតន្រ្តី:
int sensorPin = 0; //Pin usado para el ADC int sensorValue = 0; //Inicio para EMA Y float EMA_a_low = 0.05; //Inicio de EMA alpha float EMA_a_high = 0.4; int EMA_S_low = 0; //Inicia EMA S int EMA_S_high = 0; int highpass = 0; int bandpass = 0; int bandstop = 0; void setup(){ Serial.begin(115200); EMA_S_low = analogRead(sensorPin); EMA_S_high = analogRead(sensorPin); } void loop(){ sensorValue = analogRead(sensorPin); //Lee el valor del sensor ADC EMA_S_low = (EMA_a_low*sensorValue) + ((1-EMA_a_low)*EMA_S_low); //Ejecuta EMA EMA_S_high = (EMA_a_high*sensorValue) + ((1-EMA_a_high)*EMA_S_high); bandpass = EMA_S_high - EMA_S_low; bandstop = sensorValue - bandpass; Serial.print(sensorValue); Serial.print(" "); Serial.print(EMA_S_low); Serial.print(" "); Serial.println(bandstop); delay(20); }
ខ្ញុំណែនាំអ្នកឱ្យកែប្រែនិងពិសោធជាមួយកូដទាំងនេះ។ លទ្ធផលអ្នកអាចធ្វើបាន មើលក្រាហ្វិកណាស់ សូមអរគុណដល់សេចកី្តស៊ែរឌ័រនៃអារីដូណូអាយឌីអ៊ី…ចងចាំថាប្រសិនបើអ្នកមានសំណួរអំពីកម្មវិធីអាឌូឌីណូឬរបៀបប្រើអាយឌីអ៊ីអ្នកអាចទាញយក វគ្គសិក្សា HwLibre ឥតគិតថ្លៃនៅក្នុង PDF.
ធ្វើជាយោបល់ដំបូង