Страница на этапе разработки
#include <Wire.h>
int i =0;
char str[4];
void setup() {
Wire.begin(8); // задаем на шине i2c 8 адрес
Wire.onReceive(receiveEvent); // регистрируем полученное событие
Wire.onRequest(requestEvent); // регистрируем запрошенное событие
Serial.begin(9600); // открываем серийный порт для дебаггинга
}
void loop() {
int tInt[4]={0,0,0,0};
i++;
tInt[0]=((i/1000)%10);
tInt[1]=((i/100)%10);
tInt[2]=((i/10)%10);
tInt[3]=(i%10);
///////////////
str[0] = IntToStr(tInt[0]);
str[1] = IntToStr(tInt[1]);
str[2] = IntToStr(tInt[2]);
str[3] = IntToStr(tInt[3]);
//////////////
delay(1000);
}
// Функция для извлечения любых принимаемых данных от мастера на шину
void receiveEvent(int howMany) {
while (0 <Wire.available()) {
char c = Wire.read(); // получаем байт как символ
Serial.print(c); // выводим символ в серийный порт
}
Serial.println(); // переходим на новую строку
}
// Функция для извлечения любых отправляемых данных от мастера на шину
void requestEvent() {
Wire.write(str); // отправляем по запросу строку «Hello NodeMCU»
}
char IntToStr(int i){
char c=’0′;
switch (i){
case 0:
c = ‘0’;
break;
case 1:
c = ‘1’;
break;
case 2:
c = ‘2’;
break;
case 3:
c = ‘3’;
break;
case 4:
c = ‘4’;
break;
case 5:
c = ‘5’;
break;
case 6:
c = ‘6’;
break;
case 7:
c = ‘7’;
break;
case 8:
c = ‘8’;
break;
case 9:
c = ‘9’;
break;
default:
c=0;
}
return c;
}
#include <Wire.h>
int i=0;
void setup() {
Serial.begin(9600); // открываем серийный порт для дебаггинга
Wire.begin(D1, D2); // задаем i2c мост через контакты SDA=D1 и SCL=D2 на NodeMCU
//Wire.begin(13);
}
void loop() {
char str[4]={‘0′,’0′,’0′,’0’};
int result[4] = {0,0,0,0};
//Wire.beginTransmission(8); // Начинаем передачу на адресе 8 /
//Wire.write(«Hello Arduino»); // Отправляем «hello Arduino»
//Wire.endTransmission(); //прекращаем передачу
Wire.requestFrom(8, 4); // запрашиваем и считываем данные с 8 адресса, 4 данных
i=0;
while(Wire.available()){
char c =+ Wire.read();
str[i++]= c;
// Serial.print(c);
}
// Serial.println();
// Serial.print(«str=»);
// Serial.println(str);
result[0] = StrToInt (str[0]);
result[1] = StrToInt (str[1]);
result[2] = StrToInt (str[2]);
result[3] = StrToInt (str[3]);
int res= result[0]*1000+result[1]*100+result[2]*10+result[3]*1;
Serial.print(«Int=»);
Serial.println(res);
delay(1000);
}
int StrToInt(char c){
int i=0;
switch (c){
case ‘0’:
i = 0;
break;
case ‘1’:
i = 1;
break;
case ‘2’:
i = 2;
break;
case ‘3’:
i = 3;
break;
case ‘4’:
i = 4;
break;
case ‘5’:
i = 5;
break;
case ‘6’:
i = 6;
break;
case ‘7’:
i = 7;
break;
case ‘8’:
i = 8;
break;
case ‘9’:
i = 9;
break;
default:
i=0;
}
return i;
}