реклама на сайте
подробности

 
 
> LSM303DLH - не могу прочитать показания, не могу прочитать показания акселерометра
demaven
сообщение Sep 20 2010, 06:49
Сообщение #1


Частый гость
**

Группа: Свой
Сообщений: 108
Регистрация: 10-05-05
Из: Киргизия Бишкек
Пользователь №: 4 886



Здравствуйте, уважаемые. Работаю с LSM303DLH, в данный момент с акселерометром. Сказал ему в CTRL_REG1_A 0x27, а он мне в ответ по осям выдает какую-то непонятку и каждый раз разную. Плата лежит на столе а показания болтаются как ето, ну в общем в проруби. И что еще этот акселерометр от меня хочет не могу понять. Даташит ковыряю, там есть еще куча регистров, и не все понятно, как с ними работать. Подскажите , кто знает.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов (1 - 13)
demaven
сообщение Nov 9 2010, 10:39
Сообщение #2


Частый гость
**

Группа: Свой
Сообщений: 108
Регистрация: 10-05-05
Из: Киргизия Бишкек
Пользователь №: 4 886



Справился, и читаю и считаю, есть еще вопросы, но они решаться
Go to the top of the page
 
+Quote Post
#olyalya
сообщение Nov 12 2010, 02:49
Сообщение #3





Группа: Новичок
Сообщений: 2
Регистрация: 2-07-10
Пользователь №: 58 245



Скажите, а с магнитным уже работали? В LSM303DLH возможна калибровка магнитного датчика?
Go to the top of the page
 
+Quote Post
demaven
сообщение Feb 10 2011, 13:28
Сообщение #4


Частый гость
**

Группа: Свой
Сообщений: 108
Регистрация: 10-05-05
Из: Киргизия Бишкек
Пользователь №: 4 886



Работал и с магнитным, но не для измерения напряженности, а "токма волею пославшей мя" для измерения азимутального угла, т.е. магнитным компасом.
Go to the top of the page
 
+Quote Post
iPilly
сообщение Mar 31 2011, 09:59
Сообщение #5





Группа: Новичок
Сообщений: 1
Регистрация: 31-03-11
Пользователь №: 64 019



Здравствуйте. Так как вы все-таки преодолели проблему с непоняткой в данных??? тоже начала работать с акселерометром и такая же фигня - показания скачут.. Что с этим делать??? help.gif
Go to the top of the page
 
+Quote Post
timbak
сообщение Apr 3 2011, 11:40
Сообщение #6





Группа: Новичок
Сообщений: 6
Регистрация: 3-04-11
Пользователь №: 64 090



Такая же проблема с акселерометром. Правда, пишу под Бэйсиком. Уважаемый demaven не могли бы вы сообщить адреса по которым общаетесь с датчиками?
Go to the top of the page
 
+Quote Post
timbak
сообщение Apr 6 2011, 23:26
Сообщение #7





Группа: Новичок
Сообщений: 6
Регистрация: 3-04-11
Пользователь №: 64 090



Уважаемый demaven ответьте пожалуйста, как вы решили проблему с хаотичными значениями?
Go to the top of the page
 
+Quote Post
joint931
сообщение May 14 2011, 17:10
Сообщение #8





Группа: Новичок
Сообщений: 6
Регистрация: 9-07-10
Пользователь №: 58 379



Уважаемый demaven, скиньте пожалуйста исходный код инициализации и чтения данных по i2c. Мучаюсь уже неделю пытаясь хоть как-то заставить это чудо работать. Заранее огромное спасибо.
Go to the top of the page
 
+Quote Post
joint931
сообщение May 16 2011, 16:57
Сообщение #9





Группа: Новичок
Сообщений: 6
Регистрация: 9-07-10
Пользователь №: 58 379



Подскажите кто-нибудь в чем ошибка в процедуре чтения данных с магнитометра:
Код
  i2c_start();
    i2c_write(0x3C);  // write mag
    i2c_write(0x03);  // Select register OUT_X_L_M
    i2c_start();         // repeated start
    i2c_write(0x3D); // read mag
    ACC_Data[0] = i2c_read();//read OUT_X_H_M (MSB)
    ACC_Data[1] = i2c_read();//read OUT_X_L_M (LSB)
    ACC_Data[2] = i2c_read();//read OUT_Y_H_M (MSB)
    ACC_Data[3] = i2c_read();//read OUT_Y_L_M (LSB)
    ACC_Data[4] = i2c_read();//read OUT_Z_H_M (MSB)
    ACC_Data[5] = i2c_read(0);//read OUT_Z_L_M (LSB) NACK
    i2c_stop();


