Mike J McGuire
Published © GPL3+

Using Short Range RF Transmissions Between Two Arduinos

A quick tutorial on how to send/receive RF signals to communicate between two Arduino devices (433MHz AM).

BeginnerFull instructions provided2 hours10,118
Using Short Range RF Transmissions Between Two Arduinos

Things used in this project

Hardware components

Arduino UNO
Arduino UNO
×1
QAM-TX1
433MHz AM Transmitter Module
×1
QAM-RX2
433MHz AM Receiver Module
×1
HT-12E
Encoder IC
×1
HT-12D
Decoder IC
×1

Software apps and online services

Arduino IDE
Arduino IDE

Hand tools and fabrication machines

Soldering iron (generic)
Soldering iron (generic)

Story

Read more

Schematics

Transmit Circuit

Receive Circuit

Code

Code snippet #1

Plain text
#define PIN_TRANSMIT 3
#define PIN_DATA 4

/***************************************************************/
/* Function: setup()                                           */
/***************************************************************/
void setup()
{
	Serial.begin(9600);
	Serial.println("setup()");

	pinMode(PIN_TRANSMIT, OUTPUT);
	pinMode(PIN_DATA, OUTPUT);
}

/***************************************************************/
/* Function: loop()                                            */
/***************************************************************/
void loop()
{
	Serial.println("loop()");

	Serial.println("Transmitting Message 1");

	digitalWrite(PIN_DATA, HIGH); // Message 1
	digitalWrite(PIN_TRANSMIT, HIGH);

	delay(100);

	digitalWrite(PIN_TRANSMIT, LOW);

	// Wait 10 seconds between messages
	delay(10000);

	Serial.println("Transmitting Message 2");

	digitalWrite(PIN_DATA, LOW); // Message 2
	digitalWrite(PIN_TRANSMIT, HIGH);

	delay(100);

	digitalWrite(PIN_TRANSMIT, LOW);

	// Wait 10 seconds between messages
	delay(10000);
}

Code snippet #2

Plain text
#define PIN_RECEIVE 10
#define PIN_DATA 11

/***************************************************************/
/* Function: setup()                                           */
/***************************************************************/
void setup()
{
	Serial.begin(9600);
	Serial.println("setup()");

	pinMode(PIN_RECEIVE, INPUT);
	pinMode(PIN_DATA, INPUT);
}

/***************************************************************/
/* Function: loop()                                            */
/***************************************************************/
void loop()
{
	Serial.println("loop()");

	if (digitalRead(PIN_RECEIVE) == HIGH)
	{
		Serial.println("Receiving Message");

		if (digitalRead(PIN_DATA) == HIGH)
			Serial.println("- Message 2");
		else
			Serial.println("- Message 1");
	}

	delay(100);
}

Credits

Mike J McGuire

Mike J McGuire

2 projects • 6 followers

Comments