Mundarija:
Video: Arduino Nano-MMA8452Q 3 o'qli 12 bitli/8 bitli raqamli akselerometr bo'yicha qo'llanma: 4 qadam
2024 Muallif: John Day | [email protected]. Oxirgi o'zgartirilgan: 2024-01-30 13:23
MMA8452Q-aqlli, kam quvvatli, uch o'qli, sig'imli, mikromashinali 12 bitli o'lchamli akselerometr. Foydalanuvchilar tomonidan dasturlashtiriladigan moslashuvchan variantlar akselerometrga o'rnatilgan ikkita funktsiya yordamida ta'minlanadi, ular ikkita uzilish pimiga o'rnatiladi. U ± 2g/± 4g/± 8g foydalanuvchi tomonidan tanlanishi mumkin bo'lgan to'liq o'lchovlarga ega, yuqori o'tkazuvchan filtrli filtrlangan ma'lumotlar va real vaqtda mavjud bo'lgan filtrlanmagan ma'lumotlar. Mana, Arduino nano bilan uning namoyishi.
1 -qadam: Sizga nima kerak.. !
1. Arduino Nano
2. MMA8452Q
3. I²C kabeli
4. Arduino Nano uchun I²C qalqoni
2 -qadam: Ulanish:
Arduino Nano uchun I2C qalqonini oling va uni muloyimlik bilan Nano pinlariga suring.
Keyin I2C kabelining bir uchini MMA8452Q sensoriga, ikkinchi uchini esa I2C ekraniga ulang.
Ulanishlar yuqoridagi rasmda ko'rsatilgan.
3 -qadam: Kod:
MMMA8452Q uchun arduino kodini bizning github omboridan- DCUBE do'konidan yuklab olish mumkin.
Mana havola.
Sensorning Arduino platasi bilan I2c aloqasini osonlashtirish uchun biz Wire.h kutubxonasini o'z ichiga olamiz.
Siz bu erdan kodni nusxalashingiz mumkin, u quyidagicha berilgan:
// Ixtiyoriy litsenziya bilan tarqatilgan.
// Agar xohlasangiz, foyda yoki tekin ishlating, agar u tegishli asarlar litsenziyalariga mos kelsa.
// MMA8452Q
// Bu kod MMA8452Q_I2CS I2C Mini moduli bilan ishlash uchun mo'ljallangan.
#qo'shing
// MMA8452Q I2C manzili - 0x1C (28)
#Addr 0x1C ni aniqlang
bo'sh o'rnatish ()
{
// I2C aloqasini MASTER sifatida boshlang
Wire.begin ();
// Serial aloqani ishga tushiring, bod tezligi = 9600
Serial.begin (9600);
// I2C uzatishni boshlang
Wire.beginTransmission (Addr);
// Boshqarish registrini tanlang
Wire.write (0x2A);
// Kutish rejimi
Wire.write (0x00);
// I2C uzatishni to'xtating
Wire.endTransmission ();
// I2C uzatishni boshlang
Wire.beginTransmission (Addr);
// Boshqarish registrini tanlang
Wire.write (0x2A);
// Faol rejim
Wire.write (0x01);
// I2C uzatishni to'xtating
Wire.endTransmission ();
// I2C uzatishni boshlang
Wire.beginTransmission (Addr);
// Boshqarish registrini tanlang
Wire.write (0x0E);
// +/- 2g oralig'ini o'rnating
Wire.write (0x00);
// I2C uzatishni to'xtating
Wire.endTransmission ();
kechikish (300);
}
bo'sh halqa ()
{
imzosiz int ma'lumotlari [7];
// 7 bayt ma'lumotni so'rang
Wire.requestFrom (Addr, 7);
// 7 bayt ma'lumotni o'qing
// staus, xAccl lsb, xAccl msb, yAccl lsb, yAccl msb, zAccl lsb, zAccl msb
agar (Wire.available () == 7)
{
ma'lumotlar [0] = Wire.read ();
ma'lumotlar [1] = Wire.read ();
ma'lumotlar [2] = Wire.read ();
ma'lumotlar [3] = Wire.read ();
ma'lumotlar [4] = Wire.read ();
ma'lumotlar [5] = Wire.read ();
ma'lumotlar [6] = Wire.read ();
}
// Ma'lumotni 12 bitga aylantiring
int xAccl = ((ma'lumotlar [1] * 256) + ma'lumotlar [2]) / 16;
agar (xAccl> 2047)
{
xAccl -= 4096;
}
int yAccl = ((ma'lumotlar [3] * 256) + ma'lumotlar [4]) / 16;
agar (yAccl> 2047)
{
yAccl -= 4096;
}
int zAccl = ((ma'lumotlar [5] * 256) + ma'lumotlar [6]) / 16;
agar (zAccl> 2047)
{
zAccl -= 4096;
}
// Ma'lumotlarni ketma -ket monitorga chiqarish
Serial.print ("X o'qida tezlashtirish:");
Serial.println (xAccl);
Serial.print ("Y o'qida tezlashtirish:");
Serial.println (yAccl);
Serial.print ("Z o'qida tezlashtirish:");
Serial.println (zAccl);
kechikish (500);
}
4 -qadam: Ilovalar:
MMA8452Q turli xil ilovalarga ega, ular orasida elektron kompas ilovalari, statik yo'nalishni aniqlash, portret/landshaft, yuqoriga/pastga, chapga/o'ngga, orqaga/oldingi holatni aniqlash, daftar, elektron o'quvchi, noutbukning qulashi va tushishini aniqlash, real vaqtda. yo'nalishlarni aniqlash, shu jumladan virtual haqiqat va o'yindagi 3D foydalanuvchi pozitsiyasi haqidagi fikr-mulohazalar, pedometr qadamlarini sanash, HDD uchun tushishni aniqlash, o'lik hisob-kitobli GPS zaxirasi va boshqalar kabi real vaqtda faoliyatni tahlil qilish.
Tavsiya:
Raspberry Pi - ADXL345 3 o'qli akselerometr Python qo'llanmasi: 4 qadam
Raspberry Pi-ADXL345 3 o'qli akselerometr Python qo'llanmasi: ADXL345-bu kichik, ingichka, ultra quvvatli, 3 o'qli akselerometr, yuqori aniqlikdagi (13 bitli) o'lchami ± 16 g gacha. Raqamli chiqish ma'lumotlari 16 bitli ikkita qo'shimcha sifatida formatlangan va I2 C raqamli interfeysi orqali kirish mumkin. O'lchovlar
Arduino Nano - BH1715 Raqamli yorug'lik sensori bo'yicha qo'llanma: 4 qadam
Arduino Nano - BH1715 Raqamli atrof -muhit yorug'lik sensori bo'yicha qo'llanma: BH1715 - bu I²C avtobus interfeysiga ega raqamli muhit yorug'lik sensori. BH1715 odatda mobil qurilmalar uchun LCD va klaviatura orqa nuri quvvatini sozlash uchun atrofdagi yorug'lik ma'lumotlarini olish uchun ishlatiladi. Ushbu qurilma 16-bitli piksellar sonini va sozlovchini taklif qiladi
Zarrachalar fotoni - BH1715 Raqamli atrof -muhit yorug'lik sensori bo'yicha qo'llanma: 4 qadam
Parton Photon - BH1715 Raqamli atrof -muhit yorug'lik sensori bo'yicha qo'llanma: BH1715 - bu I²C avtobus interfeysiga ega raqamli atrof -muhit nuri sensori. BH1715 odatda mobil qurilmalar uchun LCD va klaviatura orqa nuri quvvatini sozlash uchun atrofdagi yorug'lik ma'lumotlarini olish uchun ishlatiladi. Ushbu qurilma 16-bitli piksellar sonini va sozlovchini taklif qiladi
Raqamli konvertatsiya qilish bo'yicha qo'llanma: 7 qadam
Raqamli konvertatsiya bo'yicha qo'llanma: Salom bolalar, men bu semestrda Vanderbilt universitetining biomedikal muhandislik mutaxassisliklari bo'yicha muhandislik sinfiga kirish uchun o'qituvchi yordamchisiman. Men bu videoni analog-raqamli konvertatsiyani tushuntirish uchun yaratdim, chunki vaqt o'tishi bilan
Pi bo'yicha dastlabki* SPI: Raspberry Pi yordamida SPI 3 o'qli akselerometr bilan aloqa: 10 qadam
Pi bo'yicha dastlabki* SPI: Raspberry Pi yordamida SPI 3 o'qli akselerometr bilan aloqa: Raspbianni sozlash va bcm2835 SPI kutubxonasi yordamida SPI qurilmasi bilan muloqot qilish bo'yicha bosqichma-bosqich ko'rsatma (bit urilmagan!) Bu hali juda oldindan … Men jismoniy bog'lanishning yaxshiroq rasmlarini qo'shishim va ba'zi noqulay kodlar ustida ishlashim kerak