
Агуулгын хүснэгт:
2025 Зохиолч: John Day | [email protected]. Хамгийн сүүлд өөрчлөгдсөн: 2025-01-23 15:00


MMA8452Q нь ухаалаг, бага чадалтай, гурван тэнхлэгтэй, багтаамж сайтай, бичил машинтай 12 битийн нарийвчлалтай хурд хэмжигч юм. Хэрэглэгчийн програмчлагдах уян хатан сонголтуудыг акселерометрт суулгасан функцүүдийн тусламжтайгаар хангадаг бөгөөд хоёр таслалтын зүүгээр тохируулж болно. Энэ нь хэрэглэгчийн сонгож болох ± 2g/± 4g/± 8g хэмжээтэй бөгөөд өндөр нэвтрүүлэх шүүлтүүрээр шүүсэн өгөгдөл, мөн бодит цаг хугацаанд шүүлтүүргүй өгөгдлийг агуулсан болно. Энд түүний Arduino нанотой хийсэн жагсаал байна.
Алхам 1: Танд хэрэгтэй зүйл..

1. Ардуино Нано
2. MMA8452Q
3. I²C кабель
4. I²C Arduino Nano -ийн бамбай
Алхам 2: Холболт:




Arduino Nano -ийн I2C бамбайг аваад Nano -ийн голын дээгүүр зөөлөн түлхээрэй.
Дараа нь I2C кабелийн нэг үзүүрийг MMA8452Q мэдрэгч рүү, нөгөө үзүүрийг I2C бамбай руу холбоно.
Холболтыг дээрх зураг дээр харуулав.
Алхам 3: Код:

MMMA8452Q-ийн arduino кодыг манай github репозитороос татаж авах боломжтой- DCUBE Дэлгүүр.
Энд линк байна.
Бид мэдрэгчийн Arduino самбартай I2c холболтыг хөнгөвчлөх зорилгоор Wire.h номын санг агуулдаг.
Та мөн кодыг эндээс хуулж болно, үүнийг дараах байдлаар өгсөн болно.
// Хүсэл зоригийн лицензээр тараасан.
// Үүнийг холбогдох бүтээлүүдийнхээ лицензтэй нийцсэн тохиолдолд ашиг, үнэгүй ашиглах боломжтой.
// MMA8452Q
// Энэ код нь MMA8452Q_I2CS I2C Mini модультай ажиллахад зориулагдсан болно.
#оруулах
// MMA8452Q I2C хаяг нь 0x1C (28)
#Addr 0x1C -ийг тодорхойлно уу
хүчингүй тохиргоо ()
{
// I2C холболтыг MASTER болгон эхлүүлэх
Wire.begin ();
// Цуваа холбоог эхлүүлэх, дамжуулах хурд = 9600
Цуваа эхлэх (9600);
// I2C дамжуулалтыг эхлүүлэх
Wire.beginTransmission (Addr);
// Хяналтын бүртгэлийг сонгоно уу
Wire.write (0x2A);
// StandBy горим
Wire.write (0x00);
// I2C дамжуулалтыг зогсоох
Wire.endTransmission ();
// I2C дамжуулалтыг эхлүүлэх
Wire.beginTransmission (Addr);
// Хяналтын бүртгэлийг сонгоно уу
Wire.write (0x2A);
// Идэвхтэй горим
Wire.write (0x01);
// I2C дамжуулалтыг зогсоох
Wire.endTransmission ();
// I2C дамжуулалтыг эхлүүлэх
Wire.beginTransmission (Addr);
// Хяналтын бүртгэлийг сонгоно уу
Wire.write (0x0E);
// Хүрээг +/- 2g болгож тохируулна уу
Wire.write (0x00);
// I2C дамжуулалтыг зогсоох
Wire.endTransmission ();
саатал (300);
}
хоосон давталт ()
{
гарын үсэг зураагүй int өгөгдөл [7];
// 7 байтын өгөгдөл хүсэх
Wire.requestFrom (Addr, 7);
// 7 байтын өгөгдлийг уншина уу
// staus, xAccl lsb, xAccl msb, yAccl lsb, yAccl msb, zAccl lsb, zAccl msb
хэрэв (Утас. боломжтой () == 7)
{
өгөгдөл [0] = Wire.read ();
өгөгдөл [1] = Wire.read ();
өгөгдөл [2] = Wire.read ();
өгөгдөл [3] = Wire.read ();
өгөгдөл [4] = Wire.read ();
өгөгдөл [5] = Wire.read ();
өгөгдөл [6] = Wire.read ();
}
// Өгөгдлийг 12 бит болгон хөрвүүлэх
int xAccl = ((өгөгдөл [1] * 256) + өгөгдөл [2]) / 16;
хэрэв (xAccl> 2047)
{
xAccl -= 4096;
}
int yAccl = ((өгөгдөл [3] * 256) + өгөгдөл [4]) / 16;
хэрэв (yAccl> 2047)
{
yAccl -= 4096;
}
int zAccl = ((өгөгдөл [5] * 256) + өгөгдөл [6]) / 16;
хэрэв (zAccl> 2047)
{
zAccl -= 4096;
}
// Өгөгдлийг цуваа монитор руу гаргадаг
Serial.print ("X-Axis дахь хурдатгал:");
Serial.println (xAccl);
Serial.print ("Y-Axis дахь хурдатгал:");
Serial.println (yAccl);
Serial.print ("Z-Axis дахь хурдатгал:");
Serial.println (zAccl);
саатал (500);
}
Алхам 4: Өргөдөл:
MMA8452Q нь электрон луужингийн програмууд, хөрөг/ландшафт, дээш/доош, зүүн/баруун, арын/урд байрлалыг тодорхойлох, тэмдэглэлийн дэвтэр, цахим уншигч, зөөврийн компьютерын уналт ба чөлөөт уналтыг илрүүлэх зэрэг статик чиг баримжаа илрүүлэлтийг багтаасан төрөл бүрийн програмуудтай. Виртуал бодит байдал, тоглоомын 3D хэрэглэгчийн байр суурийн талаархи санал хүсэлт, алхам хэмжигч алхам тоолох, HDD-ийн уналт бууралт, GPS-ийн нөөцлөлт гэх мэт бодит цагийн үйл ажиллагааны дүн шинжилгээ гэх мэт чиг баримжааны илрүүлэлт.
Зөвлөмж болгож буй:
Moto: Ser ашиглан бичил хөдөлгүүрийг хэрхэн ажиллуулах вэ: битийн хувьд: бит: 7 алхам (зурагтай)

