Arduino
I2C 슬레이브 LED와 Switch 사용하기
작성자 임베디드코리아
작성일 25-05-16 00:41
조회171회
댓글0건
<* I2C 슬레이브 LED와 Switch 사용 *>
◎ 마스터로 부터 LED 켜기/끄기 데이터를 받고, 동작 시킨다.
◎ Switch 를 On/Off 데이터를 마스터로 보낸다.
------- < I2C 슬레이브 LED와 Switch 사용 소스 코드 > --------------------------------
#include <Wire.h>
//I2C 주소 지정
#define SLAVE_ADDRESS 0x35
int number = 0;
int state = 0;
int temp;
char retMSG[1024] = "";
const int ledPIN = 7;
const int swPIN = 5;
void setup() {
pinMode( ledPIN, OUTPUT);
Serial.begin(9600);
Serial.println("kkkk");
//슬레이브로써 I2C를 초기화한다.
Wire.begin(SLAVE_ADDRESS);
//I2C 통신을 위한 콜백함수를 지정한다.
Wire.onReceive(receiveData); //데이터 수신용
Wire.onRequest(sendData); //데이터 전송
}
void loop() {
delay(100);
temp = digitalRead(swPIN);
Serial.println(temp);
sprintf( retMSG, "Light = %d\n", temp );
}
void receiveData(int byteCount){
while(Wire.available()) {
number = Wire.read();
if (number == 1){
if (state == 0){
digitalWrite( ledPIN, HIGH ); // set the LED on
state = 1;
strcpy( retMSG, "Trun on LED\n");
} else{
digitalWrite(ledPIN, LOW); // set the LED off
state = 0;
strcpy(retMSG, "Turn off LED\n");
}
}
}
}
void sendData(){
Wire.write( retMSG, strlen(retMSG) );
}
158-840 서울시 양천구 남부순환로 571(신월동, 영남타운 307호) l 대표: 박길성 ㅣ Tel:02-2695-1114 ㅣ Fax:02-2695-1113
Copyright © 2015 Embedded Korea. All Rights Reserved.