តម្រងច្រកទាប: អ្វីគ្រប់យ៉ាងដែលអ្នកត្រូវដឹងអំពីសៀគ្វីនេះ

សៀគ្វីតម្រងឆ្លងកាត់ទាប

រ៉ឺស័រនិងអេមអេមអនុញ្ញាតឱ្យអ្នកបង្កើតសៀគ្វីគួរឱ្យចាប់អារម្មណ៍ខ្លាំងណាស់ដូចជាល្បីល្បាញ តម្រងប្រេកង់។ តម្រងទាំងនេះមានកម្មវិធីជាច្រើននៅក្នុងឧស្សាហកម្មអេឡិចត្រូនិច។ ដូចករណីតម្រងច្រកទាបតម្រងច្រកខ្ពស់ជាដើម។ ពួកវាគួរឱ្យចាប់អារម្មណ៍ជាពិសេសសម្រាប់កម្មវិធីសម្លេងជាក់លាក់ដែលអាចត្រងសំលេងលឺសំលេងរំខានរឺសំលេងខ្លាំងរឺច្រើនទៅតាមប្រេកង់របស់វា។ ដូច្នេះពួកវាមានប្រយោជន៍ណាស់។

ប្រសិនបើអ្នកចង់ដឹងបន្ថែមទៀត តម្រងច្រកទាបនិងតម្រងផ្សេងទៀតនិងវិធីដែលពួកគេអាចជួយអ្នកក្នុងគម្រោងរបស់អ្នកជាមួយអារីដូណូឬ DIY ខ្ញុំលើកទឹកចិត្តឱ្យអ្នកបន្តអាន ...

តម្រងអគ្គិសនី

ដូចដែលឈ្មោះរបស់វាបង្ហាញថាតម្រងគឺជាសៀគ្វីមួយដែលត្រូវបានបង្កើតឡើងដោយស៊េរីនៃឧបករណ៏និងកុងទ័រនិងសូម្បីតែឧបករណ៍ពង្រីកប្រតិបត្តិការមួយចំនួនសម្រាប់គោលបំណងនៃ អនុញ្ញាតឱ្យតែផ្នែកជាក់លាក់នៃការឆ្លងកាត់ប្រេកង់។ នោះគឺពីវិសាលគមទាំងមូលនៃប្រេកង់ដែលអាចប្រើបានពួកគេនឹងត្រងផ្នែកមួយឬច្រើនដើម្បីរារាំងពួកគេពីការឆ្លងកាត់។

ប្រសិនបើសម្រាប់ ejemplo យើងកំពុងនិយាយអំពីវិសាលគមដែលអាចស្តាប់បានដោយមនុស្សដែលមានចាប់ពី ២០ ហឺតដល់ ២០ គីតដោយមានតម្រងដែលអ្នកអាចលុបចោលទាបបំផុតឬខ្ពស់បំផុតដើម្បីអាចឱ្យសំឡេងតិចៗ / បន្ទាបបាសបាសឆ្លងកាត់បាន។ វាជាអ្វីមួយដែលប្រព័ន្ធថតសំលេងឬការផលិតឡើងវិញជាច្រើនប្រើដូចជាមីក្រូហ្វូនឧបករណ៍បំពងសម្លេង។ ល។

ប្រភេទ

