2 arduino Uno's connected (I2C master/slave) + LCD + Keypad + Joystick

Hi all,
I must say I am new to the whole arduino world so please don't flame if the question appears far too obvious to you. Thanks in advance.
I have 2 arduinos to work together because of lack of number of pins available to me.
1 - slave Uno board: has got a CNC shield on it to control 3 stepper motors. so basically all my pins are gone
2 - master Uno: has an LCD (I2C), keypad (3x4), a joystick, and 2 push buttons connected to it

so you can see why I need to use 2 boards here. I know I can eliminate pins used by the keypad but still I would not have enough pins available for all my components.

my question is: if I connect both the slave arduino and the LCD to pins 4 & 5 in series, how do I print on the LCD? I have given address of 8 to the slave arduino and send data to it once I have received input from the joystick and keypad, but I'm not sure how to communicate to the LCD which is also connected to pins 4&5 of the master.

this is how I send data to the slave:

Wire.beginTransmission(8);
     Wire.write(1000);  //codes I use that I interpret at the receiving end to carry out a specific task by the 3 steppers
     Wire.endTransmission();

and at the slave end:

Wire.begin(8); //the defined slave address in the master
Wire.onReceive(recieveEvent);

void recieveEvent() {
 raw_value = Wire.read();
if (....
   switch(...)
     blah blah blah

now how do I write to the LCD from the master? do I use the same wire.beginTransmission(LCD address)? or simply lcd.print("....")? nothing seems to be working here.

Thanks again,
I hope you guys can help me out here.

I have 2 arduinos to work together because of lack of number of pins available to me.

Don't you think using a model with more pins is much the better choice?

I must say I am new to the whole arduino world so please don't flame if the question appears far too obvious to you.

Using such a complex setup as your first Arduino project is not your best idea. Start with one device connected. Once you got that running, use the next device (again that one alone) and so on. Once you got all that running you might start combining it.

I'm not sure how to communicate to the LCD which is also connected to pins 4&5 of the master.

It most probably has another I2C address so you can communicate with it as if the other Arduino wouldn't exist (from the software perspective).

If you look at your code you know why the sticky post at the top of the form ("How to use the forum - please read") tells you to use code tags. Please edit your post and insert code tags!

 Wire.write(1000);  //codes I use that I interpret at the receiving end to carry out a specific task by the 3 steppers

That will fail because Wire.write() accepts only byte input and 1000 is too big to fit into a byte.

now how do I write to the LCD from the master? do I use the same wire.beginTransmission(LCD address)? or simply lcd.print("....")? nothing seems to be working here.

I strongly guess you're using a library for that. Unfortunately you failed to provide a link to it so we also know what you're using. If you don't provide the necessary information we cannot help you.

Thank you for getting back to me. Appreciate it.
I added the code tags as you suggested.
I have used Arduino projects before successfully but using simple code. Have used an Uno board to control mp3s, volume knob, led strobes, laser sensors, and control stepper motors all at once. I’m sure if you look at my code though you will suggest 1000 improvements that shortens it and makes it better. But at least it worked perfectly every time.

This time around I really need at least one more uno board with an LCD. I might ending up adding 1 more board potentially later so I need to understand how to communicate with all devices from one master.

I believe as you mentioned sending 1000 as a wire.write is too big. will have to use max value of 255 or define number of characters I want to transfer slightly differently. Thanks for that.

as far as libraries I have used:

#include <Wire.h> 
#include <LiquidCrystal_I2C.h>
#include <Keypad.h>

now let’s assume the LCD address is 0x27 for instance. if i want to send a simple text like:

lcd.setCursor(0,0);
lcd.print("Enter Distance:");

how do I do that? using wire.write() somehow?
Thank you again for the help.

now let's assume the LCD address is 0x27 for instance. if i want to send a simple text like:

In this case you specify the address in the constructor of the lcd object, p.e.:

LiquidCrystal_I2C lcd(0x27, 20, 2);

The library will use that address for all communication it has with the LCD.