Mundarija:
- 1 -qadam: komponentlar
- 2 -qadam: printsip
- 3 -qadam: protseduralar
- 4 -qadam: kod
- 5 -qadam: kodni tahlil qilish
Video: ADXL345 Arduino Uno R3 dan foydalanish: 5 qadam
2024 Muallif: John Day | [email protected]. Oxirgi o'zgartirilgan: 2024-01-30 13:25
Bu darsda biz ADXL345 tezlashtirish sensori qanday ishlatilishini bilib olamiz.
1 -qadam: komponentlar
- Arduino Uno taxtasi * 1
- USB kabeli * 1
- ADXL345 *1
- Non paneli * 1
- o'tish simlari
2 -qadam: printsip
Akselerometr tezlashtirish paytida hosil bo'lgan kuchni o'lchash uchun ishlatiladi. Eng asosiysi-umumiy tortishish tezligi, ya'ni 1g.
Gravitatsiyadan kelib chiqadigan tezlanishni o'lchab, siz qurilmaning tekis yuzasiga burilish burchagini hisoblashingiz mumkin. Dinamik tezlanishni tahlil qilib, siz qurilmaning qanday harakatlanishini ayta olasiz. Masalan, o'z-o'zini muvozanatlaydigan taxta yoki hoverboard Kalman filtri va holatini to'g'rilash uchun tezlashtirish sensori va giroskopni qo'llaydi.
ADXL345
ADXL345-bu kichik, ingichka, kam quvvatli, 3 o'qli akselerometr bo'lib, yuqori aniqlikdagi (13-bitli) o'lchami ± 16 g gacha. Raqamli chiqish ma'lumotlari 16 bitli ikkita qo'shimcha sifatida formatlanadi va ularga SPI (3 yoki 4 simli) yoki I2C raqamli interfeysi orqali kirish mumkin. Bu tajribada I2C raqamli interfeysi ishlatiladi.
Nishabni aniqlashda tortishish statik tezlanishini, shuningdek harakat yoki zarba natijasida dinamik tezlanishni o'lchash uchun juda mos keladi. Uning yuqori aniqligi (4 mg/LSB) moyillik o'zgarishini 1,0 ° dan past o'lchash imkonini beradi. Va mukammal sezuvchanlik (3,9mg/LSB @2g) ± 16g gacha yuqori aniqlikdagi chiqishni ta'minlaydi.
ADXL345 qanday ishlaydi
ADXL345 old tomondan sezuvchi komponent bilan tezlanishni aniqlaydi, keyin elektr signalini sezuvchi komponent uni analogli elektr signaliga o'zgartiradi. Keyinchalik, modulga o'rnatilgan AD adapteri analog signalni raqamli signalga aylantiradi.
X_OUT, Y_OUT va Z_OUT - mos ravishda X, Y va Z o'qlaridagi qiymatlar. Modulni yuqoriga qarating: Z_OUT maksimal +1g ga yetishi mumkin, minimal X_OUT -Ax yo'nalishi bo'yicha -1g, Y_OUT minimal -Ay yo'nalishi bo'yicha -1g. Boshqa tomondan, modulni teskari tomonga burang: minimal Z_OUT -1g, maksimal X_OUT Ax yo'nalishi bo'yicha +1g, Y_OUT maksimal -Ay yo'nalishi bo'yicha +1g., quyida ko'rsatilganidek. ADXL345 modulini aylantiring va siz uchta qiymat o'zgarishini ko'rasiz.
A kanali yuqori darajadan past darajaga o'zgarganda, agar B kanali yuqori bo'lsa, bu aylanuvchi enkoderning soat yo'nalishi bo'yicha aylanishini ko'rsatadi (CW); agar o'sha paytda B kanali past darajada bo'lsa, bu soat yo'nalishi bo'yicha teskari aylanishni bildiradi (CCW). Agar biz A kanali past bo'lganida B kanalining qiymatini o'qigan bo'lsak, aylanadigan kodlovchi qaysi tomonga burilishini bilishimiz mumkin.
Printsip: Quyidagi Rotary Enkoder modulining sxematik diagrammasini ko'ring. Undan ko'rish mumkinki, aylanadigan kodlovchi 3 -pin, ya'ni moduldagi CLK, B. kanali, 5 -pin, DT, A kanali. Yozuvchining aylanish yo'nalishini bilish uchun CLK qiymatini o'qing va DT.
Tizimda 3,3 V kuchlanish regulyatori mavjud, shuning uchun siz 5 V yoki 3,3 V kuchlanishli modulni quvvatlantirishingiz mumkin.
SDO GND ga ulanganligi sababli, ADXL345 ning I2C manzili 0x53, yozish uchun 0xA6, o'qish uchun 0xA7.
ADXL345 modulining pin funktsiyasi.
3 -qadam: protseduralar
Qadam 1. Zanjirni yarating.
2 -qadam:
Kodni https://github.com/primerobotics/Arduino saytidan yuklab oling
3 -qadam:
Eskizni Arduino Uno taxtasiga yuklang
Kodni boshqaruv paneliga yuklash uchun Yuklash belgisini bosing.
Agar oynaning pastki qismida "Yuklandi" tugmasi paydo bo'lsa, bu eskiz muvaffaqiyatli yuklanganligini bildiradi.
Yuklashdan so'ng, aniqlangan ma'lumotlarni ko'rishingiz mumkin bo'lgan Serial Monitor -ni oching. Modul tezlashishi o'zgarganda, rasm shunga mos ravishda oynada o'zgaradi.
4 -qadam: kod
// ADXL335
/********************************
ADXL 335
Eslatma: vcc5v, lekin ADXL335 Vs - 3,3V
O'chirish:
5V: VCC
analog 0: x o'qi
analog 1: y o'qi
analog 2: z o'qi
Yonilgandan keyin
Dasturda ketma -ket monitorni disk raskadrovka oynasini oching, u erda aniqlangan ma'lumotlar ko'rsatiladi. Qachon tezlanish o'zgarsa, ko'rsatkich shunga mos ravishda o'zgaradi.
*********************************
/Elektron pochta:
// Veb -sayt: www.primerobotics.in
const int xpin =
A0; // akselerometrning x o'qi
const int ypin =
A1; // y o'qi
const int zpin =
A2; // z o'qi (faqat 3 o'qli modellarda)
bo'sh o'rnatish ()
{
// ketma -ket aloqalarni ishga tushirish:
Serial.begin (9600);
}
bo'sh halqa ()
{
int x = analogRead (xpin); // xpindan o'qing
kechikish (1); //
int y = analogRead (ypin); // ypindan o'qing
kechikish (1);
int z = analogRead (zpin); // zpindan o'qing
float zero_G = 338.0; // ADXL335 quvvat manbai
Vs 3.3V tomonidan: 3.3V/5V*1024 = 676/2 = 338
//Serial.print(x);
//Serial.print("\t ");
//Serial.print(y);
//Serial.print("\t ");
//Serial.print(z);
//Serial.print("\n ");
suzmoq
zero_Gx = 331.5; // x o'qining zero_G chiqishi: (x_max + x_min)/2
suzmoq
zero_Gy = 329.5; // y o'qining zero_G chiqishi: (y_max + y_min)/2
float zero_Gz = 340.0; //
z o'qining zero_G chiqishi: (z_max + z_min)/2
float shkalasi =
67.6; // Vs 3.3V quvvat manbai: 3.3v/5v *1024/3.3v *330mv/g = 67.6 g
float scale_x =
65; // x o'qi shkalasi: x_max/3.3v*330mv/g
float scale_y =
68.5; // y o'qi shkalasi: y_max/3.3v*330mv/g
float scale_z =
68; // z o'qi shkalasi: z_max/3.3v*330mv/g
Serial.print (((float) x
- zero_Gx)/miqyosi_x); // ketma -ket monitorda x qiymatini chop etish
Serial.print ("\ t");
Serial.print (((float) y
- zero_Gy)/miqyosi_y); // ketma -ket monitorda y qiymatini chop eting
Serial.print ("\ t");
Serial.print (((float) z
- zero_Gz)/scale_z); // ketma -ket monitorda z qiymatini chop eting
Serial.print ("\ n");
kechikish (1000); // 1 soniya kuting
}
5 -qadam: kodni tahlil qilish
ADXL345 eksperimentining kodi 3 qismdan iborat: har bir port va qurilmani ishga tushirish, sensorlardan yuborilgan ma'lumotlarni olish va saqlash va ma'lumotlarni konvertatsiya qilish.
Tavsiya:
DC MOTOR MOSFET Arduino -dan foydalanish tezligini boshqarish: 6 qadam
Arduino yordamida DC MOTOR MOSFETni boshqarish tezligi: Ushbu qo'llanmada biz MOSFET moduli yordamida shahar motorining tezligini boshqarishni o'rganamiz. Videoni tomosha qiling
Qo'llanma: Arduino UNO bilan RGB Rangli Datchikli Sensor TCS230 -dan qanday foydalanish: 3 qadam
Qo'llanma: Arduino UNO bilan RGB rang detektor sensori TCS230 -dan qanday foydalanish: Tavsif: Ushbu qo'llanma sizga Arduino Uno -dan foydalanib RGB rang detektori sensoridan qanday foydalanish haqida bir necha oddiy qadamlarni ko'rsatadi. Qo'llanma oxirida siz bir nechta ranglar o'rtasidagi taqqoslash natijalarini olasiz
DS1307 -dan Arduino -dan qanday foydalanish kerak: 7 qadam
Arduino yordamida DS1307 -dan qanday foydalanish kerak: DS1307 - bu haqiqiy vaqtli IC (RTC). Bu IC vaqt ma'lumotlarini berish uchun ishlatiladi. Belgilangan vaqt soniyalar, daqiqalar, soatlar, kunlar, sana, oy va yildan boshlanadi, bu esa Crystal va 3.6V batareyalar kabi qo'shimcha tashqi komponentlarni talab qiladi. Kristal
6 ta DOF robot qo'lini XYZ joylashuvi uchun Arduino Uno -dan foydalanish: 4 qadam
6 DOF Robotik Arm XYZ joylashuvi uchun Arduino Uno -dan foydalanish: Ushbu loyiha XYZ -ning teskari kinematik joylashuvini ta'minlash uchun qisqa va nisbatan oson Arduino eskizini amalga oshirish haqida. Men 6 ta servo robotli qo'l qurgan edim, lekin uni ishga tushirish uchun dasturiy ta'minot topishga kelganda, u erda saqlanishdan boshqa narsa yo'q edi
Dragon Rider 500 -dan AVR Dragon -dan qanday foydalanish kerak: 10 qadam
Dragon Rider 500 -dan AVR Dragon -dan qanday foydalanish kerak: Bu ko'rsatma Ecros Technologies -dan Dragon Rider 500 -ning ba'zi xususiyatlarini qanday ishlatishni o'rgatadi. Ecros veb -saytida juda batafsil Foydalanuvchi uchun qo'llanma mavjudligini biling. Dragon Rider - bu interfeys taxtasi