Title
아두이노 예제
2017.02.07 23:56

Wire Library - Master Writer/Slave receiver

조회 수 49 추천 수 0 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄 첨부
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄 첨부

때때로, 운영자들은 언제 문을 닫을지 모릅니다. 몇몇 상황에서, Arduino나 Genuino 보드를 서로 공유하는 것이 도움이 될 수 있다. 이 예에서는 마스터 동기식 직렬 프로토콜을 통해 마스터 Writer/Slave 수신기 구성을 통해 서로 통신할 수 있도록 두개의 보드가 프로그래밍됩니다. Arduino의 와이어 라이브러리의 몇가지 기능은 이것을 성취하는데 사용됩니다. Arduino 1, 마스터 1은 각각 독특한 주소로 6바이트씩 데이터를 전송하는 6바이트의 데이터를 전송하도록 프로그램되어 있다. 이 메시지가 수신되면 Arduino Software(IDE)를 실행하는 USB연결 컴퓨터에서 열리는 슬레이브 보드의 직렬 모니터 창에서 이 메시지를 볼 수 있습니다.

 

I2C 프로토콜은 데이터를 보내고 받기 위해 라인두개를 사용하는 것을 포함합니다. Arduino( regular)또는 Genuino MasterBoard( SCL)가 정기적으로 전송되는 serial( clock)또는 두 장치 사이에 데이터가 전송되는 직렬 데이터 핀( SDA). 클록 스프링이 로우에서 하이(시계 펄스의 상승)로 변함 특정 장치의 주소와 명령 또는 데이터를 순서대로 배열할 수 있는 단일 정보는 보드에서 SDA 선을 통해 I2C 장치로 전송됩니다. 이 정보가 전송된 후 비트 전송률에 요청한 장치는 요청을 실행하고, 필요한 경우 요청을 전송합니다. 필요한 경우, 클록 스프링에 의해 필요한 클록 신호에 대해 클록 스프링 신호가 동일한 라인에 있는 보드 위에 있습니다. 마스터에서 슬레이브까지의 초기 8비트(즉, 8개 펄스 펄스)는 Master가 원하는 데이터의 주소를 포함하고 있습니다. 데이터를 읽거나 쓰기를 원하는 슬레이브에서 데이터 주소를 읽고 쓸 수 있는 메모리 주소를 포함한 비트의 비트를 열거합니다.

 

각각의 슬레이브 장치는 고유한 주소를 가지고 있어야 하며, 마스터와 슬레이브 장치 둘 다 동일한 데이터 라인 라인을 통해 교대로 통신해야 합니다. 이러한 방법으로, Arduino 또는 Genuino 보드는 각 장치의 고유한 주소를 사용하여 두개의 핀 포인트를 사용하여 여러개의 장치 또는 다른 보드와 통신할 수 있습니다.

 

I2C 프로토콜은 데이터를 보내고 받기 위해 두라인을 사용하는 것을 포함합니다: Arduino( regular)또는 Genuino MasterBoard( SCL)가 정기적으로 전송되는 serial( clock)또는 두 장치 사이에 데이터가 전송되는 직렬 데이터 핀( SDA). 클록 스프링이 로우에서 하이(시계 펄스의 상승)로 변함에 따라 단일 비트의 정보가 표시됩니다. - 특정 장치의 주소와 명령 또는 데이터를 순서대로 작성할 것이다. 이 정보가 전송된 후 비트 전송률 - 요청된 장치는 요청을 실행하고 데이터를 다시 전송하고 필요한 경우 타이밍 신호에 의해 여전히 MA에 의해 생성된 클록 신호를 사용하여 동일한 라인에 대해 보드 위에 놓으십시오.

 

12C 프로토콜이 각 활성화된 장치를 고유한 주소로 사용할 수 있도록 하기 때문에 마스터 및 슬레이브 장치 둘 다 단일 라인에서 교대로 통신할 수 있습니다. Arduino 또는 Genuino 보드를 사용하여 여러개의 장치 또는 다른 보드를 사용하는 것이 가능합니다. 단, 마이크로 컨트롤러의 두개의 핀 포인트를 사용합니다.

 

