I have small issue appending 3 arrays, i can append 2 arrays using strcat function but i cannot do it with 3 arrays. Basically im sending temperature values , max and min values to the receiver and printing on lcd. But i can only send temp value and min or max value but i cant do it with with all three. here is the small part of the code.
[#include <VirtualWire.h> //transmitter code
int reading;
char Signal[20];
char Signal2[20];
char Signal3[20];
int mintemp=100;
int maxtemp=0;
int tempPin = 7; // | RF transmitter library
void setup(){
Serial.begin(9600);
vw_set_ptt_inverted(true);
vw_set_tx_pin(12);
vw_setup(4800);
}
void loop(){
int Temp = ((5.0 * analogRead(tempPin) * 100.0) / 1024);
if(Temp>maxtemp)
maxtemp=Temp;
if(Temp<mintemp)
mintemp=Temp;
sprintf(Signal,"%i",Temp);
sprintf(Signal2,"%i",mintemp);
sprintf(Signal3,"%i",maxtemp);
strcat(Signal, Signal2);
// i tried using strcat(Signal, Signal2); strcat(Signal, Signal3); but it didnt work
vw_send((uint8_t *)Signal,strlen(Signal));
vw_wait_tx();
}]
[code][[code][//Receiver code
#include <VirtualWire.h>
#include <LiquidCrystal.h>
LiquidCrystal lcd(7, 6, 5, 4, 3, 2);
int i;
void setup(){
lcd.begin(16, 2);
Serial.begin(9600);
vw_set_ptt_inverted(true);
vw_set_rx_pin(12);
vw_setup(4800);
pinMode(13, OUTPUT);
vw_rx_start();
}
void loop(){
delay(2000);
uint8_t buf[VW_MAX_MESSAGE_LEN];
uint8_t buflen = VW_MAX_MESSAGE_LEN;
lcd.setCursor(0,0);
lcd.print("Temp:");
if (vw_get_message(buf, &buflen))
{
for (i=0;i<2;i++)
{
Serial.write(buf[i]);
lcd.write(buf[i]);
// Write the first bytes on the LCD
}
Serial.println();
lcd.print((char)223);
lcd.print("C");
lcd.setCursor(0,1);
lcd.print("Min:");
for (i=2;i<4;i++) // Get middle two bytes
{
Serial.write(buf[i]);
lcd.write(buf[i]);
}
lcd.print((char)223);
lcd.print("C");
lcd.setCursor(9,9);
lcd.print("Max:");
for (i=4;i<6;i++) // Get last two bytes
{
Serial.write(buf[i]);
lcd.write(buf[i]);
}
lcd.print((char)223);
}
}]
]