آموزش میکروکنترلر AVRپروژهپروژه های AVRمیکروکنترلرهمه ی مطالب

راه اندازی ماژول شتاب سنج ADXL335

سلام بعد از مدت ها با راه اندازی یک ماژول دیگه در الکترولب خدمتتون هستیم. ماژول ADXL335 یک ماژول شتاب سنج است که یکی از ساده ترین ها برای استفاده و راه اندازی هستش به همین خاطر برای تجربه ی اول کارکردن با شتاب سنج ها این ماژول رو انتخاب کردم در ادامه با تعریف شتاب سنج و کاربرد اون در صنعت آشنا می شیم. پیش نیاز این بحث آشنایی با قسمت ADC میکروکنترلر AVR است که قبلا آموزشی با عنوان مبدل آنالوگ به دیجیتال (ADC) میکروکنترلر های AVR در الکترولب ارائه شده است.

تعریف شتاب سنج

شتاب سنج دستگاهی است که مقدار شتاب صحیح (Proper Acceleration) را اندازه گیری می کند. شتاب صحیح شتاب نسبت به جسم در حال سقوط آزاد است.

شتاب سنج دارای مدل‌های یک محوری و چند محوری است که می توانند اندازه و جهت شتاب را به عنوان یک کمیت برداری اندازه گیری کنند؛ می توان از حسگرهای شتاب سنج برای تعیین موقعیت و آشکار سازی لرزش و ضربه استفاده کرد. شتاب سنج‌های ریزماشین کاری شده با روند رو به افزایشی در لوازم الکترونیکی قابل حمل و کنترلرهای بازی‌های کامپیوتری برای تعیین موقعیت و به عنوان ورودی بازی‌های کامپیوتری به کار می روند.

کاربرد شتاب سنج

شتاب سنج‌ها برای مانیتور کردن سلامت دستگاه‌های چرخشی مانند پمپ ها، پنکه ها، غلتک ها، کمپرسورها و برج‌های خنک کننده می توان استفاده کرد. اثبات شده است که برنامه‌های مانیتور لرزش هزینه‌ها را کاهش می دهند، زمان از کارافتادگی دستگاه‌ها را کاهش می دهد و ایمنی کارخانه را افزایش می دهد. این امر به وسیله تشخیص موقعیت هایی مانند غیر هم محوری شافت‌ها (محورها)، عدم تعادل موتورها و خرابی چرخ دنده ها یا خطا در نیرو که منجر به تعمیرات پرهزینه می شود، صورت می گیرد. اطلاعات لرزشی شتاب سنج‌ها به کاربر اجازه مانیتور کردن ماشین‌ها و پیدا کردن این خطاها را پیش از اینکه دستگاه چرخنده از کار بیفتد می دهد برنامه‌های مانیتور کردن لرزش در صنعت هایی مانند تولید خودرو، استفاده‌های ابزار کار، تولیدات دارویی، تولید انرژی و نیروگاه ها، خمیر کاغذ و کاغذ، تولید آشامیدنی و غذا، آب و فاضلاب و پتروشیمی و تولید فولاد به کار می روند.

معرفی مشخصات ماژول شتاب سنج ADXL335

یک سنسور شتاب سنج 3 محور کوچک، با توان مصرفی پایین و دارای خروجی ولتاژ با حالت دهی سیگنال است. این سنسور میتواند شتابهای استاتیک گرانش مانند کاربردهای زاویه سنجی را اندازه گیری کند. همچنین شتابهای دینامیک مانند شتابهای حرکتی، شوکهای مکانیکی و لرزش در این سنسور قابل اندازه گیری است. کاربر با استفاده از خازنهای CX، CY و CZ میتواند پهنای باند شتاب سنج را متناسب با نیاز در هر سه محور تنظیم نماید. پایه های XOUT، YOUT و ZOUT خروجیهای ولتاژ برای سه محور x  و y و z هستند.

مشخصات ماژول شتاب سنج ADXL335 :

  • خروجی آنالوگ
  • اندازه گیری در بازه +-3.6g
  • ولتاژ تغذیه 1.8 ولت تا 3.6 ولت
  • تولید شده در قالب LFCSP-LQ
  • حساسیت 300 میلی ولت به ازای هر g
  • کاملا حفاظت شده در مقابل حرارت و رطوبت
  • پهنای باند 0.5 هرتز تا 550 هرتز برای محور z
  • پهنای باند 0.5 هرتز تا 1600 هرتز برای محورهای x  و y
  • شتاب سنج سه محور با سه خروجی مجزا برای سه محور x  و y  وz

 مدار لازم راه اندازی ماژول شتاب سنج ADXL335

IMG_1600

از دو تا خازن برای جلوگیری از نویز استفاده کردم یکی در ورودی تغذیه که رو برد برد می بنید و یکی مابین AVCC و GND این خازن ها در شماتیک پایین نیست.

adxl335-shc

 

