7-rasm. Yetaklovchi qurilma tomonidan berilgan siganal asosida yetaklanuvchi qurilmaga I2C interfeysi orqali xabarni jo‘natish
Yetaklovchi
#include
int x;
boolean t;
void setup() {Serial.begin(9600);
pinMode(2,INPUT);//2-pin kirishga sozlanadi
Wire.begin();
}
void loop() {
t=digitalRead(2);//2-pindagi knopka holati tekshiriladi
if(t==1){
Wire.beginTransmission(9);
Wire.write("a");//I2C port orqali a belgisi uzatiladi
Wire.endTransmission();
}
if(t==0){
Wire.beginTransmission(9);
Wire.write("b");
Wire.endTransmission();
}
}
Yetaklanuvchi:
#include
int x;
void setup() {
Serial.begin(9600);
Wire.begin(9);//uzatuvchi platadagi adres
Wire.onReceive(kod);
pinMode(13,OUTPUT);//13-pin chiqishga sozlanadi
}
void kod(int bytes){
x=Wire.read();//I2C portdan kelgan ma'lumotni o‘qish
if(x=='a') digitalWrite(13,HIGH);//Agar, a belgisi kelsa, 13-yorug’lik diod yonadi
if(x=='b') digitalWrite(13,LOW);//Agar, b belgisi kelsa, 13-yorug’lik diod o‘chadi
}
void loop() {
}
Olingan bilmni mustahkamlash uchun quyidagi topshirishlarni bajaring:
Proteus programmasida, arduino modulining I2C interfeysidan foydalanib, yetakchi arduinodan yetaklanuvchi arduinoga ma’lumot jo‘nating va natijani yetaklanuvchi arduinoda qabul qilinganini ko‘ring (natijani yorug’lik diodda yordamida ham ko‘rish mumkin).
Proteus programmasida, arduino modulining I2C interfeysidan foydalanib, yetakchi arduinodan yetaklanuvchi arduinoga va aksincha, yetaklanuvchi arduinodan yetakchi arduinoga bir vaqtda ma’lumot jo‘nating. Yetakchi va yetaklanuvchi arduinoda ma’lumot qabul qilinsa, ikkala arduinoning ham I2C portiga ulangan monitorda “ma’lumot qabul qilindi” yozuvi ko‘rinsin.
Do'stlaringiz bilan baham: |