Giỏ hàng
Danh mục sản phẩm

Lập Trình ADC Arduino STM32

Đăng bởi Buiprohd@gmail.com ngày bình luận

Hôm nay mình sẽ giới thiệu Lập trình ADC Với Arduino STM32

ADC Arduino AVR là 10bit tương ứng 2^10=1024 giá trị MAX

ADC Arduino STM32F1 và F4 là 12 bit 2^12=4096 giá trị MAX

ADC Arduino STM32H7  là 16 bit 2^16=65535 giá trị MAX

Công thức Tính Volt 

pinMode(PA0,INPUT_ANALOG);

Với giá trị ADC 12 bit

float volt = 3.3 * analogRead(PA0)/4096;// VREF = 3.3v

Với giá trị ADC 16bit

float volt = 3.3 * analogRead(PA0)/65535;// VREF = 3.3v

Chú ý muốn chính xác VREF Chính xác Khuyến cáo dùng Mã LD1117 3V3 Của ST

Nếu các bạn muốn đọc giá trị Lớn Hơn 3.3V thì nối điện trở phân áp .

Công thức Ur=Uv*R2(R1+R2)

Nếu cần chính xác nên dùng điện trở 1% hoặc 0.1%

Công thức Phân áp Ur=Uv*10k/(10k+30k)->Ur=Uv*0.25

VD với Uv =10V ->Ur=10*0.25=2.5V

Đến lập trình Arduino STM32 

Sơ đồ ADC STM32F103C8T6

pinMode(PA0,INPUT_ANALOG); //Khai báo chân Làm đầu vào ADC

Hàm đọc Analog

float volt = vref * analogRead(PA0)/4096;//

Code mẫu :

  http://www.arduino.cc/en/Tutorial/AnalogReadSerial
*/
#define AD0 PA0
// the setup routine runs once when you press reset:
void setup() {
  // initialize serial communication at 9600 bits per second:
  Serial.begin(9600);
  pinMode(AD0,INPUT_ANALOG); 
}

// the loop routine runs over and over again forever:
void loop() {
  // read the input on analog pin 0:
  int sensorValue = analogRead(AD0);
  // print out the value you read:
  Serial.println(sensorValue);
  delay(1);        // delay in between reads for stability
}

 

 

 
 

Cũ hơn Mới hơn