How to make a remote control that uses 433mhz to send signal to another arduino that has a LED 8x8 Matrix

Hello everyone, Im new to Arduino and coding. Im planning to make a signal using 2 Arduino, 433Mhz transmitter and receiver. My input would be a button on the transmitter side while the Led 8x8 Matrix will be on the receiver side. Anyone could help me?? Im not that good in doing coding when it comes to 433Mhz transmitter and receiver. I cant seem to send the signal.

This is the transmitter coding

//transmitter

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

const int switch_R = 4;
const int switch_L = 5;
const int sensor_B = 7;

int state = 0, msg_state = 0;
char *msg, *msglast;
RH_ASK driver;

const int transmit_pin = 12;
const int receive_pin = 11;



void setup()
{
  driver.init();
  pinMode(switch_R, INPUT);
  pinMode(switch_L, INPUT);
  pinMode(sensor_B, INPUT);
  pinMode(transmit_pin, OUTPUT);
  
  Serial.begin(9600);

}

void loop()
{
  if (digitalRead(switch_R) == HIGH && state == 0) {
    msg = "Switch_R";
    state = 1;
    msg_state = 1;
  }
  else if (digitalRead(switch_L) == HIGH && state == 0) {
    msg = "Switch_L";
    state = 1;
    msg_state = 1;
  }
  
  else if (digitalRead(sensor_B) == HIGH && state == 0) {
    msg = "Sensor_B";
    state = 1;
    msg_state = 1;
  }
  else if (digitalRead(switch_R) == LOW && digitalRead(switch_L) == LOW) {
    state = 0;
  }
  if (msg_state == 1) {
    Serial.println(msg);
    driver.send((uint8_t *)msg, strlen(msg));
    driver.waitPacketSent();
    delay(200);
    msg_state = 0;
  }
}

`

This is the coding for receiver. This consist of the shapes that is going to be display on the led matrix.

type or paste code here
```// receiver.pde

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

RH_ASK driver;

const int LedR = 10;
const int LedL = 7;
const int LedE = 3;

char receive[32];

int RState = 0;
int LState = 0;
int EState = 0;
int BState = 0;

const int transmit_pin = 12;
const int receive_pin = 11;


int DIN1 = 10;
int CLK1 =  9;
int LOAD1 = 8;

int DIN2 = 7;
int CLK2 = 6;
int LOAD2 = 5; 


LedControl lc1=LedControl(DIN1,CLK1,LOAD1,0);
LedControl lc2=LedControl(DIN2,CLK2,LOAD2,0);

//left signal
byte L1[8] = {0x00,0x00,0x00,0x01,0x01,0x00,0x00,0x00};
byte L2[8]= {0x00,0x00,0x01,0x03,0x03,0x01,0x00,0x00};
byte L3[8]= {0x00,0x01,0x03,0x07,0x07,0x03,0x01,0x00};
byte L4[8]= {0x01,0x03,0x06,0x0f,0x0f,0x06,0x03,0x01};
byte L5[8]= {0x02,0x06,0x0c,0x1f,0x1f,0x0c,0x06,0x02};
byte L6[8]= {0x04,0x0c,0x18,0x3f,0x3f,0x18,0x0c,0x04};
byte L7[8]= {0x08,0x18,0x30,0x7f,0x7f,0x30,0x18,0x08};
byte L8[8]= {0x10,0x30,0x60,0xff,0xff,0x60,0x30,0x10};
byte L9[8]= {0x20,0x60,0xc0,0xfe,0xfe,0xc0,0x60,0x20};
byte L10[8]= {0x40,0xc0,0x80,0xfc,0xfc,0x80,0xc0,0x40};
byte L11[8]= {0x80,0x80,0x00,0xf8,0xf8,0x00,0x80,0x80};
byte L12[8]= {0x00,0x00,0x00,0xf0,0xf0,0x00,0x00,0x00};
byte L13[8]= {0x00,0x00,0x00,0xe0,0xe0,0x00,0x00,0x00};
byte L14[8]= {0x00,0x00,0x00,0xc0,0xc0,0x00,0x00,0x00};
byte L15[8]= {0x00,0x00,0x00,0x80,0x80,0x00,0x00,0x00};

//others 
byte x[8]= {0x18,0x24,0x66,0x99,0x99,0x66,0x24,0x18};
byte s[8]= {0x18,0x3c,0x7e,0xdb,0x18,0x18,0x18,0x18};
byte b[8]= {0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff};