Moto: bit ашиглан Micro: bit ашиглан Servo Motors-ийг хэрхэн ажиллуулах вэ: Micro: bit-ийн ажиллагааг өргөжүүлэх нэг арга бол SparkFun Electronics-ийн moto: bit (ойролцоогоор $ 15-20) самбарыг ашиглах явдал юм. Энэ нь төвөгтэй харагдаж байгаа бөгөөд олон онцлог шинж чанартай боловч servo моторыг ажиллуулах нь тийм ч хэцүү биш юм. Мото: бит танд зөвшөөрөх болно
Python ашиглан Raspberry Pi болон LIS3DHTR, 3 тэнхлэг бүхий хурдасгуурын тусламжтайгаар хөдөлгөөнийг хянах: 6 алхам

Python ашиглан Raspberry Pi ба LIS3DHTR-ийн тусламжтайгаар 3 тэнхлэг бүхий хурдасгуурын тусламжтайгаар хөдөлгөөнийг хянах: Гоо сайхан нь биднийг хүрээлж байдаг, гэхдээ бид үүнийг мэдэхийн тулд ихэвчлэн цэцэрлэгт алхах хэрэгтэй болдог. Боловсролтой бүлгийн хувьд бид эрчим хүчнийхээ дийлэнх хэсгийг компьютер, гар утасныхаа өмнө ажилладаг. Тиймээс бид сайн сайхан байдлаа байнга өгдөг
Дижитал үр дүнг харуулах 4 битийн схем: 9 алхам

Дижитал үр дүнгийн дэлгэц бүхий 4 бит нэмэх хэлхээ: Энэ бол долоон сегментийн дэлгэц, долоон сегментийн драйвер, AND, OR, NOT, and EXOR хаалга нь 4 битийн хоёр тоог нийлүүлж үр дүнг буцаана. Энэ нь
Arduino Nano - BH1715 дижитал орчны гэрэл мэдрэгчийн заавар: 4 алхам

Arduino Nano - BH1715 дижитал орчны гэрэл мэдрэгчийн заавар: BH1715 бол I²C автобусны интерфэйстэй дижитал орчны гэрэл мэдрэгч юм. BH1715 нь хөдөлгөөнт төхөөрөмжүүдийн LCD болон товчлуурын арын гэрлийн хүчийг тохируулах орчны гэрлийн өгөгдлийг олж авахад ихэвчлэн ашиглагддаг. Энэ төхөөрөмж нь 16 битийн нарийвчлалтай бөгөөд тохируулагчийг санал болгодог
DigiLevel - Хоёр тэнхлэг бүхий дижитал түвшин: 13 алхам (зурагтай)

DigiLevel - Хоёр тэнхлэгтэй дижитал түвшин: Энэхүү зааварчилгааны урам зориг бол GreatScottLab -ээс эндээс олж авсан DIY дижитал сүнсний түвшин юм. Энэ загвар надад таалагдсан, гэхдээ илүү график интерфэйстэй том дэлгэцийг хүсч байсан. Би бас цахилгаан хэрэгслийг суурилуулах илүү сайн сонголтуудыг хүсч байсан