Skip to content

Commit fc50c74

Browse files
committed
много правок
1 parent a00ae28 commit fc50c74

File tree

7 files changed

+355
-256
lines changed

7 files changed

+355
-256
lines changed

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ uint8_t MT_RequestSingleRegister(uint8_t _reg_addr);
1414
// Запись нового содержимого в регистр
1515
void MT_WriteOneByte(uint8_t _reg_addr, uint8_t _payload);
1616
```
17+
* Использовать методы описанные выше седует через наследование класса MT6701I2C
1718
* Все доступные методы, константы, типы данных можно посмотреть [тут](https://github.com/S-LABc/MT6701-Arduino-Library/blob/main/src/MT6701_I2C.h)
1819
1920
## Ссылки
Lines changed: 93 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,93 @@
1+
/*
2+
* 1. Open Serial Monitor at 9600 and there is no line ending
3+
* 2. Send the character "s" to the Serial Monitor
4+
*
5+
* CORRECT SERIAL MONITOR LOGS
6+
7+
Sensor Found!
8+
9+
Reading Current Value...
10+
Zero Degree Position (HEX): 0 [0 - default, but may be different]
11+
12+
Changing Value... Value Changed
13+
14+
Saving New Values...
15+
16+
Reading New Value...
17+
Zero Degree Position After Saving (HEX): 8
18+
19+
Program Complete!
20+
*
21+
*/
22+
23+
#include <MT6701_I2C.h>
24+
25+
MT6701I2C SensorI2C(&Wire);
26+
27+
void setup() {
28+
Serial.begin(9600);
29+
30+
SensorI2C.begin();
31+
SensorI2C.setClock();
32+
33+
while(1) { // Waiting for the input of the character "s"
34+
byte c;
35+
if(Serial.available())
36+
c = Serial.read();
37+
if(c == 's') {
38+
break;
39+
}
40+
delay(100);
41+
}
42+
43+
while(!SensorI2C.isConnected()) {
44+
Serial.println("Sensor not Connected!");
45+
delay(500);
46+
}
47+
Serial.println("Sensor Found!");
48+
Serial.println();
49+
50+
delay(300); // The delay is not important. so it's easier to see in the SM
51+
52+
Serial.println("Reading Current Value...");
53+
word zdp;
54+
zdp = SensorI2C.getZeroDegreePositionData();
55+
Serial.print("Zero Degree Position (HEX): ");
56+
Serial.println(zdp, HEX);
57+
Serial.println();
58+
59+
delay(300); // The delay is not important. so it's easier to see in the SM
60+
61+
Serial.print("Changing Value... ");
62+
word zdp_new = 0x0008; // New value
63+
if(SensorI2C.setZeroDegreePositionDataVerify(zdp_new)) {
64+
Serial.println("Value Changed");
65+
} else {
66+
Serial.println("Value Change Error");
67+
}
68+
Serial.println();
69+
70+
delay(300); // The delay is not important. so it's easier to see in the SM
71+
72+
Serial.println("Saving New Values...");
73+
Serial.println();
74+
// It's important to save the new values after the change.
75+
// Called once even after setting multiple values
76+
// else values return to default after power off
77+
SensorI2C.saveNewValues();
78+
79+
delay(700); // >600ms
80+
81+
Serial.println("Reading New Value...");
82+
word zdp_after;
83+
zdp_after = SensorI2C.getZeroDegreePositionData();
84+
Serial.print("Zero Degree Position After Saving (HEX): ");
85+
Serial.println(zdp_after, HEX);
86+
Serial.println();
87+
88+
Serial.println("Program Complete!");
89+
}
90+
91+
void loop() {
92+
// nop
93+
}

examples/MT6701_test/MT6701_test.ino

Lines changed: 24 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -13,37 +13,42 @@
1313
** GitHub - https://github.com/S-LABc
1414
** Gmail - romansklyar15@gmail.com
1515
*
16-
* Copyright (C) 2022. v1.0 / Скляр Роман S-LAB
16+
* Copyright (C) 2022. v1.1 / Скляр Роман S-LAB
1717
*/
1818

1919
#include <MT6701_I2C.h>
2020

21-
// раскомментировать для заупска функции сохранения значений
21+
// Раскомментировать для заупска функции сохранения значений
2222
//#define SAVE_VALUES
2323

24-
/*
25-
* STM32_MT6701_MODE_PIN PC13
26-
* ESP32_MT6701_MODE_PIN 2
27-
* ARDUINO_MT6701_MODE_PIN 3
28-
* или любой другой
29-
*
30-
* MT6701I2C_MODE_I2C_SSI - притягивает контакт MODE к VCC
31-
* MT6701I2C_MODE_UVW_ABZ - притягивает контакт MODE к GND
32-
*/
3324
MT6701I2C SensorI2C(&Wire);
34-
//MT6701I2C SensorI2C(&Wire, ARDUINO_MT6701_MODE_PIN, MT6701I2C_MODE_I2C_SSI);
3525

3626
void setup() {
3727
Serial.begin(115200);
3828

29+
// Запускаем соединение
3930
SensorI2C.begin();
31+
// Настраиваем шину I2C на 400кГц
32+
SensorI2C.setClock();
33+
//Можно на друие частоты, но работает не на всех микроконтроллерах
34+
//SensorI2C.setClock(MT6701_I2C_CLOCK_100KHZ); // 100кГц
35+
//SensorI2C.setClock(MT6701_I2C_CLOCK_1MHZ); // 1МГц
36+
//SensorI2C.setClock(725000); // Пользовательское значение 725кГц
37+
38+
/*
39+
* Если нужно управлять режимами датчика
40+
* STM32_MT6701_MODE_PIN PC13
41+
* ESP8266_MT6701_MODE_PIN 2
42+
* ESP32_MT6701_MODE_PIN 4
43+
* ARDUINO_MT6701_MODE_PIN 3
44+
* или любой другой GPIO
45+
*/
46+
//SensorI2C.attachModePin(ARDUINO_MT6701_MODE_PIN); // SensorI2C.detachModePin();
47+
//SensorI2C.enableI2CorSSI(); // Включить интерфейс I2C/SSI
48+
//SensorI2C.enableUVWorABZ(); // Включить интерфейс UVW/ABZ
49+
4050

41-
//SensorI2C.setClock100kHz();
42-
SensorI2C.setClock400kHz();
43-
//SensorI2C.setClock1MHz();
44-
//SensorI2C.setClock(200000); // другое значение частоты
45-
46-
while(!Serial) {}
51+
while(!Serial);
4752

4853
while(!SensorI2C.isConnected()) {
4954
Serial.println("Датчик не обнаружен");
@@ -133,5 +138,5 @@ void saveNewSettings() {
133138
delay(700); // >600мс
134139
Serial.println("Saved Successfully. Reconnect Power");
135140

136-
while(1) {}
141+
while(1);
137142
}

keywords.txt

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -15,20 +15,17 @@ SensorI2C KEYWORD1
1515

1616
MT6701I2C KEYWORD2
1717

18-
MT_RequestSingleRegister KEYWORD2
19-
MT_WriteOneByte KEYWORD2
20-
2118
begin KEYWORD2
2219
setClock KEYWORD2
23-
setClock100kHz KEYWORD2
24-
setClock400kHz KEYWORD2
25-
setClock1MHz KEYWORD2
2620
end KEYWORD2
2721

2822
saveNewValues KEYWORD2
2923

3024
isConnected KEYWORD2
3125

26+
attachModePin KEYWORD2
27+
detachModePin KEYWORD2
28+
3229
enableI2CorSSI KEYWORD2
3330
enableUVWorABZ KEYWORD2
3431

@@ -110,6 +107,7 @@ MT6701_I2C_CLOCK_1MHZ LITERAL1
110107
MT6701_I2C_ADDRESS LITERAL1
111108

112109
STM32_MT6701_MODE_PIN LITERAL1
110+
ESP8266_MT6701_MODE_PIN LITERAL1
113111
ESP32_MT6701_MODE_PIN LITERAL1
114112
ARDUINO_MT6701_MODE_PIN LITERAL1
115113

library.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
name=MT6701
2-
version=1.0
2+
version=1.1
33
author=Roman Sklyar S-LAB <romansklyar15@gmail.com>
44
maintainer=Roman Sklyar <romansklyar15@gmail.com>
55
sentence=API for a 14-Bit Hall Based Angle Position Encoder Sensor

0 commit comments

Comments
 (0)