#include <Wire.h>
void setup() {
Wire.begin(8); /* задаем на шине i2c 8 адрес */
Wire.onReceive(receiveEvent); /* регистрируем приход данных от главного */
Wire.onRequest(requestEvent); /* регистрируем запрос от главного */
Serial.begin(9600); /* открываем серийный порт */
}
void loop() {
delay(100);
}
// Функция для извлечения любых принимаемых данных от мастера на шину
void receiveEvent() {
while (0 <Wire.available()) {
char c = Wire.read(); /* получаем байт как символ*/
Serial.print(c); /* выводим символ в серийный порт */
}
Serial.println(); /* переходим на новую строку */
}
// Функция для извлечения любых отправляемых данных от мастера на шину
void requestEvent() {
Wire.write("Hello ESP32"); /* отправляем по запросу строку "Hello ESP32" */
}