ماژول شتاب سنج سه محوره ADXL345
ماژول شتاب سنج ADXL345 توانایی شتاب سنجی سه محوره را دارد. البته توانایی خروجی برای هر سه محور به صورت مجزا را داراست. سنسور به کار رفته در این ماژول از نوع سه محور MEMS می باشد. از ویژگی های سنسور شتاب سنج سه محوره ADXL345 می توان به ابعاد، نویز کم و رزولوشن بالا در خروجی داده ها اشاره کرد. از دیگر ویژگی های این سنسور سنجش ADXL345 شتاب گرانش یا همان شتاب g با تلورانس ± 16 g می باشد.ADXL345 یک ماژول شتاب سنج 3 محوره MEMS کم مصرف با هر دو رابط I2C و SPI است. ADXL34 دارای 4 محدوده حساسیت از 2G +/- تا 16G +/- است.
سنسور ADXL345 از نرخ داده خروجی از 10 هرتز تا 3200 هرتز پشتیبانی می کند. دیتای خروجی به صورت مکمل دو بیتی 16 بیتی بخش بندی می شوند و از طریق SPI (3 الی 4 سیم) یا I2 قابل دسترسی هستند. تغییر در مقادیر x ,y و zباعث تغییر ظرفیت بین صفحات ثابت و صفحات متصل به ساختار درون تراشه می شود. این تغییر ظرفیت در هر محور به ولتاژ خروجی متناسب با شتاب در آن محور تبدیل می شود.
این سنسور شتاب استاتیکی گرانش را در کاربردهای تشخیص میزان شیب و همچنین شتاب دینامیکی ناشی از حرکت یا ضربه را اندازه گیری می کند. ماژول GY-291 یک شتاب سنج سه محوره مبتنی بر سنسور ADXL345 است که به وسیلهی شرکت Analog Devices تولید شده است. این ماژول اطلاعاتی را در مورد شتاب و شتاب زاویهای محورهای x، y و z در فضا به شما ارائه میدهد. این ماژول برای کاربردهای مختلفی مانند کنترل حرکتی، ردیابی حرکت، روباتیک، موتورهای فعالیتی، و دیگر کاربردهایی که به دنبال اندازهگیری شتاب هستند مفید است. ماژول ADXL345 سیگنال خروجی به صورت دیجیتالی است و میتوانید آن را به راحتی با استفاده از میکروکنترلرها و بردهای آردوینو خواند. همچنین، این ماژول از طریق اتصالات I2C با کامپیوتر یا سایر دستگاههای الکترونیکی ارتباط برقرار میکند.
کاربرد ماژول ADXL345
این سنسور دیتای مربوط به تغییرات محور های x , y و z را در اختیار ما قرار میدهد، که از این مقادیر میتوان برای پروژه های رباتیک، تشخیص تراز بودن سطوح، مانیتورینگ تغییرات در اجسام و سناریو های مختلفی استفاده کرد. ADXL345دارای آدرس 0x53 است. هنگام راهاندازی می توانید گذرگاه I2C را با سایر دستگاه های I2C به اشتراک بگذارید به شرط آنکه هر دستگاه آدرس خاصی داشته باشد.
ویژگی های شتاب سنج ADXL345
- ولتاژ راهاندازی 3 تا 5 ولت
تشخیص سه محور X , Y , Z
پشتیباتی از پروتکل I2C
محدوده حساسیت 2G +/- الی 16G +/- - سنسور ADXL345 ADXL345 دارای دقت بالایی در اندازهگیری شتاب است و از نویز کمی برخوردار است.
- سنسور ADXL345 قادر است شتاب در محدوده ±2g تا ±16g را اندازهگیری کند.
- سنسور ADXL345 از خروجی دیجیتالی استفاده میکند که میتواند به راحتی با میکروکنترلرها و بردهای آردوینو خوانده شود.
- سنسور ADXL345 دارای قابلیت کالیبراسیون است که به کاربر این امکان را میدهد تا اندازهگیریها را با دقت بیشتری انجام دهد.
- سنسور ADXL345 از قابلیت اندازهگیری شتاب زاویهای بهره میبرد که میتواند برای برخی کاربردهای روباتیک و کنترل حرکتی بسیار مفید باشد.
بررسی پایه های ماژول ADXL345
ماژول ADXL345 در برخی نسخهها دارای 8 پایه است که به صورت زیر است:
- VCC: ولتاژ تغذیه، با اتصال به این پین، ولتاژ تغذیه به ماژول تأمین میشود. ولتاژ تغذیه باید در محدوده ۲.۰ تا ۳.۶ ولت باشد.
- GND: زمین، این پین به زمین متصل میشود.
- CS: Chip Select، یک پین ورودی که توسط کنترل کننده میکروکنترلر کنترل میشود و برای انتخاب ماژول در حالت SPI مورد استفاده قرار میگیرد.
- SDA: Data line، پین داده در رابط I2C است.
- SCL: Clock line، پین ساعت در رابط I2C است.
- INT1: یک پین خروجی، که وقایع مختلفی مانند تغییر محور شتابسنج، شوک و اندازهگیریهای دیگر را اعلام میکند.
- INT2: یک پین خروجی دیگر، که برای موارد مشابه INT1 استفاده میشود.
- AD0: یک پین ورودی/خروجی که برای تنظیم آدرس I2C ماژول مورد استفاده قرار میگیرد. با وصل کردن این پین به VCC یا GND، آدرس ماژول در شبکه I2C تغییر میکند.
راه اندازی ماژول ADXL345 با آردوینو
به منظور خواندن داده های ماژول ADXL345 با استفاده از آردوینو، ابتدا کتابخانهی Adafruit_ADXL345 را از لینک زیر دانلود و نصب کنید:
https://github.com/adafruit/Adafruit_ADXL345
#include <Wire.h>
#include <Adafruit_Sensor.h>
#include <Adafruit_ADXL345_U.h>
/* Assign a unique ID to the sensors */
Adafruit_ADXL345_Unified accel = Adafruit_ADXL345_Unified(12345);
void setup(void)
{
Serial.begin(9600);
/* Wait for the Serial Monitor */
while (!Serial) {}
/* Enable the ADXL345 */
if(!accel.begin())
{
/* There was a problem detecting the ADXL345 ... check your connections */
Serial.println("Ooops, no ADXL345 detected ... Check your wiring!");
while(1);
}
}
void loop(void)
{
/* Get a new sensor event */
sensors_event_t event;
accel.getEvent(&event);
/* Display the results (acceleration is measured in m/s^2) */
Serial.print("X: "); Serial.print(event.acceleration.x); Serial.print(" ");
Serial.print("Y: "); Serial.print(event.acceleration.y); Serial.print(" ");
Serial.print("Z: "); Serial.print(event.acceleration.z); Serial.print(" ");
Serial.println("m/s^2 ");
delay(500);
}
راه اندازی ماژول ADXL345 با میکروپایتون و ESP32
در این کد، ابتدا کتابخانههای مورد نیاز را import کرده و سپس از تابع machine.I2C() برای متصل کردن ESP32 به سنسور استفاده شده است. سپس از کلاس adxl345.ADXL345() برای ایجاد یک شی از سنسور استفاده شده است.در ادامه، در یک حلقه بینایی، دادههای محور x، y و z خوانده شده و در پورت سریال نمایش داده میشوند. توجه داشته باشید که برای استفاده از این کد، ماژول ADXL345 باید به درستی به ESP32 متصل شده باشد. همچنین، شماره پایههای SCL و SDA برای متصل کردن ESP32 به ماژول ADXL345 باید مطابق با نحوه اتصال شما باشد.
import machine
import time
import adxl345
import machine
import time
import adxl345
# Initialize the ADXL345 sensor
i2c = machine.I2C(scl=machine.Pin(22), sda=machine.Pin(21))
accel = adxl345.ADXL345(i2c)
while True:
# Read acceleration data
x, y, z = accel.getAxes(True)
# Print the data
print("X: ", x)
print("Y: ", y)
print("Z: ", z)
time.sleep(0.5)
راه اندازی ماژول ADXL345 با میکروپایتون و RP2040
در این کد، ابتدا کتابخانههای مورد نیاز را import کرده و سپس از تابع machine.I2C() برای متصل کردن RP2040 به سنسور استفاده شده است. سپس از کلاس adxl345.ADXL345() برای ایجاد یک شی از سنسور استفاده شده است.در ادامه، در یک حلقه بینایی، دادههای محور x، y و z خوانده شده و در پورت سریال نمایش داده میشوند. توجه داشته باشید که برای استفاده از این کد، ماژول ADXL345 باید به درستی به RP2040 متصل شده باشد. همچنین، شماره پایههای SCL و SDA برای متصل کردن RP2040 به ماژول ADXL345 باید مطابق با نحوه اتصال شما باشد.
import machine
import time
import adxl345
import machine
import time
import adxl345
# Initialize the ADXL345 sensor
i2c = machine.I2C(0, scl=machine.Pin(5), sda=machine.Pin(4))
accel = adxl345.ADXL345(i2c)
while True:
# Read acceleration data
x, y, z = accel.getAxes(True)
# Print the data
print("X: ", x)
print("Y: ", y)
print("Z: ", z)
time.sleep(0.5)
مشخصات
- نوع ماژول
- شتاب و ژایرو
- تعداد قطعات
- 10 عدد
- ابعاد فیبر
- 1.5 * 2 سانتی متر
- ولتاژ مورد نياز
- 3 تا 5 ولت DC
- توان
- تشخیص شتاب های حرکتی، لرزش ها و شوک های مکانیکی
- ظرفیت
- تشخیص سه محوری X , Y , Z
- کشور سازنده
- چین
- نوع کانکتور
- پین هدر
- نوع سنسور
- شتاب سنج
توسط همین ماژول هم میتوانید اقدام به اجرای درخواستتان کنید. البته اگر فقط بخواهید یک سلول باتری لیتیومی را مدیریت شارژ کنید، همان گزینه ماژول TP4056 مناسب خواهد بود.
امکان راه اندازی چند سنسور DHT با ESP8266 با استفاده از MicroPython وجود دارد. سنسورهای DHT با پروتکل دیجیتال و از طریق پایههای GPIO قابل اتصال به میکروکنترلرها هستند.
برای ساخت یک سیستم کنترل دما با برد میکروکنترلر ESP32، به موارد زیر نیاز دارید:
یک برد میکروکنترلر ESP32
یک سنسور دما مثل DHT DS18B20
یک المان سرد کننده
با استفاده از کتابخانه DHT.h، میتوانید از سنسور دما برای خواندن دمای محیط استفاده کنید. سپس، میتوانید از این دما برای کنترل المان گرمایشی یا سرمایشی استفاده کنید.
در خصوص برنامه نویسی از کتابخانه DHT و در صورت نیاز کتابخانه وای فای برای ارسال دادهها به پلتفرم IoT باید استفاده کنید.