Hardware Required


  • 2 Arduino or Genuino Boards
  • hook-up wires

 

Circuit


pin에 있는 핀 5(시계, SCL, 핀, 핀)및 핀 4(데이터 또는 SDA, 핀)를 슬레이브 보드에 있는 슬레이브 보드에 연결합니다. 양쪽 보드가 공통 접지를 공유하는지 확인하십시오. 직렬 통신을 활성화하기 위해, 슬레이브 Arduino는 USB를 통해 컴퓨터에 연결되어야 합니다.

 

보드 전원을 독립적으로 작동하는 경우, 마스터의 5V출력을 슬레이브 핀의 VIN핀에 연결합니다.

 

 

AD5171의 핀 6이 접지에 연결되어 있는 경우, ADO는 44이다. 다른 디지털 포트를 동일한 SDA 버스에 추가하려면 두번째 냄비 핀을+5-5로 연결하고, 변경하려면 45번을 변경한다.

 

이러한 디지털 라이프 스타일 중 두개만 동시에 사용할 수 있습니다.

 

6.png

Schematic​


 

 

7.png

Code


마스터 라이터 코드-Arduino 1프로그램

 

// Wire Master Writer
// by Nicholas Zambetti <http://www.zambetti.com>

// Demonstrates use of the Wire library
// Writes data to an I2C/TWI slave device
// Refer to the "Wire Slave Receiver" example for use with this

// Created 29 March 2006

// This example code is in the public domain.


#include <Wire.h>

void setup() {
  Wire.begin(); // join i2c bus (address optional for master)
}

byte x = 0;

void loop() {
  Wire.beginTransmission(8); // transmit to device #8
  Wire.write("x is ");        // sends five bytes
  Wire.write(x);              // sends one byte
  Wire.endTransmission();    // stop transmitting

  x++;
  delay(500);
}

 

마스터 라이터 코드-Arduino 2프로그램

 

// Wire Slave Receiver
// by Nicholas Zambetti <http://www.zambetti.com>

// Demonstrates use of the Wire library
// Receives data as an I2C/TWI slave device
// Refer to the "Wire Master Writer" example for use with this

// Created 29 March 2006

// This example code is in the public domain.


#include <Wire.h>

void setup() {
  Wire.begin(8);                // join i2c bus with address #8
  Wire.onReceive(receiveEvent); // register event
  Serial.begin(9600);           // start serial for output
}

void loop() {
  delay(100);
}

// function that executes whenever data is received from master
// this function is registered as an event, see setup()
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
}


List of Articles
번호 분류 제목 글쓴이 날짜 조회 수
311 아두이노 강좌 [아두이노 강좌] 03. RGB LED 색깔 변경하기 file 귀욤둥이 2017.02.21 130
310 아두이노 강좌 [아두이노 강좌] 02. LED 밝기 변경하기 file 귀욤둥이 2017.02.21 122
309 아두이노 강좌 [아두이노 강좌] 01. LED 깜빡이기 file 귀욤둥이 2017.02.20 86
308 아두이노 강좌 아두이노란 무엇 일까요??? file 귀욤둥이 2017.02.20 61
307 아두이노 예제 Wire Library - SFR Ranger Reader file 귀욤둥이 2017.02.08 84
» 아두이노 예제 Wire Library - Master Writer/Slave receiver file 귀욤둥이 2017.02.07 49
305 아두이노 예제 Wire Library - Master Reader/Slave Writer file 귀욤둥이 2017.02.07 49
304 아두이노 예제 Wire Library - Digital Potentiometer file 귀욤둥이 2017.02.07 71
303 아두이노 예제 WiFi Shield 101 Library - WiFi Send Receive UDP String file 귀욤둥이 2017.02.07 43
302 아두이노 예제 WiFi Shield 101 Library - WiFi Web Server file 귀욤둥이 2017.02.07 53
Board Pagination Prev 1 2 3 4 5 6 7 8 9 10 ... 33 Next
/ 33