11-4 master_write / slave_receiver 통신 실험

공부하는 학생 A·2024년 2월 20일

아두이노 

목록 보기
57/74

[ master_write / slave_receiver ] 쌍을 변경하여 Master에서 Slave에 1Byte 데이터를 보내고, Slave는 수신된 데이터를 시리얼 모니터에 출력한다.

회로 설계

스케치 11-3 master_write / slave_receiver 통신실험 (마스터)

// Master Writer
#include <Wire.h>

void setup() {
  Wire.begin();
  Serial.begin(9600);
}
byte x=0;
void loop() {
  Wire.beginTransmission(8); // Master에서 전송하기위해 Slave의 주소 값을 지정
  Wire.write("x is ");         // sends five bytes
  Wire.write(x);              // sends one byte
  Wire.endTransmission();   // 데이터 버퍼에 저장된 데이터를 전송

  x++;
  delay(500);
  Serial.println(x);
}

스케치 11-4 master_write / slave_receiver 통신실험 (슬레이브)

#include <Wire.h>
void setup()
{
  Wire.begin(8);                //  I2C 버스가 ID #8로 연결
  Wire.onReceive(receiveEvent); // register event
  Serial.begin(9600);            // 시리얼 시작
}

void loop()
{
  delay(100);
}

void receiveEvent(int howMany)
{
  while(1 < Wire.available()) // loop through all but the last
  {
    char c = Wire.read();     // receive byte as a character
    Serial.print(c);          // print the character
  }
  int x = Wire.read();        // receive byte as an integer
  Serial.println(x);          // print the integer
}

스케치 11-3, 11-4 실행결과

마스터

슬레이브

profile
Shine like a star, Just like a star

0개의 댓글