برنامه ی لازم برای راه اندازی ماژول شتاب سنج ADXL335

با توجه به مشخصات ماژول که در بالا ارئه شد خروجی این ماژول به صورت ولتاژ هست یعنی ما نیاز داریم ولتاژ سه پایه ی X , Y و Z رو برای فهمیدن تغییرات اندازه بگیریم. این کار به وسیله ی ADC میکروکنترلر انجام می شود. در ادامه ما نیاز داریم تا اعداد اندازه گیری شده را در جایی نمایش دهیم من از ارتباط سریال برای این موضوع استفاده کردم تا اعداد نمایش داده شده در مانیتور PC به نمایش در بیاد (به خاطر شلوغ نشدن مدار از ارتابط سریال به جای lcd کاراکتری استفاده کردم) برای نمایش اعداد اندازه گیری شده در کامپیوتر از قسمت ترمینال سریال نرم افزار آردوینو استفاده کردم. اگر با ارتابط سریال در میکروکنترلر AVR آشنایی ندارید می تونید به پست ارتباط سریال AVR مراجعه کنید. در قسمت دوم آموزش ماژول بلوتوث مطالبی رو گفتم می تونید اون هاروهم بخونید.

#include <mega32a.h>
#include <delay.h>
#include <stdio.h>

#define ADC_VREF_TYPE 0x40

unsigned int read_adc(unsigned char adc_input)
{
ADMUX=adc_input | (ADC_VREF_TYPE & 0xff);
delay_us(10);
ADCSRA|=0x40;
while ((ADCSRA & 0x10)==0);
ADCSRA|=0x10;
return ADCW;
}

int x,y,z;
void main(void)
{

// USART initialization
// Communication Parameters: 8 Data, 1 Stop, No Parity
// USART Receiver: On
// USART Transmitter: On
// USART Mode: Asynchronous
// USART Baud Rate: 9600
UCSRA=0x00;
UCSRB=0x18;
UCSRC=0x06;
UBRRH=0x00;
UBRRL=0x47;

// ADC initialization
// ADC Clock frequency: 86.400 kHz
// ADC Voltage Reference: AVCC pin
ADMUX=ADC_VREF_TYPE & 0xff;
ADCSRA=0x87;

while (1)
      {
      x=read_adc(0);
      y=read_adc(1);
      z=read_adc(2);
      printf("x=%d  y=%d    z=%d     electrolab.ir \n",x,y,z);
       delay_ms(333);

      }
}
  •  در سطر 7  تابع read_adc مقدار تبدیل شده ولتاژ رو به ما برمیگردونه
  • در سطر 17 متغییر های X , Y , Z برای ذخیره شدن مقادیر اندازه گیری شده توسط ADC استفاده میشه
  • در سطر 41 تا43 ولتاژ پایه های 0 و 1 و 2 پورت A اندازه گیری میشه و در متغییر های مربوطه قرار داده میشه
  • در سطر44 مقادیر اندازه گیری شده توط دستور printf به صورت سریال به PC فرستاده میشه

خروجی که باید در کامپیوترتون ببینید:

Screenshot (28)

اگر سوالی در مورد این پروژه یا موارد دیگر دارین می تونید در انجمن الکترولب مطرح کنید.

 

علی عزتی

علی عزتی هستم. رشته ی مهندسی برق الکترونیک رو خوندم. علاقه ی من به یادگیری و به اشتراک گذاشتن چیز هایی که یاد گرفتم. باعث شد تا الکترولب ایجاد بشه. علاقه ی زیادی به الکترونیک دارم. و دوست دارم چیزهای جدید یادبگیرم و بسازم ... :))

Related Articles

3 Comments

  1. خیلی ممنونیم از شما
    من طرحی دارم که حول محور این شتاب سنج هاست
    می خواستم بدونم
    شما در مورد اندازه گیری گرانش در این شتاب سنجها می تونید راهنمایی کنید؟
    منظورم بر جسم در حال سقوط نیست
    منظورم ماهیت گرانشیه

    1. سلام
      همون طور که طوی مطلب هم گفتم تجربه ی اول من در کار با این نوع ماژول ها است و اطلاعات خیلی زیادی در این مورد ندارم ولی می تونید به این آدرس مراجعه کنید و سوالاتون رو مطرح کنید در این سایت خیلی با ماژول های شتاب سنج کار شده
      http://roboticngo.com/?s=%D8%B4%D8%AA%D8%A7%D8%A8+%D8%B3%D9%86%D8%AC

  2. سلام
    خسته نباشید
    برای راه اندازی جایرو مدل gy-61 با stm32 خواستم کمکم کنید
    اگه سایتی هم مد نظرتون هست براش لطفا بهم بگید. یا علی

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

این سایت از اکیسمت برای کاهش هرزنامه استفاده می کند. بیاموزید که چگونه اطلاعات دیدگاه های شما پردازش می‌شوند.