Indice
Descrizione
Nell'undicesima puntata di questo tutorial su Arduino impareremo le basi del protocollo di comunicazione I²C. Questo protocollo permette di far comunicare tra di loro due o più schede di Arduino, ma anche di poter comunicare con diversi sensori che utilizzano questo protocollo per trasmettere le informazioni. Inoltre il protocollo I²C può essere utilizzato per comunicare con lo schermo LCD, risparmiando il numero dei pin sulla scheda di Arduino.
In questo video vedremo come collegare tra di loro due schede di Arduino e come scrivere gli sketch sia del master che dello slave.
#include <Wire.h>
void setup(){
Serial.begin(9600);
Wire.begin();
}
void loop(){
Wire.requestFrom(7, 2);
while(Wire.available()){
char c = Wire.read();
Serial.print(c);
}
Serial.println();
Wire.beginTransmission(7);
Wire.write("accendi");
Wire.endTransmission();
delay(500);
Wire.beginTransmission(7);
Wire.write("spegni");
Wire.endTransmission();
delay(500);
}
#include <Wire.h>
int pulsantePin = 2;
int ledPin = 9;
void setup(){
Wire.begin(7);
Wire.onRequest(rispondi);
Wire.onReceive(ricevi);
pinMode(pulsantePin, INPUT);
pinMode(ledPin, OUTPUT);
}
void loop(){
delay(1000);
}
void rispondi(){
if(digitalRead(pulsantePin) == HIGH){
Wire.write("si");
}else{
Wire.write("no");
}
}
void ricevi(){
String comando = "";
while(Wire.available()){
comando += char(Wire.read());
}
if(comando == "accendi"){
digitalWrite(ledPin, HIGH);
}else if(comando == "spegni"){
digitalWrite(ledPin, LOW);
}
}