How to Build 433 MHZ RC to Control Servos (100% Arduino)





Introduction: How to Build 433 MHZ RC to Control Servos (100% Arduino)

Hi guys!

There is my workaround to bypass timer issue (servo and virtual wire librairies).

Because of the timer issue I had, I decided to bypass it by adding a third arduino.

There is the way it works:

- The transmitter checks inputs and send a number.

Example: send "1" if pin 1 is HIGH and send "11" if pin 1 is LOW. Send "2" if pin 2 is HIGH and "22" if pin 2 is LOW

- The receiver reads the received code and sets equivalent pin to HIGH or LOW depending the code.

Example: receiving "1", so put pin 1 HIGH. Receiving "11", put pin 1 to LOW.

- The 3rd arduino sets servo's position depending the input pin.

Example: pin 1 is HIGH, move servo to the left. If pin 2 is HIGH, move servo to the right.

What do you need:

Transmitter's side:

1 arduino board (smaller is better, but after all, size doesn't matter !)

1 RF 433 MHz transmitter

1 2-axis joystick

Receiver's side:

2 arduino boards

1 RF 433 MHZ receiver

2 Servos

I hope it will help someone!

Contact me if you have questions!

Step 1: Construire Une Télécommande 433 MHZ RC Pour Controler Des Servos (100% Arduino)

Salut !

Voici mon travail pour contourner le problème de timer (des librairies servo et virtualwire). Pour éviter le problème, j'ai décidé d'ajouter un 3ème arduino.

Voici le principe de fonctionnement:

- La partie émetteur vérifie les entrées et envoi un chiffre correspondant.

Exemple: envoyer "1" lorsque l'entrée 1 est à un état "HAUT" sinon envoyer "11" ou envoyer "2" lorsque l'entrée 2 est à l'état "HAUT" sinon envoyer "22".

- La partie recepteur recoit le code et place la sortie dans l'état correspondant.

Exemple: le code "1" est reçu, mettre la sortie 1 à l'état "HAUT". Si le code "22" est reçu, mettre la sortie "2" à l'état "BAS".

- Le 3ème arduino commande les servos en fonction des entrées activées.

Exemple: Si l'entrée 1 est à l'état "HAUT", déplace le servo vers la gauche. Si l'entrée 2 est à "HAUT" déplace le servo vers la droite.

Ce que vous avez besoin:

Pour la partie emetteur:

- 1 arduino (le plus petit serait le mieux, mais la taille n'est pas importante...)

- 1 module emetteur RF 433 MHz

- 1 joystick 2 axes

Pour la partie recepteur:

- 2 arduinos

- 1 module recepteur RF 433 MHZ

- 2 servos

J'espère que ca va aider du monde!

N'hésitez pas à me contacter si vous avez des questions!



  • Epilog Challenge 9

    Epilog Challenge 9
  • Sew Warm Contest 2018

    Sew Warm Contest 2018
  • Gluten Free Challenge

    Gluten Free Challenge

We have a be nice policy.
Please be positive and constructive.




I would like to use Potentiometer instead of Joystick to control the servo by using 433MHz RF, how to make changes on the programs?

Thank you.

your schematic is not clear. tell where to upload which sketch?

Receptur is Translate Receiver RX

Inteur is Translate Transmiter TX

Servo Connected with Receiver

u Can Use Any Arduino Micro Controller

servotimer2 is a library to overcome this.

meanwhile I have another problem due to servo noise interference.

I can activate the servos but then I cant recive anything. when I disconect the servos the reception is fine.

Why 2 arduinos on two receivers?


The reason he is using two Arduino's, is that the two libraries needed, Servo.h and the VirtualWire [VirtualWire.h] or RadioHead [RH_ASK.h] both try and use interrupts with timer 1 and have a conflict.

Having two separate boards do this is handles down the cheapest, easiest, and fastest solution for someone getting into Arduino.

Fixing this would require allot more work then most Arduino beginners and intermediates are comfortable or able to do.

I spent hours trying to find a work around that worked with my application, and got no where. The easiest way to do it that I can see to not have to use two Arduino's, would be to not use the VIrtualWire.h Library at all. This would require you to code your own communication protocol between the transmitter and receiver for synchronizing, and sending information, although if you youtube searh a bit on the wireless module, you can find some folks who do that, and you could follow in their footsteps and modify things for your code.

BUT, with how cheap you can get a clone, getting a nano or something for the other board, is cheap, easy, and for a beginner will save you allot of headache