Hello! yup, i understand that just that little bit isnt enough info, so here's the full error:
In file included from C:\Program Files (x86)\Arduino\libraries\TFT\src/TFT.h:36:0,
from C:\Users\mikep\Documents\Arduino\Robot Controll System\TestArduinoAsSlave.ino\TestArduinoAsSlave.ino.ino:2:
C:\Program Files (x86)\Arduino\libraries\TFT\src/utility/Adafruit_GFX.h:60:3: warning: #warning "The SD library was not found. loadImage() and image() won't be supported." [-Wcpp]
#warning "The SD library was not found. loadImage() and image() won't be supported."
^
C:\Users\mikep\Documents\Arduino\Robot Controll System\TestArduinoAsSlave.ino\TestArduinoAsSlave.ino.ino: In function 'void receiveEvent(int)':
TestArduinoAsSlave.ino:115: error: call of overloaded 'print(byte [12])' is ambiguous
Serial.print(controllArray); //where im getting the "call of overloaded 'print(byte [cmd])' is ambiguous"
^
C:\Users\mikep\Documents\Arduino\Robot Controll System\TestArduinoAsSlave.ino\TestArduinoAsSlave.ino.ino:115:29: note: candidates are:
In file included from C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/Stream.h:26:0,
from C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/HardwareSerial.h:29,
from C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/Arduino.h:232,
from sketch\TestArduinoAsSlave.ino.ino.cpp:1:
C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/Print.h:59:12: note: size_t Print::print(const String&) <near match>
size_t print(const String &);
^
C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/Print.h:59:12: note: no known conversion for argument 1 from 'byte [12] {aka unsigned char [12]}' to 'const String&'
C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/Print.h:60:12: note: size_t Print::print(const char*) <near match>
size_t print(const char[]);
^
C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/Print.h:60:12: note: no known conversion for argument 1 from 'byte [12] {aka unsigned char [12]}' to 'const char*'
C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/Print.h:61:12: note: size_t Print::print(char) <near match>
size_t print(char);
^
C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/Print.h:61:12: note: no known conversion for argument 1 from 'byte [12] {aka unsigned char [12]}' to 'char'
C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/Print.h:62:12: note: size_t Print::print(unsigned char, int) <near match>
size_t print(unsigned char, int = DEC);
^
C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/Print.h:62:12: note: no known conversion for argument 1 from 'byte [12] {aka unsigned char [12]}' to 'unsigned char'
C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/Print.h:63:12: note: size_t Print::print(int, int) <near match>
size_t print(int, int = DEC);
^
C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/Print.h:63:12: note: no known conversion for argument 1 from 'byte [12] {aka unsigned char [12]}' to 'int'
C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/Print.h:64:12: note: size_t Print::print(unsigned int, int) <near match>
size_t print(unsigned int, int = DEC);
^
C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/Print.h:64:12: note: no known conversion for argument 1 from 'byte [12] {aka unsigned char [12]}' to 'unsigned int'
C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/Print.h:65:12: note: size_t Print::print(long int, int) <near match>
size_t print(long, int = DEC);
^
C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/Print.h:65:12: note: no known conversion for argument 1 from 'byte [12] {aka unsigned char [12]}' to 'long int'
C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/Print.h:66:12: note: size_t Print::print(long unsigned int, int) <near match>
size_t print(unsigned long, int = DEC);
^
C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/Print.h:66:12: note: no known conversion for argument 1 from 'byte [12] {aka unsigned char [12]}' to 'long unsigned int'
exit status 1
call of overloaded 'print(byte [12])' is ambiguous
I am attempting to input command to an arduino from an rpi via I2C, Here is my sketch:
#include <Wire.h>
#include <TFT.h> // Arduino LCD library
#include <SPI.h>
const int heartBeatLED = 5;
const int piScriptLED = 3;
const int piServerLED = 4;
bool heartBeatState = LOW;
bool piScriptState = LOW;
bool piServerState = LOW;
#define cs 10
#define dc 9
#define rst 8
TFT screen = TFT(cs, dc, rst);
char lastText[32] = "I am an Arduino Uno";
byte slave_adress = 5;
/* not implemented
//the who_is_this on the pi will get the iAm variable.
//first number indiacts input(0), output(1) or both(2)
//last 3 indate unique device id, requires hardcoding
//int iAm = 1000; //example, 1 = output, 000 = device 1
*/
void setup() {
screen.begin();
screen.background(0,0,0);
screen.stroke(255,255,255);
screen.setTextSize(2);
screen.text("I2C Comms:", 0,0);
screen.setTextSize(1);
screen.text("heartBeat: LOW", 0,30);
pinMode(heartBeatLED, OUTPUT);
pinMode(piScriptLED, OUTPUT);
pinMode(piServerLED, OUTPUT);
digitalWrite(heartBeatLED, heartBeatState);
digitalWrite(piScriptLED, piScriptState);
digitalWrite(piServerLED, piServerState);
Serial.begin(9600);
char lastText[32] = "I am an Arduino Uno";
putReceiveLineText(lastText);
Wire.begin(slave_adress);
Wire.onReceive(receiveEvent);
}
void loop() {
// each charecter is 6 pixles wide(including space)
//just a heartbeat, so i can check my wires
if (heartBeatState){
heartBeatState = LOW;
screen.stroke(0,0,0);
screen.text("HIGH", 66,30);
screen.stroke(255,255,255);
screen.text("LOW", 66,30);
}
else{
heartBeatState = HIGH;
screen.stroke(0,0,0);
screen.text("LOW", 66,30);
screen.stroke(255,255,255);
screen.text("HIGH", 66,30);
}
digitalWrite(heartBeatLED, heartBeatState);
delay(500);
}
//clears the screen based on a new input message
void putReceiveLineText(char text[32]){
/* //debugging help
Serial.print("This Text: ");
Serial.println(text);
Serial.print("Last Text: ");
Serial.println(lastText);
Serial.print(strlen(text));
*/
screen.stroke(0,0,0);
screen.text(lastText, 0,20);
screen.stroke(255,255,255);
screen.text(text, 0,20);
for (int i=0; i<strlen(text); i++){
lastText[i] = text[i];
}
}
void receiveEvent(int howMany){
int numOfBytes = Wire.available()-1;
byte cmd = Wire.read(); //how many bits of a transmission are dedicated for output signals
byte controllArray[12]; //there would only be a maximum of 12 ints/bytes for output pins (2->13)
char recivingArray[32]; //how many chars are in a transmission
for(int i=0; i<cmd; i++){
byte data = Wire.read();
controllArray[i] = data;
Serial.println(data);
}
for(int i=0; i<numOfBytes-cmd; i++){
char data = Wire.read();
recivingArray[i] = data;
Serial.println(data);
}
//putReceiveLineText(recivingArray);
Serial.println(" ");
Serial.print(controllArray); //where im getting the "call of overloaded 'print(byte [cmd])' is ambiguous"
Serial.print(recivingArray); //this one is ok, though, it will compile fine if i comment the controll array out
/*
Serial.println("New Transmission:");
Serial.print("Length: ");
Serial.println(numOfBytes);
Serial.print("Command: ");
Serial.println(cmd);
Serial.print("Data: ");
Serial.println(recivingArray);
Serial.println("Finished Transmission.");
Serial.println(" ");
*/
}
Thanks, i program in java and python, so im not a complete noob, but i feel like i have no idea how c works. Thanks for any help!