$ git clone https://github.com/nodesign/MCP3008.git
Achten Sie darauf, in den Ordner libraries/ zu wechseln und nicht etwa nach lib: In Letzterem liegen die Bibliotheken, die die Arduino-IDE selbst braucht. Haben Sie den Befehl erfolgreich ausgeführt, finden Sie im Verzeichnis libraries/ einen neuen Ordner MCP3008/ mit der zusätzliche Bibliothek für den Baustein.
Wenn Sie jetzt die Arduino-IDE neu starten, stehen die Funktionen für den Zugriff auf den MCP3008 bereit. Listing 4 initialisiert zunächst das MCP3008-Objekt adc mit der aktuellen Pinbelegung. Danach nutzen Sie dieses Objekt, um die einzelnen Kanäle des MCP3008 mit der Methode readADC(Kanal) auszulesen. Die For-Schleife spricht dabei alle Channels nacheinander an und sendet das Ergebnis an die USB-Schnittstelle (Abbildung 8).
Listing 4
include <MCP3008.h>
#define CS_PIN 15
#define CLOCK_PIN 14
#define MOSI_PIN 13
#define MISO_PIN 12
MCP3008 adc(CLOCK_PIN, MOSI_PIN, MISO_PIN, CS_PIN);
void setup() {
Serial.begin(115200);
}
void loop() {
for (int i=0 ; i<8; i++) {
Serial.print("Channel ");
Serial.print(i);
Serial.print(" : ");
int val = adc.readADC(i);
Serial.println(val);
delay (500);
}
}
Fazit
Beim SPI-Bus erkaufen Sie sich den einfachen Aufbau der Hardware oft mit ziemlich viel Arbeit bei den Programmen, um die Bausteine anzusteuern. Daher lohnt es sich, wann immer möglich auf vorhandene Bibliotheken für Halbleiter am SPI-Bus zurückzugreifen.
Der ESP8266 unterstützt SPI vollständig, was die Möglichkeit eröffnet, eine Vielzahl günstiger Bausteine anzuschließen. Von besonderem Interesse ist die Tatsache, dass viele LCD-Displays den SPI-Bus verwenden. Im nächsten Teil dieser Reihe zeigen wir, wie einfach Sie so ein Display mit dem ESP8266 ansteuern.
Der Autor
Martin Mohr hat seit seiner frühen Jugend eine Vorliebe für alles, was blinkt. Nach einer Ausbildung zum Elektroniker und einem anschließenden Informatikstudium arbeitete er überwiegend in der Entwicklung von Java-Applikationen. Mit dem RasPi ist die alte Liebe zur Elektronik wieder erwacht.
Infos
- Datenblatt SN74HC595: http://www.ti.com/lit/ds/symlink/sn74hc595.pdf
- Datenblatt MCP3008: http://ww1.microchip.com/downloads/en/DeviceDoc/21295C.pdf






