i2c mit Raspberry

Hallo sschultewolter, hallo Eisbaer,

meine Frage war.

"Hat jemand so was am laufen?"

Aber bitte hier ist die letzte Version meiner Versuche.

/******************************************************************
 Created with PROGRAMINO IDE for Arduino - 10.10.2016 21:09:11
 Project     :
 Libraries   :
 Author      :
 Description :
******************************************************************/
#include <Wire.h>

#define SLAVE_ADDRESS 0x04
int number = 0;
int dataindex = 0;
char daten[8] = {23, 51, 88, 127, 128, 180, 221, 230};

void setup() 
{
    pinMode(13, OUTPUT);
    Serial.begin(9600);         // start serial for output
    // initialize i2c as slave
    Wire.begin(SLAVE_ADDRESS);

    // define callbacks for i2c communication
    Wire.onReceive(receiveEvent);
    Wire.onRequest(sendData);

    Serial.println("Ready!");
}

void loop() 
{
    delay(100);
}

void receiveEvent(int howMany) {
  while (Wire.available()) { // loop through all but the last
    char c = Wire.read(); // receive byte as a character
    Serial.print(c);         // print the character
    index = 0;
  }
  index++;
  Serial.println("empfangen");         // print the integer
}

// callback for sending data
void sendData()
{
    Wire.write(daten[index]);
    Serial.print(index);
    Serial.print("--");
    Serial.print(daten[index]);
    Serial.println(" senden");
}

Python auf dem Raspberry:

import smbus
import time
# for RPI version 1, use "bus = smbus.SMBus(0)"
bus = smbus.SMBus(1)

# This is the address we setup in the Arduino Program
address = 0x04

while True:    
    vTimeDate = time.localtime()
    data = [vTimeDate[0]-2000, vTimeDate[1], vTimeDate[2], vTimeDate[3], vTimeDate[4], vTimeDate[5]]
    try:
        bus.write_i2c_block_data(address,0,data)
    except IOError:
        print("Schreibfehler ")
        time.sleep(1)
    print ("Nachricht an Aduino ", data)
    time.sleep(1)
    x = 0
    while x <= 7: 
        dataread = bus.read_byte_data(address,0)
        print(dataread)
        x += 1

Ausgabe vom Terminal am Arduino:
8empfangen
empfangen Die empfangenen Daten kann man in der ASCII-Einstellung nicht lesen
1--3 senden werden aber korrekt empfangen
empfangen
1--3 senden
empfangen
1--3 senden
empfangen
1--3 senden
empfangen
1--3 senden
empfangen
1--3 senden
empfangen
1--3 senden
empfangen
1--3 senden

:empfangen
empfangen
1--3 senden
empfangen
1--3 senden
empfangen
1--3 senden
empfangen
1--3 senden
empfangen
1--3 senden
empfangen
1--3 senden
empfangen
1--3 senden
empfangen
1--3 senden

und von der Python Shell:
Nachricht an Aduino [16, 10, 13, 9, 13, 31]
51
51
51
51
51
51
51
51
Nachricht an Aduino [16, 10, 13, 9, 13, 32]
51
51
51
51
51
51
51
51
Nachricht an Aduino [16, 10, 13, 9, 13, 33]