Мазмұны:
- 1 -қадам: компоненттер
- 2 -қадам: принцип
- 3 -қадам: процедуралар
- 4 -қадам: код
- 5 -қадам: кодты талдау
Бейне: ADXL345 Arduino Uno R3: 5 қадамдарын қолдану
2024 Автор: John Day | [email protected]. Соңғы өзгертілген: 2024-01-30 10:25
Бұл сабақта біз ADXL345 үдеткіш датчигін қолдануды үйренеміз.
1 -қадам: компоненттер
- Arduino Uno тақтасы * 1
- USB кабелі * 1
- ADXL345 *1
- Нан тақтасы * 1
- Өткізгіш сымдар
2 -қадам: принцип
Акселерометр үдеу кезінде пайда болатын күшті өлшеу үшін қолданылады. Ең негізгісі-1г ауырлық күшінің жалпыға белгілі үдеуі.
Ауырлық күшінің әсерінен болатын үдеуді өлшеу арқылы құрылғының көлбеу бұрышын тегіс бетке есептеуге болады. Динамикалық үдеуді талдау арқылы сіз құрылғының қалай қозғалатынын біле аласыз. Мысалы, өзін-өзі теңдестіру тақтасы немесе қалқып жүру тақтасы Калман сүзгісі мен қалыпын түзету үшін үдеу датчигі мен гироскопты қолданады.
ADXL345
ADXL345-бұл шағын, жұқа, қуаты аз, 3 осьті акселерометр, жоғары ажыратымдылықпен (13 биттік) ± 16 г дейін. Сандық шығыс деректері 16 биттік екі қосымша ретінде пішімделеді және SPI (3 немесе 4 сымды) немесе I2C сандық интерфейсі арқылы қол жетімді. Бұл экспериментте I2C цифрлық интерфейсі қолданылады.
Ол көлбеуді сезу кезінде ауырлық күшінің статикалық үдеуін, сондай-ақ қозғалыс немесе соққыдан болатын динамикалық үдеуді өлшеуге өте ыңғайлы. Оның жоғары ажыратымдылығы (4 мг/LSB) көлбеудің өзгеруін 1,0 ° -тан төмен өлшеуге мүмкіндік береді. Ал тамаша сезімталдық (3.9mg/LSB @2g) ± 16г дейін жоғары дәлдіктегі шығуды қамтамасыз етеді.
ADXL345 қалай жұмыс істейді
ADXL345 алдыңғы жақтағы сезгіш компонентпен үдеуді анықтайды, содан кейін электрлік сигналды сезетін компонент оны аналогты электр сигналына өзгертеді. Содан кейін модульге қосылған AD адаптері аналогты сигналды цифрлық сигналға түрлендіреді.
X_OUT, Y_OUT және Z_OUT - сәйкесінше X, Y және Z осіндегі мәндер. Модульді жоғары қаратып қойыңыз: Z_OUT максимум +1г жетуі мүмкін, X_OUT минимумы Ax бағытына қарай -1г, ал Y_OUT минимумы Ай бағытына қарай -1г. Екінші жағынан, модульді төңкеріңіз: Z_OUT минимумы -1g, X_OUT максимумы Ax бағытына +1g, ал Y_OUT максимумы Ay бағытына қарай +1g., төменде көрсетілгендей. ADXL345 модулін айналдырыңыз, сонда сіз үш мәннің өзгергенін көресіз.
А арнасы жоғары деңгейден төменгі деңгейге ауысқанда, егер В каналы жоғары болса, ол айналмалы кодердің сағат тілімен айналуын көрсетеді (CW); егер сол кезде В каналы төмен болса, бұл сағат тіліне қарсы айналуды білдіреді (CCW). Егер біз А арнасының деңгейі төмен болғанда В каналының мәнін оқитын болсақ, айналмалы кодер қай бағытта айналатынын біле аламыз.
Принципі: Төмендегі Rotary Encoder модулінің схемасын қараңыз. Бұдан біз айналмалы кодердің 3 түйреуішін, атап айтқанда модульдегі CLK, B. каналы екенін білеміз, ол DT - 5 канал. А жазғыштың айналу бағытын білу үшін CLK мәнін оқып, DT.
Контурда 3.3В кернеу реттегішінің чипі бар, сондықтан сіз модульді 5В немесе 3.3В кернеуіне қосуға болады.
SDO GND қосылғандықтан, ADXL345 I2C мекенжайы 0x53, 0xA6 жазу үшін, 0xA7 оқу үшін.
ADXL345 модулінің түйреуіш функциясы.
3 -қадам: процедуралар
Қадам 1. Схеманы құрыңыз.
2 -қадам:
Кодты https://github.com/primerobotics/Arduino сайтынан жүктеп алыңыз
3 -қадам:
Эскизді Arduino Uno тақтасына жүктеңіз
Кодты басқару тақтасына жүктеу үшін Жүктеу белгішесін басыңыз.
Егер терезенің төменгі жағында «Жүктеу аяқталды» пайда болса, бұл эскиз сәтті жүктелгенін білдіреді.
Жүктеуден кейін анықталған деректерді көруге болатын сериялық мониторды ашыңыз. Модульдің үдеуі өзгергенде, сәйкесінше терезеде фигура өзгереді.
4 -қадам: код
// ADXL335
/********************************
ADXL335
Ескерту: vcc5v, бірақ ADXL335 Vs - 3,3В
Тізбек:
5В: VCC
аналогтық 0: х осі
аналог 1: y осі
аналог 2: z осі
Жанып болғаннан кейін
Бағдарламада монитордың қате түзету терезесін ашыңыз, онда сіз анықталған деректердің көрсетілетінін көре аласыз. Егер үдеу өзгерсе, сәйкесінше көрсеткіш өзгереді.
*********************************
/Электрондық пошта:
// Веб -сайт: www.primerobotics.in
const int xpin =
A0; // акселерометрдің осі
const int ypin =
A1; // y осі
const int zpin =
A2; // z осі (тек 3 осьті модельдерде)
жарамсыз орнату ()
{
// сериялық байланысты инициализациялау:
Serial.begin (9600);
}
бос цикл ()
{
int x = analogRead (xpin); // xpin -ден оқу
кешіктіру (1); //
int y = analogRead (ypin); // ypin -ден оқыңыз
кешіктіру (1);
int z = analogRead (zpin); // zpin -ден оқу
float zero_G = 338.0; // ADXL335 қуат көзі
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 «);
жүзу
zero_Gx = 331.5; // x осінің zero_G шығысы: (x_max + x_min)/2
жүзу
zero_Gy = 329.5; // y осінің zero_G шығысы: (y_max + y_min)/2
float zero_Gz = 340.0; //
z осінің zero_G шығысы: (z_max + z_min)/2
қалқымалы шкаласы =
67.6; // 3.3В кернеуі бойынша қуат көзі: 3.3в/5в *1024/3.3в *330мв/г = 67.6г
float scale_x =
65; // x осінің масштабы: x_max/3.3v*330mv/g
өзгермелі масштаб_ =
68.5; // у осінің масштабы: y_max/3.3v*330mv/g
float scale_z =
68; // z осінің масштабы: z_max/3.3v*330mv/g
Serial.print (((float) x
- zero_Gx)/scale_x); // сериялық мониторда x мәнін басып шығару
Serial.print («\ t»);
Serial.print (((өзгермелі) ж
- zero_Gy)/scale_y); // y мәнін сериялық мониторда басып шығару
Serial.print («\ t»);
Serial.print (((float) z
- zero_Gz)/scale_z); // z мәнін сериялық мониторда басып шығару
Serial.print («\ n»);
кешіктіру (1000); // 1 секунд күтіңіз
}
5 -қадам: кодты талдау
ADXL345 экспериментінің коды 3 бөліктен тұрады: әр порт пен құрылғыны инициализациялау, сенсорлардан жіберілген деректерді алу және сақтау және деректерді түрлендіру.
Ұсынылған:
FT232R USB UART CLONE ARDUINO NANO BOARD 3.0: 7 қадамдарын қалай жүргізу керек
FT232R USB UART CLONE ARDUINO NANO BOARD 3.0 қалай басқаруға болады: Бүгін мен arduino nano v3.0 (клон) сатып алдым, бірақ менде проблема бар. менің компьютерім әрқашан " FT232R USB UART " andarduino Ide бұл тақтаны анықтай алмайды. неге? не болды? жақсы, менде бұл мәселені шешуге арналған оқулық бар
IR жақындық сенсоры мен Arduino Uno Atmega 328: 6 қадамдарын қолданатын әуе пианино (суреттермен)
IR жақындық сенсоры мен Arduino Uno Atmega 328 қолданатын әуе пианино: Әдетте пианино - бұл түймені басудың қарапайым механизмінде электрлік немесе механикалық жұмыс. Бірақ мұнда бұрылыс бар, біз кейбір сенсорларды қолдану арқылы фортепианодағы пернелердің қажеттілігін жоя аламыз. Ал инфрақызыл жақындық сенсорлары себепке сәйкес келеді, себебі
Arduino UNO және бір каналды 5В қатты күйдегі реле модулін қолдану арқылы шамды қалай басқаруға болады: 3 қадам
Arduino UNO және 5V бір арналы қатты күй релесі модулін қолдану арқылы шамды қалай басқаруға болады: Сипаттама: Дәстүрлі механикалық релемен салыстырғанда, қатты күй релесінің (SSR) көптеген артықшылықтары бар: оның қызмет ету мерзімі ұзарады, қосылу әлдеқайда жоғары/ өшіру жылдамдығы және шу жоқ. Сонымен қатар, ол дірілге және механикалық төзімділікке ие
WeMos TTgo ESP32 Uno D1 R32 орнату және қолдану әдісі: 3 қадам
WeMos TTgo ESP32 Uno D1 R32 орнату және пайдалану әдісі: WeMos® TTgo ESP32 uno D1 R32 қалай орнату керек, WeMos® TTgo ESP32 uno D1 R32 іске қосу үшін барлық қадамдар арқылы өтеді
6 DOF роботтық қолының XYZ позициясына Arduino Uno қолдану: 4 қадам
6 DOF роботтық қолын XYZ позициялау үшін Arduino Uno қолдану: Бұл жоба XYZ кері кинематикалық позициялауды қамтамасыз ету үшін қысқа және салыстырмалы түрде жеңіл Arduino эскизін енгізу туралы. Мен 6 серво роботты қолын жасадым, бірақ оны іске қосатын бағдарламалық қамтамасыз етуді іздеуге келгенде, қамқорлықтан басқа ештеңе жоқ еді