42. LED toggle using SPI

Back To All Submissions
Previous Submission
Next Submission

Solving Approach

How do you plan to solve it?

 

 

Code

MASTER CODE:

#include <SPI.h>

#define CS 10
#define COPI 11
#define CIPO 12
#define SCK 13
#define but 2

void setup() {
  // put your setup code here, to run once:
  pinMode(CS,OUTPUT);
  pinMode(COPI,OUTPUT);
  pinMode(CIPO, INPUT);
  pinMode(SCK,OUTPUT);
  pinMode(but,INPUT_PULLUP);

  SPI.begin();
  SPI.beginTransaction(SPISettings(2000000,MSBFIRST,SPI_MODE0));

  Serial.begin(115200);
  digitalWrite(CS,HIGH);
}

void loop() {
  // put your main code here, to run repeatedly:
  if(!digitalRead(but)){
    digitalWrite(CS, LOW);
    uint8_t data = SPI.transfer(0x0F);
    if(data == 0x00)
      Serial.println("LED is OFF");
    else
      Serial.println("LED is ON");
    delay(500);
    digitalWrite(CS, HIGH);
  }
}
#include <SPI.h>

#define CS 10
#define COPI 11
#define CIPO 12
#define SCK 13
#define led 7

int status = 0;

void setup(){
  SPI.begin();
  SPCR = _BV(SPE);
  SPI.setDataMode(SPI_MODE0);

  pinMode(led,OUTPUT);
  pinMode(COPI, INPUT);
  pinMode(CIPO, OUTPUT);
  pinMode(CS, INPUT);
  pinMode(SCK, INPUT);

  digitalWrite(led, status);
  SPDR = 0x01;
}

void loop(){
  while(!((SPSR)&(1<<SPIF)));
  if(status == 0)
    SPDR = 0x00;
  else
    SPDR = 0x01;
  status = !status;
  digitalWrite(led, status);
  delay(200);
}

Output

Link of the output Video:

Photo of Output

Was this helpful?
Upvote
Downvote