Das Programm (Listing 6) macht im Prinzip dasselbe wie I2cget: Es baut eine Verbindung mit dem Gerät 0x20 am I2C-Bus 1 auf und liest ein Byte von der Adresse. Den eingelesenen Wert gibt es auf dem Bildschirm aus. Um das Programm knapp zu halten, beinhaltet es keinerlei Routinen zur Fehlerbehandlung. Sie starten es mit dem Kommando go run i2c.go im Terminal.
Listing 6
package main
import (
"fmt"
"gobot.io/x/gobot/drivers/i2c"
"gobot.io/x/gobot/sysfs"
)
func main() {
bus,err := sysfs.NewI2cDevice("/dev/i2c-1")
device := i2c.NewConnection(bus,0x20)
defer device.Close()
value,err := device.ReadByte()
fmt.Printf("Counter Value:%X\n",value)
}
Fazit
Alles in allem ist es keine leichte Aufgabe, einen Mikrocontroller wie den Arduino als Slave am I2C-Bus zu betreiben. Es gilt dabei, viele Kleinigkeiten zu bedenken und bis zum ersten Ergebnis viele Schritte zu gehen. Haben Sie diese Hürden erst einmal genommen, eröffnen sich jedoch viele interessante Möglichkeiten. Der Arduino als echtzeitfähiger Mikrocontroller ermöglicht komplett andere Szenarien als der RasPi, der – durch sein Betriebssystem bedingt – dieses Kriterium nicht erfüllt. Der Arduino erweitert zudem die GPIOs des RasPi um analoge Ein- und Ausgabe. Das erlaubt es, spezielle, vollständig auf ein Problem zugeschnittene I2C-Slaves zu programmieren. Kleine Atmel-Controller [7] erhalten Sie im Handel schon für unter 1 Euro.
Der Autor
Martin Mohr entwickelte schon in früher Jugend eine Vorliebe für alles, was blinkt. Das verstärkte sich durch eine Ausbildung zum Elektroniker. Nach einem Studium der Informatik entwickelte er überwiegend Java-Applikationen. Mit dem RasPi erwachte die alte Liebe zur Elektronik wieder.
Infos
- Raspberry Pi 3: https://de.rs-online.com/web/p/processor-microcontroller-development-kits/8968660/
- Apra-Gehäuse: https://www.amazon.de/Raspberry-Geh%C3%A4use-apRaspi-Variante-Feinstruktur/dp/B01GRE6XSK/
- RasPi-Downloads: https://www.raspberrypi.org/downloads/
- Arduino-IDE-Downloads: https://www.arduino.cc/en/Main/Software
- Level Shifter: https://ex-store.de/5-3-Volt-Level-Shifter-IIC-UART-SPI
- Gobot: https://gobot.io
- Atmel: http://www.atmel.com/products/microcontrollers/avr/default.aspx





