komunikasi SPI






1. Hardware  [Kembali]



Gambar Button


GambarLED






3.Flowchart  [Kembali]


MASTER
#include<SPI.h>
#define SLAVE_ADDR 9

bool state, lastState;

int analogPin = 0;
int val = 0;

void setup() {
  pinMode(analogPin, INPUT_PULLUP);
  pinMode(analogPin, OUTPUT);
  pinMode(SS, OUTPUT);
  digitalWrite(SS, HIGH);
  SPI.begin();
  SPI.setClockDivider(SPI_CLOCK_DIV8);
}
void loop() {
  state = digitalRead(analogPin);
  if(state != lastState){
  delay(50);
  val = map(analogRead(analogPin), 0, 1023, 255, 1);

  Serial.print(val);
  }
}

SLAVE
#include<SPI.h>
#define SLAVE_ADDR 9

int LED = 13;
int rd;
int br;

void setup() {
  pinMode(LED, OUTPUT);
  SPCR |= _BV(SPE);
  SPI.attachInterrupt();

}
void loop() {
 
  delay(50);
  br = map(rd, 1, 255, 100, 2000);

  digitalWrite(LED, HIGH);
  delay(br);
  digitalWrite(LED, LOW);
  delay(br);

}



Serial Peripheral Interface (SPI) merupakan salah satu mode komunikasi serial synchrounous kecepatan tinggi yang dapat digunakan pada banyak microcontroller, termasuk Arduino. Untuk komunikasi SPI sendiri, membutuhkan paling tidak tiga jalur, yakni MOSI, MISO, dan SCK. Melalui komunikasi ini data dapat saling dikirimkan baik antar microcontroller, maupun antara microcontroller dengan peripheral lainnya yang mendukung komunikasi dengan SPI


Tidak ada komentar:

Posting Komentar