Инициализация проходит нормально, но ACC_Data[0]..[5] на выходе получаются со значениями 255.
Go to the top of the page
 
+Quote Post
ren5
сообщение May 17 2011, 13:16
Сообщение #10


Частый гость
**

Группа: Свой
Сообщений: 137
Регистрация: 17-11-08
Из: Ростов
Пользователь №: 41 700



Цитата(joint931 @ May 16 2011, 20:57) *
Подскажите кто-нибудь в чем ошибка в процедуре чтения данных с магнитометра:
Код
  i2c_start();
    i2c_write(0x3C);  // write mag
    i2c_write(0x03);  // Select register OUT_X_L_M
    i2c_start();         // repeated start
    i2c_write(0x3D); // read mag
    ACC_Data[0] = i2c_read();//read OUT_X_H_M (MSB)
    ACC_Data[1] = i2c_read();//read OUT_X_L_M (LSB)
    ACC_Data[2] = i2c_read();//read OUT_Y_H_M (MSB)
    ACC_Data[3] = i2c_read();//read OUT_Y_L_M (LSB)
    ACC_Data[4] = i2c_read();//read OUT_Z_H_M (MSB)
    ACC_Data[5] = i2c_read(0);//read OUT_Z_L_M (LSB) NACK
    i2c_stop();


Инициализация проходит нормально, но ACC_Data[0]..[5] на выходе получаются со значениями 255.


получается считать данные из адреса WHO IS?

попробуй прочитать по байтно
вот так, из каждого адреса

i2c_write(0x3C); // write mag
i2c_write(0x03); // Select register OUT_X_L_M
i2c_start(); // repeated start
i2c_write(0x3D); // read mag
ACC_Data[0] = i2c_read();//read OUT_X_H_M (MSB) NACK
i2c_stop();

если получится, нужно протокол править в процедуре


--------------------
Go to the top of the page
 
+Quote Post
Nickolesik
сообщение Jun 9 2011, 10:26
Сообщение #11





Группа: Новичок
Сообщений: 1
Регистрация: 9-06-11
Пользователь №: 65 589



Помогите пожалуйста, у меня предмет диплома lsm303dlh, нету мат моделирования и эксперимента, дали готовый макет, а он не работает. Может у кого есть какие либо наработки, буду рад всему.
З.Ы. Все даташиты и срвис мануалы уже перелопатил.
_n_i_c_k_@inbox.ru
Go to the top of the page
 
+Quote Post
joint931
сообщение Jul 24 2011, 18:54
Сообщение #12





Группа: Новичок
Сообщений: 6
Регистрация: 9-07-10
Пользователь №: 58 379



Вопрос по обработке результатов измерений: как получить диапазон от -2048 до +2047? Байты на стороне компа сдвигаем и складываем так: Mx = (OUTXH << 8) + OUTXL. Как на выходе получить значение поля со знаком? Интересует чисто измеритель поля.. в гаусах, эрстедах.. без разницы в чем.
Go to the top of the page
 
+Quote Post
MrAlex
сообщение Jul 26 2011, 11:44
Сообщение #13


Частый гость
**

Группа: Свой
Сообщений: 197
Регистрация: 15-10-10
Из: г. Москва
Пользователь №: 60 179



Цитата(joint931 @ Jul 24 2011, 22:54) *
Вопрос по обработке результатов измерений: как получить диапазон от -2048 до +2047? Байты на стороне компа сдвигаем и складываем так: Mx = (OUTXH << 8) + OUTXL. Как на выходе получить значение поля со знаком? Интересует чисто измеритель поля.. в гаусах, эрстедах.. без разницы в чем.

Mx = (signed short) (OUTXH << 8) + OUTXL;
Go to the top of the page
 
+Quote Post
Art
сообщение Apr 2 2015, 11:09
Сообщение #14





Группа: Новичок
Сообщений: 1
Регистрация: 2-04-15
Пользователь №: 86 031



Доброго времени суток есть очень уважительная просьба хотелось бы увидеть листинг программы по обработке данных с магнитометра и акселерометра какая бралась ценна младшего разряда и тд . Очень нуждаюсь в вашей помощи.
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 26th July 2025 - 02:54
Рейтинг@Mail.ru


Страница сгенерированна за 0.0144 секунд с 7
ELECTRONIX ©2004-2016