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

14,316

36

9

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!

First Time Author Contest

Participated in the
First Time Author Contest

Share

    Recommendations

    • Colors of the Rainbow Contest

      Colors of the Rainbow Contest
    • Classroom Science Contest

      Classroom Science Contest
    • Frozen Treats Challenge

      Frozen Treats Challenge

    9 Discussions

    0
    None
    vishnu palakkad

    Question 11 months 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 >>;

    0
    None
    DanM347

    Question 1 year ago on Introduction

    Hey there, I was wondering if you are still offering support for this?

    0
    None
    chengchow

    2 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?

    0
    None
    shiblee

    2 years ago

    Thank you.

    0
    None
    shiblee

    2 years ago

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

    1 reply
    0
    None
    MamunEdtshiblee

    Reply 2 years ago

    Receptur is Translate Receiver RX

    Inteur is Translate Transmiter TX

    Servo Connected with Receiver

    u Can Use Any Arduino Micro Controller

    0
    None
    hagayg

    3 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.

    0
    None
    SethS13joaoasduarte

    Reply 3 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