// #include <Wire.h>
// #include <LiquidCrystal_I2C.h>
// LiquidCrystal_I2C lcd(0x27, 16, 2);
// byte Data[4];
// unsigned char val = 0;
// void setup() {
// Serial.begin(9600);
// pinMode(2, INPUT_PULLUP);
// lcd.init();
// lcd.backlight();
// }
// void loop() {
// // put your main code here, to run repeatedly:
// val = 123;
// Serial.print('A');
// Serial.print(val);
// delay(200) ;
// val = 234;
// Serial.print('A');
// Serial.print(val);
// delay(200) ;
// if(Serial.available() > 3){
// Data[0]=Serial.read();
// if(Data[0] =='A'){
// Data[1]=Serial.read() - 48;
// Data[2]=Serial.read() - 48;
// Data[3]=Serial.read() - 48;
// val = (Data[1] * 100) + (Data[2] * 10) + Data[3];
// lcd.setCursor(0, 0) ;
// lcd.print(val) ;
// }
// }
// }
//------------------------------------------------------------------------------
// #include <SPI.h>
// #include "pins_arduino.h"
// const int button = A0;
// int spi_receiver = 0;
// void setup (void){
// Serial.begin(9600) ;
// SPI.begin();
// pinMode(button, INPUT_PULLUP);
// digitalWrite(SS, HIGH) ;
// }
// void loop (void){
// if (digitalRead(button) == 0){
// digitalWrite(SS, LOW) ; // SS is pin 10
// spi_receiver = SPI.transfer(125) ;
// digitalWrite (SS, HIGH) ;
// }
// Serial.println(spi_receiver);
// }
// #include <SPI.h>
// int spi_receiver = 0;
// void setup (void){
// Serial.begin(9600);// debugging
// // have to send master in *slave out*
// pinMode(MISO, OUTPUT);
// // turn on SPI in slave mode
// SPCR |= _BV(SPE) ;
// //now turn on interrupts
// SPI.attachInterrupt () ;
// } // end of setup
// // SPI interrupt routine
// ISR (SPI_STC_vect){
// spi_receiver = SPDR;
// SPDR = 255;
// }
// // end of interrupt routine SPI_STC_vect
// // main loop - wait for flag set in interrupt routine
// void loop (void){
// Serial.println(spi_receiver);
// }
//------------------------------------------------------------------------------
// #include <Wire.h>
// byte data[10];
// char i;
// char num = 6;
// void setup (){
// Serial.begin(9600) ;
// Wire.begin(); // Start I2C Bus as Master
// pinMode(A0, INPUT_PULLUP);
// }
// void loop (){
// if (digitalRead (A0) == 0){
// Wire.beginTransmission(1) ;
// Wire.write('b');
// Wire.endTransmission() ;
// }else{
// Wire.beginTransmission(1) ;
// Wire.write('a') ;
// Wire.endTransmission();
// }
// Wire.requestFrom(1, num) ;
// //
// if (Wire.available() > 0){
// for (i = 0; i < num; i++){
// data [1] = Wire.read() ;
// Serial.println(data[i] - 48) ;
// delay(500) ;
// }
// }
// }
#include <Wire.h>
#define LED_PIN 13
int x;
char data[] = {'0', '1', '2', '3', '4', '5'};
void setup (){
Serial.begin(9600);
Wire.begin(1) ;
Wire.onReceive(receiveEvent);
Wire.onRequest(requestEvent);
pinMode(LED_PIN, OUTPUT) ;
digitalWrite(LED_PIN, LOW) ;
}
void loop (){
if (x == 'a') digitalWrite(LED_PIN, HIGH) ;
else if (x == 'b') digitalWrite(LED_PIN, LOW);
}
void receiveEvent(int howMany){
x = Wire.read();
}
void requestEvent(){
Wire.write(data);
}