01:45
Датчик магнитного поля MMC2120MG
 Нашел небольшой пример с использованием датчика магнитного поля MMC2120MG, он же цифровой компас. Датчик измеряет значение магнитного поля по двум осям с разрешением 12 бит.

Подключение
Для подключения к контроллеру, датчик имеет протокол I2C и постоянный адрес на шине h60. Напряжение питания датчика может варьироваться в пределах 2,7-5,5 В.  
 
Демонстрационный код написан в Bascom-AVR. Данные прочитанные с датчика передаются в компьютер по протоколу UART



$regfile = "m8def.dat"
$crystal = 8000000
$framesize = 64
$swstack = 64
$hwstack = 64
$baud = 9600
$lib "i2c_twi.lbx"

Config Pinb.6 = Input
Portb.6 = 1
Config Pinb.7 = Input
Portb.7 = 1
Config Pind.5 = Input
Portd.5 = 1
Taster1 Alias Pinb.6
Taster2 Alias Pinb.7
Taster3 Alias Pind.5

Config Portd.7 = Output
Config Portd.6 = Output
Config Portb.0 = Output
Led_gl Alias Portd.7
Led_rt Alias Portd.6
Led_gr Alias Portb.0

Config Twi = 400000
Config Scl = Portc.5
Config Sda = Portc.4

Const Cmp_w = &H60
Const Cmp_r = &H61

Dim I As Byte
Dim Dat(5) As Byte
Dim X As Word
Dim Y As Word

I2cinit

Do

I2cstart
I2cwbyte Cmp_w
I2cwbyte &H00
I2cwbyte &B00000010
I2cstop
 
Waitms 1
 
I2cstart
I2cwbyte Cmp_w
I2cwbyte &H00
I2cwbyte &B00000100
I2cstop
 
Waitms 5
 
I2cstart
I2cwbyte Cmp_w
I2cwbyte &H00
I2cwbyte &H01
I2cstop
 
Waitms 5
 
I2cstart
I2cwbyte Cmp_w 
I2cwbyte &H00
I2cstart
I2cwbyte Cmp_r
 
 For I = 1 To 4

I2crbyte Dat(i) , Ack
Next
I2crbyte Dat(5) , Nack
I2cstop

Dat(2) = Dat(2) And &B0000_1111
Dat(4) = Dat(4) And &B0000_1111

X = Dat(2) * 256
X = X + Dat(3)

Y = Dat(4) * 256
Y = Y + Dat(5)
 
Print X ; " " ; Y
 
Waitms 40
 
Toggle Led_rt
Loop
End


График построенный из данных принятых в терминал:





Демонстрационное видео работы:



Источник: http://www.mtahlers.de/index.php/elektronik/sensoren/mmc2120mg




Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]

   EasyEDA:  бесплатный редактор схем

   ✓ Создание схем
   ✓ Возможность симуляции
   ✓ Быстрое создание печатных плат
   ✓ Интуитивно понятный интерфейс

   Нарисуй свою схему прямо сейчас!
   Изготовление печатных плат   https://easyeda.com/order
авторизация
Логин:
Пароль:
Комментарии
Встраиваемый модуль радиоуправления на nRF24L01
21.10.2017 - exersizze:
Алгоритм включения прописан в подпрограмме Logic2, странно что у вас не включает...
Программатор USBASP
21.10.2017 - exersizze:
я свой первый usbasp программировал через LPT порт и программу Ponyprog, поэтому...
Программатор USBASP
20.10.2017 - mozga:
всем привет. вопрос:получается,сделанный(спаянный) программатор на atmega8 в это...
Встраиваемый модуль радиоуправления на nRF24L01
19.10.2017 - amg_84:
Подскажите, пожалуйста. Режим 2. Повторное нажатие любой клавиши пульта не приво...
Бесконтактный датчик температуры MLX90614
18.10.2017 - exersizze:
а с обратной стороны, подключение дисплея не видно.
Бесконтактный датчик температуры MLX90614
18.10.2017 - TSL:
Кинул фото на сюда http://s41.radikal.ru/i093/1710/0b/6064b20c764a.jpg
Пр...
Бесконтактный датчик температуры MLX90614
17.10.2017 - TSL:
Хорошо, завтра сфоткаю. Кину на хостинг или на тот-же сайт Паяльник.
Бесконтактный датчик температуры MLX90614
17.10.2017 - exersizze:
Вроде верно, я тоже использовал мегу в дип корпусе (а схема для tqfp, да)
...
Бесконтактный датчик температуры MLX90614
16.10.2017 - TSL:
exersizze спасибо что вы хоть отвечаете. Создал тему на Паяльнике, но пока там т...