Interfacing External MCUs and Peripherals 5V-3.3V

I'm working hard at learning electronics, but I have an annoying beginner question. 3.3V and 5V levels seem standard. Can I simply connect the pins of my Arduino directly to the pins of another 5V MCU or peripheral? Do I need to put resistors in between?

For example, I have two Arduinos: A and B. If I set a digital pin on A to OUTPUT, can I wire it directly to an INPUT pin on B without smoke and a burnt controller? I know OUTPUT pins on the ATmega328 run up to 40mA, and INPUT pins are high-impedance, so the current won't destroy an input pin, right? Correct me please if I'm thinking wrong.

What if my peripheral is an 3.3V serial RF unit? I imagine I need a resistor to convert 5 to 3.3, and I think I need a transistor to convert 3.3 to 5. Or should I just buy voltage-compatible peripherals?

Also, if 3.3V and 5V levels are standard for embedded, what's the name of those standards? I don't know what to call them.

I'm really struggling to understand this. Any insight would be valued.

Can I simply connect the pins of my Arduino directly to the pins of another 5V MCU or peripheral?

If the Arduinos are the 5V models, yes.

Do I need to put resistors in between?

No.

If I set a digital pin on A to OUTPUT, can I wire it directly to an INPUT pin on B without smoke and a burnt controller?

If you connect the grounds, too, yes.

I know OUTPUT pins on the ATmega328 run up to 40mA, and INPUT pins are high-impedance, so the current won't destroy an input pin, right?

The ability to supply current is not limited to 40mA. The ability of the pin to safely supply current is limited to 40mA (less is better). Input pins, because they are high impedance, draw very little current.

The key is that input pins draw current. They will only draw what they need, regardless of the amount that can be supplied (assuming, of course, that the amount that can be supplied exceeds what is needed).

What if my peripheral is an 3.3V serial RF unit? I imagine I need a resistor to convert 5 to 3.3, and I think I need a transistor to convert 3.3 to 5.

You need a voltage divider (a pair of resistors), not a single resistor, to drop the voltage. Although many nominally 3.3V devices are 5V tolerant. Check first, of course.

If the output is digital, 3.3V is more than 60% of 5V, so 3,3V will be read as HIGH, so nothing needs to be done going that direction.

If the output is analog, you might want to set the reference voltage to 3.3V. Otherwise, the range of values that the 5V Arduino will return will be capped at 3.3/5.0 * 1023.

3,3V and 5V are good names, aren't they. You know what they mean. I know what they mean. Unless I'm mistaken, what you think they mean and what I think they mean are the same thing.

Thanks so much PaulS, that was helpful! I looked up voltage dividers and things are making a lot more sense. I still have a ton to learn, but folks like you make it easier.