Wie das Lesen von Daten vom Arduino mit Raspberry Pi mit I2C

Ich versuche, das Lesen von Daten von einem Arduino UNO zu Raspberry Pi mit python-smbus Modul. Die einzige Dokumentation, die ich finden konnte auf dem smbus Modul wurde hier. Ich bin nicht sicher, was die cmd bedeutet, dass in das Modul. Kann ich mit dem schreiben zum senden von Daten an den Arduino. Ich habe geschrieben, zwei einfache Programme eine für Lesen und eine für schreiben

Den man für das schreiben

import smbus
b = smbus.SMBus(0)
while (0==0):
    var = input("Value to Write:")
    b.write_byte_data(0x10,0x00,int(var))

Die man für Lesen

import smbus
bus = smbus.SMBus(0)
var = bus.read_byte_data(0x10,0x00)
print(var)

Den Arduino-code ist

#include <SoftwareSerial.h>
#include <LiquidCrystal.h>
#include <Wire.h>
LiquidCrystal lcd(8,9,4,5,6,7);

int a = 7;

void setup() 
{ 
  Serial.begin(9600);
  lcd.begin(16,2);
  // define slave address (0x2A = 42)
  #define SLAVE_ADDRESS 0x10

  // initialize i2c as slave
  Wire.begin(SLAVE_ADDRESS);

  // define callbacks for i2c communication
  Wire.onReceive(receiveData);
  Wire.onRequest(sendData); 
}
void loop(){
}

// callback for received data
void receiveData(int byteCount) 
{
 Serial.println(byteCount);
  for (int i=0;i <= byteCount;i++){
  char c = Wire.read();
  Serial.println(c);
 }
}

// callback for sending data
void sendData()
{ 
  Wire.write(67);
  lcd.println("Send Data");
}

Wenn ich das lese-Programm, es gibt "33" jedes mal. Der Arduino gibt, die die sendData-Funktion aufgerufen wird.

Ich bin mit einem Daten Level-Shifter und die Beschreibung sagt, es könnte ein wenig träge.

Hat jemand bekommen diese zu arbeiten?

Schreibe einen Kommentar