ویژگی های ماژول مبدل آنالوگ به دیجیتال ADS1232
در بیشتر میکروکنترلرها، مبدل آنالوگ به دیجیتال وجود دارد اما این مبدل از دقت بالایی برخوردار نیست. در بسیاری از پروژه ها نیاز است مقادیر آنالوگ با دقت بالا اندازهگیری شود یا سطح ولتاژ مقادیر آنالوگ در محدوده اندازهگیری میکروکنترلر نمیباشد و یا میکروکنترلر مورد استفاده مبدل آنالوگ به دیجیتال ندارد. در این موارد از IC های جانبی مبدل آنالوگ به دیجیتال استفاده میگردد.
آیسی ADS1232 یکی از انواع آیسیهای مبدل آنالوگ به دیجیتال میباشد که دارای دقت 24 بیتی است. از این ماژول برای اندازهگیری مقادیر پل وتستون (Wheatstone bridge) استفاده میشود.
جهت دریافت دیتاشیت ADS1232 اینجا کلیک کنید.
معرفی پایه ها (Pinout) ماژول مبدل آنالوگ به دیجیتال ADS1232
ماژول مبدل آنالوگ به دیجیتال ADS1232 دارای 10 پایه به شرح زیر است:
- 3: تغذیه لاجیک ماژول
- 5v: تغذیه ماژول
- GND: زمین
- REFP: ولتاژ رفرنس برای اندازه گیری
- SCLK: همزمان سازی برای پروتکل
- DOUT: خط ارسالی اطلاعات برای پروتکل
- POMN: کنترل پاور ماژول
- SPEED: انتخاب سرعت دیتا
- GAIN1: انتخاب گین
- GAIN0: انتخاب گین
- TEMP: انتخاب سنسور دما
- A0: ورودی آنالوگ اول
- CLKIN: ورودی کلاک خارجی
- AINP1: ورودی پل وتستون اول
- AINP2: ورودی پل وتستون دوم
لوازمی که به آن احتیاج دارید
قطعات مورد نیاز
نرم افزارهای موردنیاز
راهاندازی ماژول مبدل آنالوگ به دیجیتال ADS1232 با استفاده از آردوینو
گام اول: سیم بندی
مطابق مدار زیر، ماژول را به آردوینو وصل کنید.
نکته
برای تست ماژول از یک لودسل استفاده شده است.
گام دوم: نصب کتابخانه
کتابخانه زیر را بر آردوینوی خود نصب کنید.
توجه
اگر نیاز به راهنمایی بیشتر برای نصب کتابخانه بر روی آردوینو دارید، می توانید به آموزش نصب کتابخانه بر آردوینو مراجعه کنید.
گام سوم: کد
کد زیر را روی برد آردوینوی خود آپلود کنید.
/*
Modify on May 16, 2021
Modify by MohammedDamirchi base of https://github.com/ciorceri/ADS1232
https://electropeak.com/learn/
*/
#define _dout 6
#define _sclk 7
#define _pdwn 8
#include "ADS1232.h"
ADS1232 weight = ADS1232(_pdwn, _sclk, _dout);
void do_calibration() {
long t_new_offset = 0;
long t_raw_read = 0;
float t_set_scale_value = 0;
float t_weight = 0;
// reset to default values
weight.OFFSET = 0;
weight.SCALE = 1.0;
// tare
t_new_offset = weight.raw_read(3);
weight.OFFSET = t_new_offset;
Serial.print("Calibration offset = ");Serial.println(weight.OFFSET);
Serial.println("You have 10 seconds to put a 2L CocaCola bottle on scale");
delay(10000);
// do calibration based on a known weight
t_raw_read = weight.raw_read(3);
Serial.print("Units read = ");Serial.println(t_raw_read);
t_set_scale_value = t_raw_read / 2.0; // divide it to the weight of a CocaCola bottle
weight.SCALE = t_set_scale_value;
Serial.print("Calibration scale value = ");Serial.println(weight.SCALE);
// read weight
t_weight = weight.units_read(3);
Serial.print("Weight = ");Serial.println(t_weight);
}
void setup() {
Serial.begin(9600);
weight.power_up();
do_calibration();
}
void loop() {
Serial.println(weight.units_read(3));
delay(1000);
*/
این کد جهت تست اندازهگیری پل وتستون در پایههای AINP1 میباشد.