Администрация форума не несёт ответственности за достоверность информации и оставляет за собой право редактировать или в особых случаях даже удалять посты без предупреждения. Спасибо за понимание.

Программирование ATMEL в BASCOM.

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.


Вы здесь » Программирование ATMEL в BASCOM. » Вопросы - ответы » MMA8451 GY-45 модуль 3-х осевого цифрового акселерометра


MMA8451 GY-45 модуль 3-х осевого цифрового акселерометра

Сообщений 1 страница 11 из 11

1

Уважаемые форумчане! Прошу помощи, хотя бы кусочка рабочего кода в Bascome кто имел дело с этим модулем. Спасибо . Сам не могу разобраться  в даташите.

0

2

Нашел ! Как раз кусочек и он работает! Буду разбираться . Может кому сгодиться.

Config Sda = Portc.4                                        'I2C I/Os
Config Scl = Portc.5
Config Twi = 400000
I2cinit

Dim Mma_8451q_read As Byte
Dim Mma_8451q_write As Byte
Dim Gyro_stat As Byte
Dim Xx As Byte
Dim Xz As Byte
Dim Xy As Byte
Dim Info As Byte

Mma_8451q_read = &H39
Mma_8451q_write = &H38

'3) Auf STDBY stellen
'I2cstart                                                    'STDBY Mode
'I2cwbyte Mma_8451q_write
'I2cwbyte &H2A
'I2cwbyte &B00000110                                         'FIFO auf aktuellsten messswert
'I2cstop

'4)FIFO einstellen
I2cstart                                                    'FIFO Einstellen
I2cwbyte Mma_8451q_write
I2cwbyte &H09
I2cwbyte &B01000000
I2cstop

'5) Auf Aktiv stellen
I2cstart                                                    'Active Mode
I2cwbyte Mma_8451q_write
I2cwbyte &H2A
I2cwbyte &B00000111                                         'FIFO auf aktuellsten messswert + 8bit
I2cstop

I2cstart
I2cwbyte Mma_8451q_write
I2cwbyte &H00
I2crepstart
I2cwbyte Mma_8451q_read
I2crbyte Gyro_stat , Nack
I2cstop

Do

   I2cstart
   I2cwbyte Mma_8451q_write
   I2cwbyte &H01                                           '8bit X (MSB_X)
   I2crepstart
   I2cwbyte Mma_8451q_read
   I2crbyte Xx , ack
   I2crbyte Xz , ack
   I2crbyte Xy , Nack
   I2cstop

    'Xx   ---------------------------------
    'Xz                             Эти переменные X / Y / Z  можно выводить на лсд.
    'Xy
    ' Bin(gyro_stat) --------------------

waitms 500

Loop

Отредактировано qewin (2017-11-23 21:07:27)

0

3

qewin написал(а):

Нашел ! Как раз кусочек и он работает! Буду разбираться . Может кому сгодиться.
...

Кусочек интересный, но под какой МК ?
Понятно, что можно припупырить, но интересует изначальность проекта...

0

4

Из акселя уровень!  :D Только не забудьте к нему ещё настоящий уровень приложить.

0

5

Аксель показывает угол отклонения, т.е. *относительную* величину, у него нет понятия нуля (если датчик в покое, он всегда показывает 0).
Иными словами: вы когда схему включите, то вначале будите его калибровать по обычному уровню, а только потом можно хоть как-то начинать рассчитывать углы смещения.

0

6

Акселерометр измеряет ускорение. Для измерения угла отклонения нужен гироскоп.

0

7

Петр, не заводи людей в заблуждение. :) Там всё на оборот.

0

8

Ссылку можете кинуть, но сомневаюсь, что там что-то меня удивит и будет раскрыт полный потенциал тестов.

0

9

RDW написал(а):

Там всё на оборот.

Разве?
https://ru.wikipedia.org/wiki/Акселерометр

Акселеро́метр (лат. accelero — ускоряю и др.-греч. μετρέω «измеряю») — прибор, измеряющий проекцию кажущегося ускорения (разности между истинным ускорением объекта и гравитационным ускорением).

https://ru.wikipedia.org/wiki/Гироскоп

Гироскоп (от др.-греч. γῦρος — круг + σκοπέω — смотрю) — устройство, способное реагировать на изменение углов ориентации тела, на котором оно установлено, относительно инерциальной системы отсчета.

0

10

делал как то давно.

0

11

http://sg.uploads.ru/t/KZI0g.jpg

0


Вы здесь » Программирование ATMEL в BASCOM. » Вопросы - ответы » MMA8451 GY-45 модуль 3-х осевого цифрового акселерометра