//right signal
byte R1[8]= {0x00,0x00,0x00,0x80,0x80,0x00,0x00,0x00};
byte R2[8]= {0x00,0x00,0x80,0xc0,0xc0,0x80,0x00,0x00};
byte R3[8]= {0x00,0x80,0xc0,0xe0,0xe0,0xc0,0x80,0x00};
byte R4[8]= {0x80,0xc0,0x60,0xf0,0xf0,0x60,0xc0,0x80};
byte R5[8]= {0x40,0x60,0x30,0xf8,0xf8,0x30,0x60,0x40};
byte R6[8]= {0x20,0x30,0x18,0xfc,0xfc,0x18,0x30,0x20};
byte R7[8]= {0x10,0x18,0x0c,0xfe,0xfe,0x0c,0x18,0x10};
byte R8[8]= {0x08,0x0c,0x06,0xff,0xff,0x06,0x0c,0x08};
byte R9[8]= {0x04,0x06,0x03,0x7f,0x7f,0x03,0x06,0x04};
byte R10[8]= {0x02,0x03,0x01,0x3f,0x3f,0x01,0x03,0x02};
byte R11[8]= {0x01,0x01,0x00,0x1f,0x1f,0x00,0x01,0x01};
byte R12[8]= {0x00,0x00,0x00,0x0f,0x0f,0x00,0x00,0x00};
byte R13[8]= {0x00,0x00,0x00,0x07,0x07,0x00,0x00,0x00};
byte R14[8]= {0x00,0x00,0x00,0x03,0x03,0x00,0x00,0x00};
byte R15[8]= {0x00,0x00,0x00,0x01,0x01,0x00,0x00,0x00};


void setup()
{
  driver.init();


  
 lc1.shutdown(0,false);       
 lc1.setIntensity(0,5);
 lc1.clearDisplay(0);

 lc2.shutdown(0,false);       
 lc2.setIntensity(0,5);
 lc2.clearDisplay(0);

 pinMode(receive_pin, INPUT);
 pinMode(LedE, INPUT);
 pinMode(LedR, OUTPUT);
 pinMode(LedL, OUTPUT);
 
 
 Serial.begin(9600);
}

void leftArrow(){
   printByte(L1);     
   delay(90);

   printByte(L2);     
   delay(90);

   printByte(L3);     
   delay(90);

   printByte(L4);     
   delay(90);

   printByte(L5);     
   delay(90);

   printByte(L6);     
   delay(90);

   printByte(L7);     
   delay(90);

   printByte(L8);     
   delay(90);

   printByte(L9);     
   delay(90);

   printByte(L10);     
   delay(90);

   printByte(L11);     
   delay(90);

   printByte(L12);     
   delay(90);

   printByte(L13);     
   delay(90);

   printByte(L14);     
   delay(90);

   printByte(L15);     
   delay(90);
}

void rightArrow(){
  printByte(R1);     
   delay(90);

   printByte(R2);     
   delay(90);

   printByte(R3);     
   delay(90);

   printByte(R4);     
   delay(90);

   printByte(R5);     
   delay(90);

   printByte(R6);     
   delay(90);

   printByte(R7);     
   delay(90);

   printByte(R8);     
   delay(90);

   printByte(R9);     
   delay(90);

   printByte(R10);     
   delay(90);

   printByte(R11);     
   delay(90);

   printByte(R12);     
   delay(90);

   printByte(R13);     
   delay(90);

   printByte(R14);     
   delay(90);

   printByte(R15);     
   delay(90);
}

void straightArrow(){
  printByte(s);
  delay(500);
}

void emergency(){
  printByte(x);
  delay(90);
}

void brake(){
  printByte(b);
  delay(500);
}

