Inhoudsopgave:
Video: Arduino Nano - MMA8452Q 3-Axis 12-bit/8-bit Digitale Accelerometer Zelfstudie - Ajarnpa
2024 Auteur: John Day | [email protected]. Laatst gewijzigd: 2024-01-30 11:15
De MMA8452Q is een slimme, energiezuinige, drie-assige, capacitieve, micromachined accelerometer met 12 bits resolutie. Flexibele door de gebruiker programmeerbare opties worden geboden met behulp van ingebouwde functies in de accelerometer, configureerbaar tot twee interrupt-pinnen. Het heeft door de gebruiker selecteerbare volledige schalen van ±2g/±4g/±8g met high-pass filter gefilterde data en niet-gefilterde data die in realtime beschikbaar zijn. Hier is de demonstratie met Arduino nano.
Stap 1: Wat je nodig hebt.
1. Arduino Nano
2. MMA8452Q
3. I²C-kabel
4. I²C-schild voor Arduino Nano
Stap 2: Aansluiting:
Neem een I2C-schild voor Arduino Nano en duw het voorzichtig over de pinnen van Nano.
Sluit vervolgens het ene uiteinde van de I2C-kabel aan op de MMA8452Q-sensor en het andere uiteinde op de I2C-afscherming.
De aansluitingen zijn weergegeven in de afbeelding hierboven.
Stap 3: Coderen:
De arduino-code voor MMMA8452Q kan worden gedownload van onze github-repository - DCUBE Store.
Hier is de link.
We nemen bibliotheek Wire.h op om de I2c-communicatie van de sensor met het Arduino-bord te vergemakkelijken.
U kunt de code ook hier kopiëren, deze wordt als volgt gegeven:
// Gedistribueerd met een vrije wilslicentie.
// Gebruik het zoals je wilt, winst of gratis, op voorwaarde dat het past in de licenties van de bijbehorende werken.
// MMA8452Q
// Deze code is ontworpen om te werken met de MMA8452Q_I2CS I2C Mini Module.
#erbij betrekken
// MMA8452Q I2C-adres is 0x1C (28)
#define Addr 0x1C
ongeldige setup()
{
// Initialiseer I2C-communicatie als MASTER
Draad.begin();
// Initialiseer seriële communicatie, stel baudrate in = 9600
Serieel.begin(9600);
// Start I2C-verzending
Wire.beginTransmission (Addr);
// Selecteer controleregister
Draad.schrijven (0x2A);
// Standby modus
Draad.schrijven (0x00);
// Stop I2C-verzending
Wire.endTransmission();
// Start I2C-verzending
Wire.beginTransmission (Addr);
// Selecteer controleregister
Draad.schrijven (0x2A);
// Actieve modus
Draad.schrijven (0x01);
// Stop I2C-verzending
Wire.endTransmission();
// Start I2C-verzending
Wire.beginTransmission (Addr);
// Selecteer controleregister
Draad.schrijven (0x0E);
// Stel bereik in op +/- 2g
Draad.schrijven (0x00);
// Stop I2C-verzending
Wire.endTransmission();
vertraging (300);
}
lege lus()
{
niet-ondertekende int-gegevens[7];
// Vraag 7 bytes aan gegevens aan
Wire.requestFrom(Addr, 7);
// Lees 7 bytes aan gegevens
// staus, xAccl lsb, xAccl msb, yAccl lsb, yAccl msb, zAccl lsb, zAccl msb
if(Draad.beschikbaar() == 7)
{
data[0] = Draad.lezen();
data[1] = Draad.lezen();
data[2] = Draad.lezen();
data[3] = Draad.lezen();
data[4] = Draad.lezen();
data[5] = Draad.lezen();
data[6] = Draad.lezen();
}
// Converteer de gegevens naar 12-bits
int xAccl = ((gegevens[1] * 256) + gegevens[2]) / 16;
als (xAccl > 2047)
{
xAccl-= 4096;
}
int yAccl = ((gegevens[3] * 256) + gegevens[4]) / 16;
als (yAccl > 2047)
{
yAccl-= 4096;
}
int zAccl = ((gegevens[5] * 256) + gegevens[6]) / 16;
als (zAccl > 2047)
{
zAccl-= 4096;
}
// Gegevens uitvoeren naar seriële monitor
Serial.print("Versnelling in X-as: ");
Serieel.println(xAccl);
Serial.print("Versnelling in Y-as: ");
Serial.println(yAccl);
Serial.print("Versnelling in Z-as: ");
Serieel.println(zAccl);
vertraging (500);
}
Stap 4: Toepassingen:
MMA8452Q heeft verschillende toepassingen, waaronder E-kompas-toepassingen, detectie van statische oriëntatie met detectie van portret/landschap, omhoog/omlaag, links/rechts, positie-identificatie achter/voor, notebook, e-reader en tuimel- en vrije valdetectie van laptops, realtime oriëntatiedetectie inclusief virtual reality en gaming 3D-gebruikerspositiefeedback, real-time activiteitenanalyse zoals stappenteller tellen, vrije val-valdetectie voor HDD, gegist bestede GPS-back-up en nog veel meer.
Aanbevolen:
Arduino-zelfstudie servomotor besturen: 4 stappen
Hoe de servomotor Arduino-zelfstudie te besturen: Hey jongens! welkom bij mijn nieuwe tutorial, ik hoop dat je al genoten hebt van mijn vorige instructable "Grote stappenmotorbesturing". Vandaag plaats ik deze informatieve tutorial om je de basisprincipes van elke servomotorbesturing te leren, ik heb al een video gepost
Bedien uw LED's met de afstandsbediening van uw tv?! -- Arduino IR-zelfstudie: 5 stappen (met afbeeldingen)
Bedien uw LED's met de afstandsbediening van uw tv?! || Arduino IR-zelfstudie: in dit project zal ik je laten zien hoe ik de nutteloze knoppen op de afstandsbediening van mijn tv heb hergebruikt om de LED's achter mijn tv te bedienen. Je kunt deze techniek ook gebruiken om allerlei dingen te besturen met een beetje code-editing. Ik zal ook wat vertellen over de theorie
Arduino Bluetooth Basic-zelfstudie: 6 stappen (met afbeeldingen)
Arduino Bluetooth Basic Tutorial: UPDATE: DE BIJGEWERKTE VERSIE VAN DIT ARTIKEL KAN HIER VINDEN Ooit gedacht aan het besturen van elektronische apparaten met je smartphone? Het besturen van je robot of andere apparaten met je smartphone zal echt gaaf zijn. Hier is een eenvoudige en bas
Een digitale schuifmaat afbreken en hoe werkt een digitale schuifmaat: 4 stappen
Een digitale schuifmaat afbreken en hoe werkt een digitale schuifmaat: Veel mensen weten hoe ze een schuifmaat moeten gebruiken om te meten. Deze tutorial leert je hoe je een digitale schuifmaat afbreekt en een uitleg over hoe de digitale schuifmaat werkt
Nvidia Jetson Nano-zelfstudie - Eerste blik met AI & ML: 7 stappen
Nvidia Jetson Nano-zelfstudie | Eerste blik met AI & ML: Hé, wat is er jongens! Akarsh hier van CETech.Vandaag gaan we kijken naar een nieuwe SBC van Nvidia, de Jetson Nano, de Jetson Nano is gericht op kunstmatige-intelligentietechnieken zoals beeldherkenning enz. We zullen eerst opstarten t