នេះបើយោងតាម ប្រភេទតម្រងឬផ្ទុយទៅវិញដោយផ្អែកលើប្រេកង់ដែលពួកគេរារាំងឬសៀគ្វីដែលពួកគេបានឆ្លងកាត់មានសៀគ្វីផ្សេងៗគ្នាដែលមានៈ

  • តម្រងច្រកទាប: ពួកគេត្រូវបានគេហៅថាដូច្នេះពីព្រោះពួកគេជាតម្រងទាំងនោះដែលអនុញ្ញាតឱ្យប្រេកង់ទាបបំផុតឆ្លងកាត់និងបង្ក្រាបឬកាត់បន្ថយការឆ្លងកាត់នៃប្រេកង់ខ្ពស់។ ពួកវាមានរ៉ឺស័រមួយរឺច្រើន (ជាស៊េរីជាមួយការផ្គត់ផ្គង់ថាមពលនិងបន្ទុក) និងឧបករណ៍ភ្ជាប់ចរន្តអគ្គិសនីមួយរឺក៏ពីរជាមួយនឹងការផ្គត់ផ្គង់និងបន្ទុក។ ចងចាំថាបន្ទុកត្រូវបានគេយល់ថាជាឧបករណ៍ដែលភ្ជាប់ទៅនឹងតម្រងហើយដែលប្រមូលលទ្ធផលរបស់តម្រង ... នៅក្នុងតម្រងទាំងនេះក៏មានបំរែបំរួលដូចជា L, T និង π.
  • តម្រងច្រកខ្ពស់៖ តម្រងច្រកខ្ពស់គឺផ្ទុយពីច្រកទាបក្នុងករណីនេះអ្វីដែលវានឹងត្រងឬកំណត់គឺច្រកប្រេកង់ទាបដែលអនុញ្ញាតឱ្យប្រេកង់ខ្ពស់ឆ្លងកាត់។ នៅក្នុងនេះធាតុអេឡិចត្រូនិចដែលតែងវាត្រូវបានវិនិយោគ។ នោះគឺនៅទីនេះឧបករណ៍ចាប់ថាមពលនឹងជាស៊េរីដែលមានការផ្គត់ផ្គង់ថាមពលនិងបន្ទុកខណៈដែលរ៉ឺស័រនឹងត្រូវរលត់។ វាក៏មានប្រភេទរងដូចក្នុងករណីតម្រងឆ្លងកាត់ទាប។
  • តម្រងច្រកក្រុមតន្រ្តី: ប្រភេទនៃតម្រងនេះបញ្ចោញប្លុកអត្រាឆ្លងកាត់ប្រេកង់ពីរ។ នោះគឺពួកគេដើរតួទាំងតម្រងច្រកទាបនិងជាតម្រងឆ្លងកាត់ខ្ពស់ប្រឆាំងនឹងការឆ្លងកាត់ប្រេកង់ទាបបំផុតនិងខ្ពស់បំផុតក្នុងពេលតែមួយ។ និយាយម៉្យាងទៀតវាគ្រាន់តែអនុញ្ញាតឱ្យប្រេកង់កណ្តាលឆ្លងកាត់ប៉ុណ្ណោះ។
  • តម្រងក្រុមតន្រ្តី៖ វាពិតជាផ្ទុយពីប្រវតិ្តសាស្រ្តមុនដែលវាធ្វើគឺវាត្រងការឆ្លងកាត់នៃប្រេកង់ពាក់កណ្តាលហើយអនុញ្ញាតអោយឆ្លងកាត់ប្រេកង់ទាបបំផុតនិងខ្ពស់បំផុត។

ចងចាំថា inductances ពួកគេអនុញ្ញាតឱ្យឆ្លងកាត់ប្រេកង់ទាបហើយប្រឆាំងនឹងការឆ្លងកាត់ប្រេកង់ខ្ពស់។ ផ្ទុយទៅវិញ កុងទ័រ ពួកគេអនុញ្ញាតឱ្យឆ្លងកាត់ប្រេកង់ខ្ពស់ហើយប្រឆាំងនឹងការឆ្លងកាត់ប្រេកង់ទាប។

ខ្ញុំចង់បន្ថែមតម្រងនៅលើកំរិតជាក់ស្តែង ពួកគេមិនល្អឥតខ្ចោះហើយពួកគេតែងតែអនុញ្ញាតឱ្យប្រេកង់ទាបឬខ្ពស់មួយចំនួនដែលអ្នកគួរតែរារាំង។ ទោះយ៉ាងណាក៏ដោយពួកគេបំពេញការងាររបស់ពួកគេបានយ៉ាងល្អសម្រាប់កម្មវិធីភាគច្រើន។

ហើយចុងក្រោយខ្ញុំសូមបញ្ជាក់ពីរឿងមួយទៀតហើយនោះគឺថាអ្នកប្រាកដជាធ្លាប់លឺហើយ តម្រង EMA និង DEMA។ តម្រងអេម៉ាអេមអេមអេមអេសអេមអេសអេមអេស (អឹមភីអិលអេសភីអិលធីឌី) អនុញ្ញាតឱ្យអនុវត្តតម្រងប្រភេទនេះតាមរបៀបសាមញ្ញក្នុងឧបករណ៍ដែលបានបង្កប់។ ចំពោះឌីអេអេអេអេអេអេអេ (អេឡិចត្រូនិកផ្លាស់ទីមធ្យមទ្វេ) ពួកគេមានការឆ្លើយតបលឿនជាងអេម៉ាអេមដោយរក្សានូវសម្លេងរំខានល្អដែលអ្នកចង់ជៀសវាង។

កត្តាអាល់ហ្វា

