0
통해 4 개의 전위차계 값을 보내려고합니다. i2c는 다른 arduino에서 가상 와이어를 통해 값을받은 후 내 설정은 3 개의 arduinos로 구성됩니다. 첫 번째 arduino는 송신기와 4 개의 전위차계에 연결되어 있습니다. 가상 와이어를 통해 tx. 두 번째 arduino 수신기로 구성되어 있습니다. 세 번째 arduino는 4 개의 서보로 구성됩니다. 두 번째 및 세 번째 arduino는 통해 연결됩니다. i2c 버스. 4 개 모두 potrentiometer 값을 보낼 수 없습니다. 그러나 나는 potentiometer의 단일 값을 보낼 수 있습니다. 여기 내 스케치는 입니다.i2c 버스를 통해 4 개의 전위차계 값을 보낼 수 없습니다.
#include <VirtualWire.h>
#include <Wire.h>
int Sensor1Data; // VARIABLE WHERE THE ANALOG VALUE OF POT 1 GOT STORED BY THE TX
int Sensor2Data; // VARIABLE WHERE THE ANALOG VALUE OF POT 2 GOT STORED BY THE TX
int Sensor3Data; // VARIABLE WHERE THE ANALOG VALUE OF POT 3 GOT STORED BY THE TX
int Sensor4Data; // VARIABLE WHERE THE ANALOG VALUE OF POT 4 GOT STORED BY THE TX
int data[4];
char StringReceived[22];
void setup()
{
Wire.begin(); // START I2C (WIRE.h)
vw_setup(6000); // BAUDERATE FOR VIRTUALWIRE
vw_set_rx_pin(11); // DEFINE PIN FOR VIRTUALWIRE
vw_rx_start(); // START VIRTUALWIRE
}
void loop()
{
uint8_t buf[VW_MAX_MESSAGE_LEN];
uint8_t buflen = VW_MAX_MESSAGE_LEN;
if (vw_get_message(buf, &buflen)) { // GET THE DATA
int i;
for (i = 0; i < buflen; i++)
{ // CHECKSUM OK ? GET MESSAGE
StringReceived[i] = char(buf[i]); // FILL THE ARRAY
}
sscanf(StringReceived, "%d,%d,%d,%d,%d,%d",&Sensor1Data, &Sensor2Data,&Sensor3Data,&Sensor4Data); // Converts a string to an array
Sensor1Data = map(Sensor1Data, 0, 1023, 0, 180); // MAPS THE 8BIT SERVODATA TO SERVOMIN/MX
Sensor2Data = map(Sensor2Data, 0, 1023, 26, 160); // MAPS THE 8BIT SERVODATA TO SERVOMIN/MX
Sensor3Data = map(Sensor3Data, 0, 1023, 26, 160); // MAPS THE 8BIT SERVODATA TO SERVOMIN/MX
Sensor4Data = map(Sensor4Data, 0, 1023, 26, 160);
data[0] = Sensor1Data;
data[1] = Sensor2Data;
data[2] = Sensor3Data;
data[3] = Sensor4Data;// MAPS THE 8BIT SERVODATA TO SERVOMIN/MX
Wire.beginTransmission(8); // OPENS AN I2C ON PIN 8
Wire.write(data,4);
// SEND POT 1 VALUE TO I2C DEVICE 8
Wire.endTransmission(); // END TRANSMISSION
// SEND POT 1 VALUE TO I2C DEVICE 8
}
memset(StringReceived, 0, sizeof(StringReceived)); // RESET STRING RECEIVED
}`
이 스케치 당신은 TwoWire::write
와 int 배열을 보낼 수 없습니다
no matching function for call to 'TwoWire::write(int [4], int)'