Tuesday, January 28, 2020

AnalogRead ជាមួយ Arduino និង Potentiometer


Analog នៅក្នុង Arduino ភាគច្រើនប្រើជា Input ដែលមានបម្រែបម្រួលតង់ស្យុង(Voltage)ដែលបានពី Sensor ផ្សេងៗដូចជា Potentiometer, LDR ... ។

នៅក្នុងអត្ថបទនឹងណែនាំពីការសាកល្បងជាមួយ AnalogRead នៅក្នុង Arduino ជាមួយ Potentiometer ដោយប្រើជើង Ananlog របស់ Arduino UNO។ ដោយសារជើង Arduino UNO ដំណើរការចន្លោះ 0V-5V (operating voltage)ដែល Analog ជាប្រភេទ multichannel (អាចប្រើជើងច្រើនក្នុងពេលតែមួយ) និងជាប្រភេទ analog to digital converter​ (ADC) ដោយបម្លែងពីតង់ស្យុងប្រែប្រួលទៅជាតម្លៃ Digital ចន្លោះ 0-1023 (10-bit)។ 

ដែលមានន័យថាយើងនឹងទទួលបានតម្លៃ 0-1023 ធៀបនឹង 0-5V ឫ មានន័យថា 5V/1024 (1024តួ រាប់ទាំងតួសូន្យ) ដែលអាចទទួលបានភាពខុសគ្នាចន្លោះ 0.0049V (4.9 mV) ក្នុងមួយចន្លោះនៃតម្លៃ Digital។

យើងអាចទទួលបានតម្លៃខាងលើដោយប្រើ (តម្លៃដែលទទួលបានជាចំនួនគត់ int)៖

int sensorValue = analogRead(A2);

ក្នុងករណីចង់ទទួលបានតម្លៃជាតង់ស្យុងវិញ យើងត្រូវធ្វើផលធៀបដូចខាងក្រោម (តម្លៃតង់ស្យុងអាចជាទសភាគ float)៖

float voltage= sensorValue * (5.0 / 1024.0);

កូដក្នុងការធ្វើតេស្តដូចខាងក្រោម៖

  1. void setup() {  
  2.   Serial.begin(9600);  
  3. }  
  4.   
  5.   
  6. void loop() {  
  7.   // read the input on analog pin 2:  
  8.   int sensorValue = analogRead(A2);  
  9.   // Convert the analog read (which goes from 0 - 1023) to a voltage (0 - 5V)
  10.   float voltage = sensorValue * (5.0 / 1024.0);  
  11.   // print out the value you read:  
  12.   Serial.print("SensorValue: ");  
  13.   Serial.print(sensorValue);  
  14.   Serial.print(" | Voltage: ");  
  15.   Serial.println(voltage);  


អត្ថបទយោង៖
AnalogRead