Мазмуну:
Video: ADXL345 Arduino Uno R3 колдонуу: 5 кадам
2024 Автор: John Day | [email protected]. Акыркы өзгөртүү: 2024-01-30 10:40
Бул сабакта биз ADXL345 ылдамдатуу сенсорун колдонууну үйрөнөбүз.
1 -кадам: Компоненттер
- Arduino Uno тактасы * 1
- USB кабели * 1
- ADXL345 *1
- Нан тактасы * 1
- секирүүчү зымдар
2 -кадам: Принцип
Акселерометр ылдамдануу учурунда пайда болгон күчтү өлчөө үчүн колдонулат. Эң негизгиси жалпыга белгилүү болгон тартылуу ылдамдануусу 1г.
Жердин тартылуу күчүнүн ылдамдатуусун өлчөө менен, түзмөктүн эңкейиш бурчун эсептей аласыз. Динамикалык ылдамдатууну талдоо аркылуу, сиз түзмөктүн кантип жылып баратканын айта аласыз. Мисалы, өзүн-өзү теңдөөчү такта же hoverboard Калман чыпкасы жана позасын оңдоо үчүн ылдамдатуу сенсорун жана гироскопту колдонот.
ADXL345
ADXL345-кичине, ичке, аз кубаттуу, 3 октук акселерометр, ± 16 г чейин жогорку чечим (13-бит) менен өлчөө. Санариптик чыгуучу маалыматтар 16 биттик эки кошумча катары форматталган жана SPI (3 же 4 зымдуу) же I2C санариптик интерфейси аркылуу жеткиликтүү. Бул экспериментте I2C санариптик интерфейси колдонулат.
Бул эңкейүүнү сезүүчү колдонмолордо тартылуу күчүнүн статикалык ылдамдануусун, ошондой эле кыймылдан же шоктон келип чыккан динамикалык ылдамданууну өлчөө үчүн ылайыктуу. Анын жогорку токтому (4 мг/LSB) эңкейүүнү 1,0 ° тан азыраак өлчөөгө мүмкүндүк берет. Ал эми эң сонун сезгичтик (3.9mg/LSB @2g) ± 16g чейин жогорку тактыкта чыгарууну камсыз кылат.
ADXL345 кантип иштейт
ADXL345 фронттогу сезгич компонент менен ылдамданууну аныктайт, андан кийин электрдик сигналды сезүүчү компонент аны аналогдук электрдик сигналга өзгөртөт. Андан кийин, модулга бириктирилген AD адаптери аналогдук сигналды санарипке айландырат.
X_OUT, Y_OUT жана Z_OUT - X, Y жана Z огунда маанилер. Модулду өйдө каратып коюңуз: Z_OUT эң көп дегенде +1г жетиши мүмкүн, X_OUTтун минимуму Ax багытында -1г, ал эми Y_OUTтун минималдуусу Айга карай -1г. Башка жагынан алганда, модулду тескери буруңуз: Z_OUT минимуму -1г, X_OUT максимуму Ax багытына +1г, Y_OUT максимуму Ай багытына карай +1г., Төмөндө көрсөтүлгөндөй. ADXL345 модулун буруңуз жана үч баалуулуктун өзгөрүшүн көрөсүз.
А каналы жогорку деңгээлден төмөнкү деңгээлге өзгөргөндө, эгер В каналы жогорку деңгээлде болсо, анда ал айлануучу коддогучтун саат жебеси боюнча айланганын көрсөтөт (CW); эгер ошол учурда В каналы төмөн болсо, бул сааттын жебесине каршы айланууну билдирет (CCW). Ошентип, эгер биз А каналы төмөн болгондо В каналынын маанисин окусак, анда айлануучу кодер кайсы багытта бурулганын биле алабыз.
Принцип: Төмөндөгү Rotary Encoder модулунун схемасын караңыз. Андан биз айлануучу коддогучтун 3 -пини, тактап айтканда, модулдагы CLK, B. B. Pin 5, бул DT, А -канал экенин көрө алабыз. DT.
Райондо 3.3V чыңалуу жөндөгүч чипи бар, андыктан 5V же 3.3V менен модулду күчтөндүрө аласыз.
SDO GND менен туташкандыктан, ADXL345тин I2C дареги 0x53, 0xA6 жазуу үчүн, 0xA7 окуу үчүн
ADXL345 модулунун пин функциясы.
3 -кадам: Процедуралар
Кадам 1. Районду куруу.
2-кадам:
Кодду https://github.com/primerobotics/Arduino сайтынан жүктөп алыңыз
3 -кадам:
Эскизди Arduino Uno тактасына жүктөңүз
Кодду башкаруу тактасына жүктөө үчүн Жүктөө сөлөкөтүн басыңыз.
Терезенин ылдыйында "Жүктөө бүттү" пайда болсо, бул эскиз ийгиликтүү жүктөлгөнүн билдирет.
Жүктөп бергенден кийин, ачылган маалыматтарды көрө турган Serial Monitorду ачыңыз. Модулдун ылдамдашы өзгөргөндө, фигура ошого жараша терезеде өзгөрөт.
4 -кадам: Код
// ADXL335
/********************************
ADXL335
Эскертүү: vcc5v, бирок ADXL335 Vs 3.3V
Район:
5V: VCC
аналогдук 0: x огу
аналог 1: y огу
аналог 2: z огу
Күйгүзгөндөн кийин
Программада сериялык монитордун мүчүлүштүктөрдү оңдоо терезесин ачыңыз, анда сиз аныкталган маалыматтарды көрсөтө аласыз. Ылдамдануу өзгөргөндө, көрсөткүч ошого жараша өзгөрөт.
*********************************
/Электрондук почта:
//Website: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 энергия менен камсыздоо
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 ");
сүзүү
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; // 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 (((калкып чыгуу) 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 бөлүктөн турат: ар бир портту жана түзмөктү инициализациялоо, сенсорлордон жөнөтүлгөн маалыматтарды алуу жана сактоо жана маалыматтарды өзгөртүү.
Сунушталууда:
ADXL345 жана Бөлүкчө Фотонун колдонуу менен ылдамданууну өлчөө: 4 кадам
ADXL345 жана Бөлүкчө Фотонун колдонуу менен ылдамдатууну өлчөө: ADXL345-кичинекей, ичке, ультра кубаттуу, 3 октук акселерометр, жогорку чечим (13-бит) ± 16 г чейин. Санарип чыгуучу маалыматтар 16-бит эки катары толукталган жана I2 C санариптик интерфейси аркылуу жеткиликтүү. Ал өлчөйт
DS1307ди кантип колдонуу керек Arduino колдонуу: 7 кадам
DS1307ди кантип колдонуу керек Arduino колдонуу: DS1307 - бул чыныгы убакыт сааты IC (RTC). Бул IC убакыт маалыматтарды берүү үчүн колдонулат. Белгиленген убакыт секундадан, мүнөттөн, сааттардан, күндөрдөн, датадан, айдан жана жылдан башталат. Бул IC Crystal жана 3.6V батареялары сыяктуу кошумча тышкы компоненттерди талап кылат. Кристалл
ADXL345 жана Arduino Nano колдонуу менен ылдамданууну өлчөө: 4 кадам
ADXL345 жана Arduino Nano колдонуу менен ылдамдатууну өлчөө: ADXL345-кичинекей, ичке, ультра кубаттуу, 3 октук акселерометр, ± 16 г чейин жогорку чечим (13-бит) менен өлчөө. Санарип чыгуучу маалыматтар 16-бит эки катары толукталган жана I2 C санариптик интерфейси аркылуу жеткиликтүү. Ал өлчөйт
3-октук акселерометр, ADXL345 Python колдонуу менен Raspberry Pi менен: 6 кадам
3-октук акселерометр, ADXL345 Raspberry Pi менен Python колдонуп: Offroaderңиз созулуп кете турган чекитти текшере турган гаджет жөнүндө ойлонуу. Кимдир бирөө оодарылып кетүү мүмкүнчүлүгү болгондо жөнгө салынса, жагымдуу болмок эмес беле? Ооба. Чын эле болмок
Blynkти колдонуу менен Arduino WeMos D1 WiFi UNO ESP8266 IOT IDEге шайкеш келген тактаны кантип колдонуу керек: 10 кадам
Blynkти колдонуу менен Arduino WeMos D1 WiFi UNO ESP8266 IOT IDEге шайкеш келген тактаны кантип колдонсо болот: Arduino WeMos D1 WiFi UNO ESP8266 IOT IDE Compatible Board Description: Description: WiFi ESP8266 Development Board WEMOS D1. WEMOS D1 - ESP8266 12Eге негизделген WIFI өнүктүрүү тактасы. Иштөө тутуму NODEMCUга окшош, бирок аппараттык жабдуулар бузулган