Я работаю над attiny85 для связи I2C.Я прошел через различные библиотеки, такие как Wire.h
, TinyWire.h
, tinyWireM.h
, tinyWireS.h
.
В начале я хочу послать некоторый байт данных через I2C comm и попытался установить контакт с осциллографом, но он не дал мне соответствующих результатов.Поиск в интернете различных способов заставить attiny85 работать с I2c действительно бессердечен, и я не смог достичь этой цели.Наконец, я попытался сделать attiny85 ведущим, а arduino Uno - рабом, каким он был запасным в моей коробке.
Я попытался сделать attiny85 ведущим и отправить данные в arduino и просмотреть вывод на последовательном мониторе, но он показывает ноль.
Для справки, главный и подчиненный коды прикреплены, и моя задачапросто проверить серийный номер.
Attiny85 в роли Master
#include <TinyWireM.h>
void setup()
{
TinyWireM.begin();
}
void loop()
{
TinyWireM.begin();
TinyWireM.beginTransmission(0x08);
TinyWireM.send(0x99);
int Byte1 = TinyWireM.endTransmission();
delay(1000);
}
Arduino в качестве Slave
#include <Wire.h>
const byte add = 0x08;
int byte1;
void setup()
{
Wire.begin(add);
Wire.onReceive(receiveEvent);
Serial.begin(9600);
}
void loop()
{
Serial.println ("Data receiving");
Serial.println(byte1);
delay(1000);
}
void receiveEvent(int bytes)
{
byte1 = Wire.read();
}
Но я не могу получить вывод на последовательный монитор Arduino.Что я здесь не так делаю?