Help with my code

Hi guys, i want to make a transmitter/reciver using FS1000A and XY-MK-5V
All good, is working but, i want to read more then a single char. Ex. when i press Button (buttonPin1 on arduino pin 2, this goes HIGH and send "Led 1 on" to reciver and power on the led from pin 13. I can to this but if i send just ONE character. I want to send a string like... a MD5 hash maybe. So, please help me.
Thank You

Here is my code:

Transmitter:

#include <RH_ASK.h>
#include <SPI.h>
const int buttonPin1 = 2;
const int buttonPin2 = 3;
const int buttonPin3 = 4;
const int buttonPin4 = 5;
int buttonState1 = 0;
int buttonState2 = 0;
int buttonState3 = 0;
int buttonState4 = 0;

// Arduino Transmitter
// GND--------------------------GND
// D12--------------------------Data
// 5V---------------------------VCC

RH_ASK driver(2000, 11, 12);

void setup() {
 pinMode(buttonPin1, INPUT);
 pinMode(buttonPin2, INPUT);
 pinMode(buttonPin3, INPUT);
 pinMode(buttonPin4, INPUT);
 Serial.begin(9600);   
 if (!driver.init()) Serial.println("init failed");
}

void loop() {
 buttonState1 = digitalRead(buttonPin1);
 if (buttonState1 == HIGH) {
 const char *msg1 = "A\n";
 driver.send((uint8_t *)msg1, strlen(msg1));
 driver.waitPacketSent();
 delay(200);
 }
  buttonState2 = digitalRead(buttonPin2);
 if (buttonState2 == HIGH) {
 const char *msg2 = "B\n";
 driver.send((uint8_t *)msg2, strlen(msg2));
 driver.waitPacketSent();
 delay(200);
 }
 buttonState3 = digitalRead(buttonPin3);
 if (buttonState3 == HIGH) {
 const char *msg3 = "Button 3 pressed\n";
 driver.send((uint8_t *)msg3, strlen(msg3));
 driver.waitPacketSent();
 delay(200);
 }
 buttonState4 = digitalRead(buttonPin4);
 if (buttonState4 == HIGH) {
 const char *msg4 = "Button 4 pressed\n";
 driver.send((uint8_t *)msg4, strlen(msg4));
 driver.waitPacketSent();
 delay(200);
 }
}

Reciver:

#include <RH_ASK.h>
#include <SPI.h>

// Arduino Receiver
// GND--------------------------GND
// D11--------------------------Data
// 5V---------------------------VCC
RH_ASK driver(2000, 11, 12);

void setup() {
 pinMode(13, OUTPUT);
 Serial.begin(9600);
 if (!driver.init()) Serial.println("init failed");
}

void loop() {
 uint8_t buf[RH_ASK_MAX_MESSAGE_LEN];
 uint8_t buflen = sizeof(buf);

 if (driver.recv(buf, &buflen)) {
   for (int i = 0; i < buflen; i++){
   Serial.print((char)buf[i]);
   }
   int x;
   if (buf[x] == 'A'){
   digitalWrite(13, HIGH);
   delay(200);
   digitalWrite(13, LOW);
   delay(200);
   digitalWrite(13, HIGH);
   delay(200);
   digitalWrite(13, LOW);
  }
   int y;
   if (buf[y] == 'B'){
   digitalWrite(13, HIGH);
   delay(500);
   digitalWrite(13, LOW);
   delay(500);
   digitalWrite(13, HIGH);
   delay(500);
   digitalWrite(13, LOW);
  }
}
}

Hopefully now you can see why you are asked to use code tags when posting code.

int y;
    if (buf[y] == 'B'){

Oops

Your transmitter is sending more than a single character already. The strlen of "A\n" is 2.

Why do you want to send a MD5 hash?

Yes sir, when i send "12345" i want to led form pin 13 blink twice.

it`s working with my code but just if i send a single character.

if (buf

  • == 'A')

Probably not going to work very well.
When you read 'how to use this forum - please read', what did it say under item #7?