void printByte(byte character [])
{
  int i = 0;
  for(i=0;i<8;i++)
  {
    lc1.setRow(0,i,character[i]);
  }

{
  int ii = 0;
  for(ii=0;ii<8;ii++)
  {
    lc2.setRow(0,ii,character[ii]);
  }
}
}

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

  RState = digitalRead(LedR);
  LState = digitalRead(LedL);
  EState = digitalRead(LedE);
  if (driver.recv(buf, &buflen))
  {
    memset(receive, 0, sizeof(receive));
    for (int i = 0; i < buflen; i++) {
      receive[i] = buf[i];
    }
    if (strcmp(receive, "Switch_R") == 0); {
      rightArrow();
      delay(90);
      lc1.clearDisplay(0);
      lc2.clearDisplay(0);
      delay(90); }
      
    } 
    else if (strcmp(receive, "Switch_L") == 0) {
      leftArrow();
      delay(90);
      lc1.clearDisplay(0);
      lc2.clearDisplay(0);
      delay(90);

      } else if (receive_pin == HIGH) {
      rightArrow();
      delay(90);
      lc1.clearDisplay(0);
      lc2.clearDisplay(0);
      delay(90);
      
   
     
    } else if (EState == HIGH) {
      emergency();
      delay(90);
      lc1.clearDisplay(0);
      lc2.clearDisplay(0);
      delay(90);
      
    } else if (strcmp(receive, "Sensor_B") == 0) {
      brake();
      delay(90);
      lc1.clearDisplay(0);
      lc2.clearDisplay(0);
      delay(90);
      
    } else if (LedR,LedL == LOW){
    straightArrow();
    lc1.clearDisplay(0);
    lc2.clearDisplay(0);
    delay(500);
    }
  }

The first problem most people have is supplying enough 3.3 volt power to the devices. How are you doing it?
Have you tried the simple test programs to prove all the connections are correct?
Paul

One of my arduino is connected to the laptop while the other one is connected to a 9V battery.

I manage to do it wired but when it come to making it wireless by using 433Mhz it doesnt work. This is the coding that I made for the wired version. Im trying to making it wireless by putting the buttons on the transmitter and the led matrix on the receiver side. Is there any way I can do that??

#include <MD_MAX72xx.h>
#include <SPI.h>

#include <LedControl.h>

const int buttonPinA = 3;
const int buttonPinB = 4;

int buttonStateA = 0;
int buttonStateB = 0;
  
const int ledPinA = 12;
const int ledPinB = 7;

int DIN1 = 12;
int CLK1 =  11;
int LOAD1 = 10;

int DIN2 = 7;
int CLK2 = 6;
int LOAD2 = 5; 


LedControl lc1=LedControl(DIN1,CLK1,LOAD1,0);
LedControl lc2=LedControl(DIN2,CLK2,LOAD2,0);

byte L1[8] = {0x00,0x00,0x00,0x01,0x01,0x00,0x00,0x00};
byte L2[8]= {0x00,0x00,0x01,0x03,0x03,0x01,0x00,0x00};
byte L3[8]= {0x00,0x01,0x03,0x07,0x07,0x03,0x01,0x00};
byte L4[8]= {0x01,0x03,0x06,0x0f,0x0f,0x06,0x03,0x01};
byte L5[8]= {0x02,0x06,0x0c,0x1f,0x1f,0x0c,0x06,0x02};
byte L6[8]= {0x04,0x0c,0x18,0x3f,0x3f,0x18,0x0c,0x04};
byte L7[8]= {0x08,0x18,0x30,0x7f,0x7f,0x30,0x18,0x08};
byte L8[8]= {0x10,0x30,0x60,0xff,0xff,0x60,0x30,0x10};
byte L9[8]= {0x20,0x60,0xc0,0xfe,0xfe,0xc0,0x60,0x20};
byte L10[8]= {0x40,0xc0,0x80,0xfc,0xfc,0x80,0xc0,0x40};
byte L11[8]= {0x80,0x80,0x00,0xf8,0xf8,0x00,0x80,0x80};
byte L12[8]= {0x00,0x00,0x00,0xf0,0xf0,0x00,0x00,0x00};
byte L13[8]= {0x00,0x00,0x00,0xe0,0xe0,0x00,0x00,0x00};
byte L14[8]= {0x00,0x00,0x00,0xc0,0xc0,0x00,0x00,0x00};
byte L15[8]= {0x00,0x00,0x00,0x80,0x80,0x00,0x00,0x00};

byte x[8]= {0x18,0x24,0x66,0x99,0x99,0x66,0x24,0x18};
byte s[8]= {0x18,0x3c,0x7e,0xdb,0x18,0x18,0x18,0x18};