El កត្តាអាល់ហ្វាដែលអ្នកនឹងឃើញដែលបង្ហាញនៅក្នុងលេខកូដ Arduino IDE នៅក្នុងផ្នែកបន្ទាប់គឺជាប៉ារ៉ាម៉ែត្រដែលកំណត់ឥរិយាបថនៃតម្រងនិទស្សន្ត។ វាទាក់ទងនឹងប្រេកង់កាត់៖

  • អាល់ហ្វា = ១៖ ដែលផ្តល់ជាសញ្ញាមួយដល់ទិន្នផលដែលមិនបានកែ។
  • អាល់ហ្វា = ០៖ តម្លៃតម្រងនឹងមាន ០ ជានិច្ច។
  • អាល់ហ្វា = x: តម្លៃផ្សេងទៀតអាចទទួលបានការផ្លាស់ប្តូរផ្សេងទៀតនៅក្នុងតម្រងអេម៉ាអេម។ ប្រសិនបើអ្នកបន្ថយកត្តាអាល់ហ្វាអ្នកនឹងបន្ទន់សញ្ញាប្រេកង់ដែលទទួលបានកាន់តែច្រើនហើយពេលវេលាឆ្លើយតបរបស់ប្រព័ន្ធក៏កើនឡើងដែរ (វាត្រូវការពេលយូរដើម្បីស្ថេរភាព) ។

តម្រងនិងអារីដូណូ

ឡានក្រុង Arduino I2C

សម្រាប់ការប្រើប្រាស់តម្រងទាំងនេះការប្រើប្រាស់បណ្ណាល័យសម្រាប់អាឌូឌីណូអាយអ៊ីនឹងធ្វើឱ្យការងាររបស់អ្នកកាន់តែងាយស្រួល។ លោក​អ្នក​អាច​ប្រើ ដូចគ្នានេះ.

អ្នកគួរតែដឹងថាវាមិនចាំបាច់ក្នុងការបង្កើតសៀគ្វីទេ តម្រងច្រកខ្ពស់ឬតម្រងច្រកទាប ដើម្បីភ្ជាប់វាទៅនឹងក្តារ 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);                                
}

ចងចាំថាអេឌីស៊ីគឺជាឧបករណ៍បំលែងអាណាឡូកឌីជីថល។ ប្រើជួរ ០-៥ វ៉ចែកជាជួរពី ០-១០២៣ ។ ប្រសិនបើតម្លៃគឺ 0v នោះតម្លៃឌីជីថលនៃ 5 ត្រូវបានគេយកហើយប្រសិនបើវាគឺ 0v, 1023 នឹងត្រូវបានយកជាតម្លៃសញ្ញា, 0v អាចជា 0m, 5v នឹង 1023 ។ ល។

ខ្ញុំណែនាំអ្នកឱ្យកែប្រែនិងពិសោធជាមួយកូដទាំងនេះ។ លទ្ធផលអ្នកអាចធ្វើបាន មើលក្រាហ្វិកណាស់ សូមអរគុណដល់សេចកី្តស៊ែរឌ័រនៃអារីដូណូអាយឌីអ៊ី…ចងចាំថាប្រសិនបើអ្នកមានសំណួរអំពីកម្មវិធីអាឌូឌីណូឬរបៀបប្រើអាយឌីអ៊ីអ្នកអាចទាញយក វគ្គសិក្សា HwLibre ឥតគិតថ្លៃនៅក្នុង PDF.


ខ្លឹមសារនៃអត្ថបទប្រកាន់ខ្ជាប់នូវគោលការណ៍របស់យើង ក្រមសីលធម៌វិចារណកថា។ ដើម្បីរាយការណ៍ការចុចកំហុស នៅទីនេះ.

ធ្វើជាយោបល់ដំបូង

ទុកឱ្យយោបល់របស់អ្នក

អាសយដ្ឋានអ៊ីមែលរបស់អ្នកនឹងមិនត្រូវបានបោះពុម្ភ។ អ្នកគួរតែអនុវត្តតាម *

*

*

  1. ទទួលខុសត្រូវចំពោះទិន្នន័យ: មីហ្គែល - ហ្គែលហ្គេតថន
  2. គោលបំណងនៃទិន្នន័យ៖ គ្រប់គ្រង SPAM ការគ្រប់គ្រងមតិយោបល់។
  3. ភាពស្របច្បាប់៖ ការយល់ព្រមរបស់អ្នក
  4. ការប្រាស្រ័យទាក់ទងទិន្នន័យ៖ ទិន្នន័យនឹងមិនត្រូវបានទាក់ទងទៅភាគីទីបីឡើយលើកលែងតែកាតព្វកិច្ចផ្នែកច្បាប់។
  5. ការផ្ទុកទិន្នន័យ៖ មូលដ្ឋានទិន្នន័យដែលរៀបចំដោយបណ្តាញ Occentus (EU)
  6. សិទ្ធិ៖ នៅពេលណាដែលអ្នកអាចដាក់កម្រិតទាញយកមកវិញនិងលុបព័ត៌មានរបស់អ្នក។