You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
- Библиотеку можно найти по названию **microWire** и установить через менеджер библиотек в:
22
+
- Arduino IDE
23
+
- Arduino IDE v2
24
+
- PlatformIO
25
+
-[Скачать библиотеку](https://github.com/GyverLibs/microWire/archive/refs/heads/main.zip) .zip архивом для ручной установки:
26
+
- Распаковать и положить в *C:\Program Files (x86)\Arduino\libraries* (Windows x64)
27
+
- Распаковать и положить в *C:\Program Files\Arduino\libraries* (Windows x32)
28
+
- Распаковать и положить в *Документы/Arduino/libraries/*
29
+
- (Arduino IDE) автоматическая установка из .zip: *Скетч/Подключить библиотеку/Добавить .ZIP библиотеку…* и указать скачанный архив
30
+
- Читай более подробную инструкцию по установке библиотек [здесь](https://alexgyver.ru/arduino-first/#%D0%A3%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0_%D0%B1%D0%B8%D0%B1%D0%BB%D0%B8%D0%BE%D1%82%D0%B5%D0%BA)
31
+
32
+
<aid="init"></a>
33
+
## Инициализация
34
+
Нет
35
+
36
+
<aid="usage"></a>
37
+
## Использование
38
+
```cpp
39
+
voidbegin(void); // инициализация шины
40
+
void setClock(uint32_t clock); // ручная установка частоты шины 31-900 kHz (в герцах)
41
+
void beginTransmission(uint8_t address); // открыть соединение (для записи данных)
42
+
uint8_t endTransmission(bool stop); // закрыть соединение , произвести stop или restart (по умолчанию - stop)
43
+
uint8_t endTransmission(void); // закрыть соединение , произвести stop
44
+
void write(uint8_t data); // отправить в шину байт данных , отправка производится сразу , формат - byte "unsigned char"
45
+
void requestFrom(uint8_t address , uint8_t length , bool stop); //открыть соединение и запросить данные от устройства, отпустить или удержать шину
46
+
void requestFrom(uint8_t address , uint8_t length); //открыть соединение и запросить данные от устройства, отпустить шину
47
+
uint8_t read(void); // прочитать байт , БУФЕРА НЕТ!!! , читайте сразу все запрошенные байты , stop или restart после чтения последнего байта, настраивается в requestFrom
48
+
uint8_t available(void); // вернет количество оставшихся для чтения байт
49
+
```
50
+
51
+
<a id="example"></a>
52
+
## Пример
53
+
```cpp
54
+
/* Пример записи и чтения данных в I2C - EEPROM "AT24C32" */
55
+
56
+
// #include <Wire.h> // заменяем Wire.h на microWire.h
57
+
#include <microWire.h>
58
+
59
+
uint8_t chipAddress = 0x57; // адрес устройства (используйте i2c scaner для определения)
60
+
uint16_t cellAddress = 3064; // адрес первой ячейки , куда будем писать и откуда читать
61
+
uint8_t data_0 = 115; // данные , которые запишем в EEPROM ( сравнивайте с этим числом при чтении )
62
+
uint8_t data_1 = 14;
63
+
64
+
void setup() {
65
+
Serial.begin(9600);
66
+
Wire.begin();
67
+
68
+
/* запись */
69
+
Wire.beginTransmission(chipAddress); // начинаем передачу с устройством , зовем по адресу
70
+
Wire.write(highByte(cellAddress)); // отправляем старший байт первой адреса ячейки
71
+
Wire.write(lowByte(cellAddress)); // отправляем младший байт первой адреса ячейки
72
+
Wire.write(data_0); // отпарвляем байт данных
73
+
Wire.write(data_1); // отпарвляем еще байт данных
74
+
Wire.endTransmission(); // завершаем передачу
75
+
76
+
delay(50); // подождем
77
+
78
+
/* чтение */
79
+
Wire.beginTransmission(chipAddress); // начинаем передачу с устройством , зовем по адресу
80
+
Wire.write(highByte(cellAddress)); // отправляем старший байт адреса первой ячейки
81
+
Wire.write(lowByte(cellAddress)); // отправляем младший байт адреса первой ячейки
82
+
Wire.endTransmission(); // завершаем передачу
83
+
Wire.requestFrom(chipAddress , 2); // запрашиваем свои 2 байта данных
84
+
while (Wire.available()) { // пока запрошенные данные не кончились
85
+
Serial.println(Wire.read()); // читаем и выводим их
0 commit comments