This is an old revision of the document!
Aplicatia utilizeaza 2 Arduino Uno, care comunica prin I2C. Fiecare are rolul sau: * Slave-ul primeste temperatura de la Master si o afiseaza pe LCD. * Master-ul reprezinta efectiv alarma de temperatura.
The slave address to which this master will send data #define I2C_SLAVE_ADDRESS 0x09 The byte variable in which I2C reads from the master are performed int i; signed int aux; int temp; const int rs = 12, en = 11, d4 = 5, d5 = 4, d6 = 3, d7 = 2; LiquidCrystal lcd(rs, en, d4, d5, d6, d7);
void setup() {
lcd.begin(16, 2); lcd.print("Buna ziua!"); Wire.begin(I2C_SLAVE_ADDRESS);
}
void receiveEvent(int numBytes) {
i = 3; temp = 0; while (0 <= i) { aux = Wire.read(); if (aux > 127) { aux = aux - 256; } temp = temp + pow(10, i) * aux; i--; }
}
void loop() {
Wire.onReceive(receiveEvent); if (temp != 0) { lcd.clear(); lcd.print("Temp refresh"); delay(500); lcd.clear(); lcd.print(temp / 100); lcd.print("."); lcd.print(abs(temp % 100)); lcd.print(" grade C"); delay(5000); }
}