byte R1[8] = {0x00,0x00,0x00,0x80,0x80,0x00,0x00,0x00};
byte R2[8]= {0x00,0x00,0x80,0xc0,0xc0,0x80,0x00,0x00};
byte R3[8]= {0x00,0x80,0xc0,0xe0,0xe0,0xc0,0x80,0x00};
byte R4[8]= {0x80,0xc0,0x60,0xf0,0xf0,0x60,0xc0,0x80};
byte R5[8]= {0x40,0x60,0x30,0xf8,0xf8,0x30,0x60,0x40};
byte R6[8]= {0x20,0x30,0x18,0xfc,0xfc,0x18,0x30,0x20};
byte R7[8]= {0x10,0x18,0x0c,0xfe,0xfe,0x0c,0x18,0x10};
byte R8[8]= {0x08,0x0c,0x06,0xff,0xff,0x06,0x0c,0x08};
byte R9[8]= {0x04,0x06,0x03,0x7f,0x7f,0x03,0x06,0x04};
byte R10[8]= {0x02,0x03,0x01,0x3f,0x3f,0x01,0x03,0x02};
byte R11[8]= {0x01,0x01,0x00,0x1f,0x1f,0x00,0x01,0x01};
byte R12[8]= {0x00,0x00,0x00,0x0f,0x0f,0x00,0x00,0x00};
byte R13[8]= {0x00,0x00,0x00,0x07,0x07,0x00,0x00,0x00};
byte R14[8]= {0x00,0x00,0x00,0x03,0x03,0x00,0x00,0x00};
byte R15[8]= {0x00,0x00,0x00,0x01,0x01,0x00,0x00,0x00};

void setup(){
 lc1.shutdown(0,false);       
 lc1.setIntensity(0,5);
 lc1.clearDisplay(0);

 lc2.shutdown(0,false);       
 lc2.setIntensity(0,5);
 lc2.clearDisplay(0);

 pinMode(ledPinA, OUTPUT);
 pinMode(ledPinB, OUTPUT);
 pinMode(buttonPinA, INPUT);
 pinMode(buttonPinB, INPUT);
}

void leftArrow(){
   printByte(L1);     
   delay(90);

   printByte(L2);     
   delay(90);

   printByte(L3);     
   delay(90);

   printByte(L4);     
   delay(90);

   printByte(L5);     
   delay(90);

   printByte(L6);     
   delay(90);

   printByte(L7);     
   delay(90);

   printByte(L8);     
   delay(90);

   printByte(L9);     
   delay(90);

   printByte(L10);     
   delay(90);

   printByte(L11);     
   delay(90);

   printByte(L12);     
   delay(90);

   printByte(L13);     
   delay(90);

   printByte(L14);     
   delay(90);

   printByte(L15);     
   delay(90);
}

void rightArrow(){
  printByte(R1);     
   delay(90);

   printByte(R2);     
   delay(90);

   printByte(R3);     
   delay(90);

   printByte(R4);     
   delay(90);

   printByte(R5);     
   delay(90);

   printByte(R6);     
   delay(90);

   printByte(R7);     
   delay(90);

   printByte(R8);     
   delay(90);

   printByte(R9);     
   delay(90);

   printByte(R10);     
   delay(90);

   printByte(R11);     
   delay(90);

   printByte(R12);     
   delay(90);

   printByte(R13);     
   delay(90);

   printByte(R14);     
   delay(90);

   printByte(R15);     
   delay(90);
}

void straightArrow(){
  printByte(s);
  delay(500);
}

void emergency(){
  printByte(x);
  delay(90);
}


void printByte(byte character [])
{
  int i = 0;
  for(i=0;i<8;i++)
  {
    lc1.setRow(0,i,character[i]);
  }

{
  int ii = 0;
  for(ii=0;ii<8;ii++)
  {
    lc2.setRow(0,ii,character[ii]);
  }
}
}
void loop(){
{
  buttonStateA = digitalRead(buttonPinA);
  buttonStateB = digitalRead(buttonPinB);
  
  if (buttonStateA == HIGH){
  rightArrow();
  delay(90);

  lc1.clearDisplay(0);
  lc2.clearDisplay(0);
    delay(90);
 }
 else
 if (buttonStateB == HIGH){
  leftArrow();
  delay(90);

  lc1.clearDisplay(0);
  lc2.clearDisplay(0);
    delay(90);
 
 }
 else 
 if (buttonStateA,buttonStateB == LOW){
  straightArrow();
  lc1.clearDisplay(0);
  lc2.clearDisplay(0);
    delay(500);
 }
 else 
 if (buttonStateA,buttonStateB == HIGH){
  emergency();
  lc1.clearDisplay(0);
  lc2.clearDisplay(0);
    delay(500);
}
}
}

Simple test programs to check the connection to the Arduino or to check whether the components are functioning??