Arduino Forum

International => Deutsch => Topic started by: MiXXer on Jul 11, 2011, 06:53 pm

Title: Mehrer Shields über SPI anschließen
Post by: MiXXer on Jul 11, 2011, 06:53 pm
Hallo,
ich bin neu hier. Ich würde gerne einige Daten (Messwerte wie z.B. Temp, Spannung etc..) mit dem Arduino Uno verarbeiten und speichern. Gleichzeitg soll bei erreichen einer best. Temperatur oder unterschreiten einer Spannung eine SMS versendet werden.
Ist es also möglich an den Arduino einen Datenlogger anzuschließen und gleichzeitig ein GSM-Shield? Für Hilfen und Antworten wäre ich sehr dankbar.

Viele Grüße
Magnus
Title: Re: Kombinieren von UNO mit GPS/GSM-Shield und Datenlogger
Post by: MiXXer on Jul 12, 2011, 11:08 am
So hab mich noch etwas schlauer gemacht.
Seh ich es richtig, das ich es wie folgt anschließen kann:
(http://tronixstuff.files.wordpress.com/2011/05/sspiss2.jpg)
D.h auf Pin 10 leg ich z.B das GSM Modul und auf Pin 9 das SD-Modul??

Kann das klappen?

Danke
Title: Re: Kombinieren von UNO mit GPS/GSM-Shield und Datenlogger
Post by: uwefed on Jul 12, 2011, 11:26 am
Das klappt.
Jedes Modul braucht einen eigene Chip Select Verbindung.
Viele Grüße Uwe
Title: Re: Mehrer Shields über SPI anschließen
Post by: MiXXer on Jul 12, 2011, 09:52 pm
Hat das schon jemand gemacht, was muß ich dazu in der Programmierung ändern?
Gibt es dazu ein Tutorial oder kleine Bsp.?

Mfg
Title: Re: Mehrer Shields über SPI anschließen
Post by: uwefed on Jul 12, 2011, 10:54 pm
Aus dem Beispiel: http://arduino.cc/en/Tutorial/BarometricPressureSensor
den Codeschnipsel um Daten an den Baustein zu übertragen.
Code: [Select]

void setup() {
  ...
  // start the SPI library:
  SPI.begin();
  // initalize the  data ready and chip select pins:
  pinMode(dataReadyPin, INPUT);
  pinMode(chipSelectPin, OUTPUT);
  ...
  }
loop(){
...
// take the chip select low to select the device:
  digitalWrite(chipSelectPin, LOW);             // select the device

  SPI.transfer(dataToSend);           //Send register location
  SPI.transfer(thisValue);              //Send value to record into register

  // take the chip select high to de-select:
  digitalWrite(chipSelectPin, HIGH);
  ...
   }


Den 2. Codeschmipsel brauchst Du nur gleich zu machen mit einem anderen CS-Leitung für den 2.  Baustein.
Grüße Uwe