Съдържание:
Видео: ADXL345 Използване на Arduino Uno R3: 5 стъпки
2024 Автор: John Day | [email protected]. Последно модифициран: 2024-01-30 07:52
В този урок ще научим как да използваме сензора за ускорение ADXL345.
Стъпка 1: Компоненти
- дъска Arduino Uno * 1
- USB кабел * 1
- ADXL345 *1
- Платформа * 1
- Джъмперни проводници
Стъпка 2: Принцип
Акселерометърът се използва за измерване на силата, генерирана по време на ускорението. Най-фундаменталното е общоизвестното ускорение на гравитацията, което е 1g.
Чрез измерване на ускорението, причинено от гравитацията, можете да изчислите ъгъла на наклона на устройството спрямо равната повърхност. Чрез анализ на динамичното ускорение можете да определите начина, по който устройството се движи. Например, самобалансираща се дъска или ховърборд прилага сензор за ускорение и жироскоп за филтър Kalman и корекция на стойката.
ADXL345
ADXL345 е малък, тънък, 3-осен акселерометър с ниска мощност с измерване с висока разделителна способност (13-бита) до ± 16 g. Данните за цифров изход са форматирани като 16-битови две допълнения и са достъпни или чрез SPI (3- или 4-жичен) или I2C цифров интерфейс. В този експеримент се използва цифровият интерфейс I2C.
Той е много подходящ за измерване на статичното ускорение на гравитацията в приложенията за отчитане на наклона, както и на динамичното ускорение в резултат на движение или удар. Неговата висока разделителна способност (4 mg/LSB) позволява измерване на наклона с по -малко от 1,0 °. Отличната чувствителност (3,9 mg/LSB @2 g) осигурява високоточен изход до ± 16 g.
Как работи ADXL345
ADXL345 открива ускорението с чувствителния компонент отпред, а след това компонентът на чувствителността на електрическия сигнал го променя в електрически сигнал, който е аналогов. След това интегрираният в модула AD адаптер ще преобразува аналоговия сигнал в цифров.
X_OUT, Y_OUT и Z_OUT са стойностите съответно по оста X, Y и Z. Поставете модула с лицето нагоре: Z_OUT може да достигне най -много +1g, минимумът на X_OUT е -1g към посоката на Ax, а минимумът от Y_OUT е -1g към посоката Ay. От друга страна, обърнете модула с главата надолу: минимумът на Z_OUT е -1g, максимумът на X_OUT е +1g към посоката на Ax, а максимумът на Y_OUT е +1g към посоката Ay., както е показано по -долу. Завъртете модула ADXL345 и ще видите промяната на три стойности.
когато канал А се промени от високо ниво на ниско ниво, ако канал В е високо ниво, това показва, че въртящият се енкодер се върти по часовниковата стрелка (CW); ако в този момент канал В е на ниско ниво, това означава завъртане обратно на часовниковата стрелка (CCW). Така че, ако прочетем стойността на канал B, когато канал A е на ниско ниво, можем да знаем в коя посока се върти въртящият се енкодер.
Принцип: Вижте схематичната диаграма на модула на въртящия се енкодер по -долу. От него можем да видим, че щифт 3 на въртящия се енкодер, а именно CLK на модула, е канал В. Пин 5, който е DT, е канал А. За да знаете посоката на въртене на рекордера, просто прочетете стойността на CLK и DT.
Във веригата има чип за регулатор на напрежение 3.3v, така че можете да захранвате модула с 5V или 3.3V.
Тъй като SDO е свързан към GND, I2C адресът на ADXL345 е 0x53, 0xA6 за запис, 0xA7 за четене
Pin функция на ADXL345 модул.
Стъпка 3: Процедури
Стъпка 1. Изградете веригата.
Стъпка 2:
Изтеглете кода от
Стъпка 3:
Качете скицата на дъската Arduino Uno
Щракнете върху иконата за качване, за да качите кода на контролната платка.
Ако в края на прозореца се появи „Готово качване“, това означава, че скицата е качена успешно.
След качването отворете Serial Monitor, където можете да видите откритите данни. Когато ускорението на модула се промени, цифрата ще се промени съответно в прозореца.
Стъпка 4: Код
// ADXL335
/********************************
ADXL335
забележка: vcc5v, но ADXL335 Vs е 3.3V
Веригата:
5V: VCC
аналогов 0: ос x
аналог 1: ос y
аналог 2: ос z
След изгарянето на
програма, отворете прозореца за отстраняване на грешки в серийния монитор, където можете да видите откритите данни да се показват. Когато ускорението варира, цифрата ще варира съответно.
*********************************
/Електронна поща:
// Уебсайт: www.primerobotics.in
const int xpin =
А0; // оста x на акселерометъра
const int ypin =
А1; // оста y
const int zpin =
А2; // ос z (само при 3-осни модели)
void setup ()
{
// инициализираме серийните комуникации:
Serial.begin (9600);
}
void loop ()
{
int x = analogRead (xpin); // четене от xpin
забавяне (1); //
int y = analogRead (ypin); // четене от ypin
забавяне (1);
int z = analogRead (zpin); // четене от zpin
поплавък нула_G = 338,0; // захранване ADXL335
от Vs 3.3V: 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 ");
плувам
нула_Gx = 331.5; // изход нула_G на ос x: (x_max + x_min)/2
плувам
нула_Gy = 329.5; // изход нула_G на оста y: (y_max + y_min)/2
float zero_Gz = 340.0; //
нула_G изход на ос z: (z_max + z_min)/2
плаваща скала =
67.6; // захранване от Vs 3.3V: 3.3v/5v *1024/3.3v *330mv/g = 67.6g
float scale_x =
65; // скалата на оста x: x_max/3.3v*330mv/g
float scale_y =
68.5; // скалата на оста y: y_max/3.3v*330mv/g
float scale_z =
68; // скалата на оста z: z_max/3.3v*330mv/g
Serial.print (((float) x
- нула_Gx)/мащаб_x); // отпечатайте стойност x на сериен монитор
Serial.print ("\ t");
Serial.print (((float) y
- нула_Gy)/мащаб_y); // отпечатва y стойност на сериен монитор
Serial.print ("\ t");
Serial.print (((float) z
- нула_Gz)/мащаб_z); // отпечатва z стойност на сериен монитор
Serial.print ("\ n");
забавяне (1000); // изчакайте 1 секунда
}
Стъпка 5: Анализ на кода
Кодът за експеримента ADXL345 включва 3 части: инициализиране на всеки порт и устройство, получаване и съхраняване на данни, изпратени от сензорите, и преобразуване на данните.
Препоръчано:
Astronomia Coffin Dance Meme Music Използване на Arduino Uno: 5 стъпки
Astronomia Concein Dance Meme Музика с помощта на Arduino Uno: Този блог, който ви показахме Astronomia Coffin Dance Tune с Arduino Uno Тъй като всички знаете за нишките на мемове за астрономията с танци на ковчега, затова реших да направя тази мелодия с помощта на arduino uno Ето стъпките и консумативите, използвани в този проект
Neopixel Ws2812 Rainbow LED Glow с M5stick-C - Стартиране на Rainbow на Neopixel Ws2812 Използване на M5stack M5stick C Използване на Arduino IDE: 5 стъпки
Neopixel Ws2812 Rainbow LED Glow с M5stick-C | Изпълнение на Rainbow на Neopixel Ws2812 Използване на M5stack M5stick C Използване на Arduino IDE: Здравейте момчета в тази инструкция ще се научим как да използваме неопиксели ws2812 светодиоди или LED лента или LED матрица или LED пръстен с m5stack m5stick-C платка за разработка с Arduino IDE и ние ще направим модел на дъга с него
Програмиране на Attiny85 (щит) Използване на Arduino UNO: 7 стъпки
Програмиране на Attiny85 (щит) Използване на Arduino UNO: Играта с вашия Arduino е много забавно. Понякога обаче размерът има значение. Arduino UNO е малък, но ако искате вашият проект да бъде в малък корпус, UNO може да е твърде голям. Можете да опитате да използвате NANO или MINI, но ако наистина искате
Направи си сам „Измервателен уред за използване на компютър ROG Base“Използване на Arduino и Python: 5 стъпки (със снимки)
Направи си сам „Измерител за използване на компютър ROG Base“Използване на Arduino и Python: ************************************* +На първо място, тези инструкции са написани от неносещ англоговорящ … не е професор по английски, така че, моля, информирайте за някаква граматическа грешка, преди да ми се подигравате.: P +и моля, не имитирайте
Използване на Arduino Uno за XYZ позициониране на 6 DOF роботизирана ръка: 4 стъпки
Използване на Arduino Uno за XYZ позициониране на 6 DOF роботизирана ръка: Този проект е за внедряване на кратка и сравнително лесна скица на Arduino за осигуряване на обратно кинематично позициониране на XYZ. Бях построил 6 серво роботизирана ръка, но когато се стигна до намиране на софтуер, който да я изпълнява, нямаше много неща освен cust