跳到主要內容

Arduino * Arduino = ;-)


記錄一下arduino間溝通的方式

先貼個程式碼

在這裡是傳遞"板子"B的光敏電阻值給"板子A"

板子B的RX要接到板子A的TX,板子A的RX要接到板子B的TX
 
RX部分
#include 

//create object
EasyTransfer ET; 

struct RECEIVE_DATA_STRUCTURE{
  //兩塊板子之間的資料結構要設定好,就是說RX與TX這個部分要一樣
  //在這裡我有新增一個int 所以說在TX的檔案裡面此處也要新增一樣的參數
  int blinks;
  int pause;
  int txt;
};

//give a name to the group of data
RECEIVE_DATA_STRUCTURE mydata;

void setup(){
  Serial.begin(9600);
  ET.begin(details(mydata), &Serial);
  pinMode(13, OUTPUT);
}

void loop(){
  if(ET.receiveData()){ 
    for(int i = mydata.blinks; i>0; i--){
      digitalWrite(13, HIGH);
      delay(mydata.pause * 100);
      digitalWrite(13, LOW);
      delay(mydata.pause * 100);
    }
    Serial.println(mydata.txt);
  }
}

TX部分 
#include 

EasyTransfer ET; 
int sensor = 2;
int sensorValue = 0;

struct SEND_DATA_STRUCTURE{
  int blinks;
  int pause;
  int txt;
};

SEND_DATA_STRUCTURE mydata;

void setup(){
  Serial.begin(9600);
  ET.begin(details(mydata), &Serial);
  pinMode(13, OUTPUT);
  randomSeed(analogRead(0));
  
}

void loop(){
  sensorValue = analogRead(sensor);
  //this is how you access the variables. [name of the group].[variable name]
  mydata.blinks = random(5);
  mydata.pause = random(5);
  mydata.txt = sensorValue;
  //send the data
  ET.sendData();
  
  //Just for fun, we will blink it out too
   for(int i = mydata.blinks; i>0; i--){
      digitalWrite(13, HIGH);
      delay(mydata.pause * 100);
      digitalWrite(13, LOW);
      delay(mydata.pause * 100);
    }
  
  delay(500);
}


留言