Mündəricat:
Video: ADXL345 Arduino Uno R3 istifadə: 5 addım
2024 Müəllif: John Day | [email protected]. Son dəyişdirildi: 2024-01-30 07:46
Bu dərsdə ADXL345 sürətləndirmə sensorundan necə istifadə edəcəyimizi öyrənəcəyik.
Addım 1: Komponentlər
- Arduino Uno lövhəsi * 1
- USB kabeli * 1
- ADXL345 *1
- Çörək lövhəsi * 1
- Jumper telləri
Addım 2: Prinsip
Sürətləndirmə zamanı yaranan qüvvəni ölçmək üçün bir akselerometr istifadə olunur. Ən əsas, 1g olan cazibə qüvvəsinin ən məşhur sürətidir.
Cazibə qüvvəsinin səbəb olduğu sürətlənməni ölçərək cihazın əyilmə bucağını səviyyəli səthə hesablaya bilərsiniz. Dinamik sürətlənməni təhlil edərək cihazın necə hərəkət etdiyini deyə bilərsiniz. Məsələn, özünü balanslaşdıran lövhə və ya hoverboard Kalman filtri və duruş düzəldilməsi üçün sürətləndirici sensoru və giroskopu tətbiq edir.
ADXL345
ADXL345, kiçik, nazik, aşağı güclü, ± 16 g-ə qədər yüksək qətnamə (13 bit) ölçüsü olan 3 oxlu akselerometrdir. Rəqəmsal çıxış məlumatları 16 bitlik iki tamamlayıcı olaraq formatlanır və ya SPI (3 və ya 4 telli) və ya I2C rəqəmsal interfeysi vasitəsilə əldə edilə bilər. Bu təcrübədə I2C rəqəmsal interfeysi istifadə olunur.
Tilt algılama tətbiqlərində cazibənin statik sürətlənməsini, eləcə də hərəkət və ya şok nəticəsində yaranan dinamik sürətlənməni ölçmək üçün çox uyğundur. Yüksək qətnaməsi (4 mg/LSB), meyl dəyişikliyini 1,0 ° -dən aşağı ölçməyə imkan verir. Mükəmməl həssaslıq (3.9mg/LSB @2g) ± 16g-ə qədər yüksək dəqiqlikli çıxış təmin edir.
ADXL345 necə işləyir
ADXL345, ön hissedici hissə ilə sürətlənməni algılar və sonra elektrik siqnalını hiss edən komponent onu analoq olan elektrik siqnalına çevirir. Bundan sonra, modula birləşdirilmiş AD adapteri analoq siqnalını rəqəmsal siqnala çevirəcək.
X_OUT, Y_OUT və Z_OUT, müvafiq olaraq X, Y və Z oxundakı dəyərlərdir. Modulu üzü yuxarı qoyun: Z_OUT maksimum +1g -ə çata bilər, X_OUT minimumu Ax istiqamətinə doğru -1g, Y_OUT minimumu Ay istiqamətinə doğru -1g -dir. Digər tərəfdən, modulu tərsinə çevirin: minimum Z_OUT -1g, X_OUT maksimumu Ax istiqamətinə +1g, Y_OUT maksimumu isə Ay istiqamətinə doğru +1g -dir., aşağıda göstərildiyi kimi. ADXL345 modulunu döndərin və üç dəyərin dəyişdiyini görəcəksiniz.
A kanalı yüksək səviyyədən aşağı səviyyəyə keçdikdə, B kanalı yüksək səviyyədədirsə, bu, fırlanan enkoderin saat yönünde döndüyünü göstərir (CW); əgər o anda B kanalı aşağı səviyyədədirsə, bu, saat əqrəbinin əksinə fırlanma deməkdir (CCW). Beləliklə, A kanalı aşağı olduqda B kanalının dəyərini oxusaq, fırlanan kodlayıcının hansı istiqamətdə döndüyünü bilə bilərik.
Prinsip: Aşağıdakı Rotary Encoder modulunun sxematik diaqramına baxın. Buradan, fırlanan kodlayıcının 3 pininin, yəni moduldakı CLK -nın, B kanalı olduğunu, DT olan Pin 5 -in A kanal olduğunu görə bilərik. Yazıcının fırlanma istiqamətini bilmək üçün CLK -nin dəyərini oxuyun və DT.
Dövrədə 3.3v gərginlik tənzimləyicisi çipi var, buna görə modulu 5V və ya 3.3V ilə gücləndirə bilərsiniz.
SDO GND -yə qoşulduğundan ADXL345 -in I2C ünvanı 0x53, 0xA6 yazmaq üçün, 0xA7 oxumaq üçündür.
ADXL345 Modulunun Pin Fonksiyonu.
Addım 3: Prosedurlar
Addım 1. Dövrəni qurun.
Addım 2:
Kodu https://github.com/primerobotics/Arduino saytından yükləyin
Addım 3:
Eskizi Arduino Uno lövhəsinə yükləyin
Kodu idarəetmə lövhəsinə yükləmək üçün Yüklə simgesini vurun.
Pəncərənin altında "Yükləmə tamamlandı" görünürsə, bu eskizin uğurla yükləndiyini bildirir.
Yüklədikdən sonra aşkarlanan məlumatları görə biləcəyiniz Serial Monitoru açın. Modulun sürətlənməsi dəyişdikdə, rəqəm pəncərədə buna uyğun olaraq dəyişəcək.
Addım 4: Kod
// ADXL335
/********************************
ADXL335
Qeyd: vcc5v, lakin ADXL335 Vs 3.3V -dir
Dövrə:
5V: VCC
analoq 0: x oxu
analoq 1: y oxu
analoq 2: z oxu
Yandırdıqdan sonra
Proqramda, aşkarlanan məlumatların göstərildiyini görə biləcəyiniz serial monitor ayıklama pəncərəsini açın. Sürətlənmə dəyişdikdə rəqəm də buna uyğun olaraq dəyişəcək.
*********************************
/E -poçt:
// Veb sayt: www.primerobotics.in
const int xpin =
A0; // akselerometrin x oxu
const int ypin =
A1; // y oxu
const int zpin =
A2; // z oxu (yalnız 3 oxlu modellərdə)
boş quraşdırma ()
{
// seriyalı rabitəni işə salın:
Serial.begin (9600);
}
boşluq döngəsi ()
{
int x = analogRead (xpin); // xpindən oxuyun
gecikmə (1); //
int y = analogRead (ypin); // ypindən oxuyun
gecikmə (1);
int z = analogRead (zpin); // zpindən oxuyun
float zero_G = 338.0; // ADXL335 enerji təchizatı
Vs 3.3V ilə: 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 ");
sal
zero_Gx = 331.5; // x oxunun zero_G çıxışı: (x_max + x_min)/2
sal
zero_Gy = 329.5; // y oxunun zero_G çıxışı: (y_max + y_min)/2
float zero_Gz = 340.0; //
z oxunun zero_G çıxışı: (z_max + z_min)/2
float miqyası =
67.6; // Vs 3.3V ilə enerji təchizatı: 3.3v/5v *1024/3.3v *330mv/g = 67.6g
float miqyası_x =
65; // x oxunun miqyası: x_max/3.3v*330mv/g
float miqyası_y =
68.5; // y oxunun miqyası: y_max/3.3v*330mv/g
float scale_z =
68; // z oxunun miqyası: z_max/3.3v*330mv/g
Serial. çap (((float) x
- zero_Gx)/scale_x); // seriya monitorda x dəyərini çap edin
Serial.print ("\ t");
Serial. çap (((float) y
- zero_Gy)/scale_y); // seriya monitorda y dəyərini çap edin
Serial.print ("\ t");
Serial. çap (((float) z
- zero_Gz)/scale_z); // seriya monitorda z dəyərini çap edin
Serial.print ("\ n");
gecikmə (1000); // 1 saniyə gözləyin
}
Addım 5: Kod Analizi
ADXL345 təcrübəsinin kodu 3 hissədən ibarətdir: hər portu və cihazı işə salmaq, sensorlardan göndərilən məlumatları əldə etmək və saxlamaq və məlumatları çevirmək.
Tövsiyə:
ADXL345 və Particle Photon istifadə edərək sürətlənmənin ölçülməsi: 4 addım
ADXL345 və Partikül Fotonundan istifadə edərək Sürətlənmənin Ölçülməsi: ADXL345, kiçik, nazik, ultralow gücə malik, 3 eksenli, yüksək qətnamə (13-bit) ölçmə qabiliyyəti olan ± 16 q-a qədərdir. Rəqəmsal çıxış məlumatları 16 bitlik ikili tamamlayıcı olaraq formatlanır və I2 C rəqəmsal interfeys vasitəsilə əldə edilə bilər. Ölçür
ADXL345 və Raspberry Pi istifadə edərək sürətlənmənin ölçülməsi: 4 addım
ADXL345 və Raspberry Pi istifadə edərək sürətlənmənin ölçülməsi: ADXL345, kiçik, nazik, ultra güclü, ± 16 q-a qədər yüksək qətnamə (13-bit) ölçülü 3 oxlu akselerometrdir. Rəqəmsal çıxış məlumatları 16 bitlik ikili tamamlayıcı olaraq formatlanır və I2 C rəqəmsal interfeys vasitəsilə əldə edilə bilər. Ölçür
ADXL345 və Arduino Nano istifadə edərək sürətlənmənin ölçülməsi: 4 addım
ADXL345 və Arduino Nano istifadə edərək sürətlənmənin ölçülməsi: ADXL345, ± 16 q-a qədər yüksək qətnamə (13-bit) ölçüsü olan kiçik, nazik, ultra güclü, 3 oxlu akselerometrdir. Rəqəmsal çıxış məlumatları 16 bitlik ikili tamamlayıcı olaraq formatlanır və I2 C rəqəmsal interfeys vasitəsilə əldə edilə bilər. Ölçür
Arduino UNO istifadə edərək pilotsuz təyyarə necə etmək olar - Mikrokontrolördən istifadə edərək bir Quadcopter hazırlayın: 8 addım (şəkillərlə)
Arduino UNO istifadə edərək pilotsuz təyyarə necə etmək olar | Mikrokontrolördən istifadə edərək Quadcopter hazırlayın: Giriş Youtube Kanalımı Ziyarət Edin Drone almaq üçün çox bahalı bir gadget (məhsul) təşkil edir. Bu yazıda necə ucuz satacağımı müzakirə edəcəyəm? Ucuz qiymətə öz əlinizlə bunu necə edə bilərsiniz … Yaxşı Hindistanda bütün materiallar (mühərriklər, ESClər
Blynk istifadə edərək Arduino WeMos D1 WiFi UNO ESP8266 IOT IDE uyğun lövhədən necə istifadə olunur: 10 addım
Blynk istifadə edərək Arduino WeMos D1 WiFi UNO ESP8266 IOT IDE Uyğun lövhədən necə istifadə olunur: Arduino WeMos D1 WiFi UNO ESP8266 IOT IDE Uyğun lövhə Təsviri: WiFi ESP8266 İnkişaf Etmə Paneli WEMOS D1. WEMOS D1, ESP8266 12E -ə əsaslanan WIFI inkişaf lövhəsidir. İşləmə, NODEMCU -ya bənzəyir, ancaq hardware quraşdırılmışdır