Problema I2C Attiny85-Arduino

Grazie delle guide leo! :slight_smile: Ho dato una lettura alle tue guide, tuttavia non sono ancora riuscito ad inviare più di un byte da attiny, quindi penso che il problema sia lato software. Ripropongo ancora una volta una domanda : Le pull-up da 1K vanno bene lo stesso?
Ed ora che provo a trasmettere un char perchè non funziona, il char non è 1 byte?? Per piacere, il progetto è urgente.. :~
Quello che ottengo in seriale è roba incomprensibile, certe volte anche nulla. :drooling_face:

MASTER :

#include <Wire.h>
#define ADDRESS 0x13

int i = 0;
char input[6];

void setup()
{
  Wire.begin();        // join i2c bus (address optional for master)
  Serial.begin(9600);  // start serial for output
}

void loop()
{
  Wire.requestFrom(ADDRESS, 6);    // request 2 bytes from slave device 0x13
  if(Wire.available()>0)
  { 
    for (i=0; i<Wire.available(); i++){
      input[i] = (char) Wire.read();
    }
    Serial.print("Dato ricevuto : ");
    Serial.println(input);
  }  
}

SLAVE:

 #include <TinyWireS.h>
#include <string.h>
#define ADDRESS  0x13  // Indirizzo I2C

const byte led1 = 1;  
const byte led2 = 3;
char stringa[] = {
  "Te2910"};

void setup() {
  TinyWireS.begin(ADDRESS); // Inizializzo la comunizazione I2C
  pinMode(led1, OUTPUT);
  pinMode(led2, OUTPUT);

  digitalWrite(led1, HIGH);  // Show it's alive
  digitalWrite(led2, HIGH);
  tws_delay(500);
  digitalWrite(led1, LOW);
  digitalWrite(led2, LOW);
  tws_delay(1000);
}

void loop() {
  TinyWireS.onRequest(Send); // Alla richiesta richiama Send
}

void Send() {
  for (int i=0; i<strlen(stringa); i++){
    TinyWireS.send((byte) stringa[i]);
    digitalWrite(led1, HIGH);
    tws_delay(50);
    digitalWrite(led1, LOW);
    tws_delay(50);
  }
  digitalWrite(led2, HIGH); // Successfully transmitted
  tws_delay(100);
  digitalWrite(led2, LOW);
  tws_delay(1000);
}