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!

Participated in the
First Time Author Contest
9 Comments
Question 4 years ago
i would like to use ultra sonic sensor instead of joystick,please any one help me??
so i want to control servo with respect to ultrasonic sensor values wirelessly using
any radio frequency module >>;
Question 4 years ago on Introduction
Hey there, I was wondering if you are still offering support for this?
5 years ago
I would like to use Potentiometer instead of Joystick to control the servo by using 433MHz RF, how to make changes on the programs?
6 years ago
Thank you.
6 years ago
your schematic is not clear. tell where to upload which sketch?
Reply 6 years ago
Receptur is Translate Receiver RX
Inteur is Translate Transmiter TX
Servo Connected with Receiver
u Can Use Any Arduino Micro Controller
6 years ago
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.
7 years ago
Hi!
Why 2 arduinos on two receivers?
Thanks!
Reply 7 years ago
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