making a control unit wireless....

I am currently looking at making a control unit i have built with the arduino wireless....

I played with the idea of using bluetooth and infrared but bluetooth is too power hungry and infrared needs more of a direct line of sight than i want.

I am now looking at radio transmitting so i can use the unit in other rooms, i know they use them in some current remote controls.

Anyone know of any components that people have used? Its also for a project so i need to show it can be mass manufactured so it cant be a ridiculously expensive component or ridiculously large. Anyone have any ideas?

Thanks in advance.

Your best bet are the cheap RF modules that you can buy (from sparkfun or similar), they are only one way but are cheap and will do between rooms (but not much more).

If you want data travel both ways then you should go with xbees, but they are not cheap...

Mowcius

it will only be data sent from the control to a reciever which will then create and output. Fairly simple…Using the same principle as current RF remotes. I do however have analogue outputs :s… this is all so confusing.

I have the code:

  // these constants won't change:
 const int analogPinVol = 0;    // the pin that the volume is attached to
 const int ledCount = 6;    // the number of LEDs in the bar graph
 const int analogPinPlay = 1; // the pin that the play/pause is attached to
 const int analogPinSource = 2; // the pin that the source is attached to
 const int ledPinPlay = 6; // the pin that the LED for Play/pause is attached to
 const int ledPinSource = 5; // the pin that the LED for source is attached to
 const int ledPinPrevious = 4; // the pin that the LED for Previous track is attached to
 const int ledPinNext = 3; // the pin that the LED for Next track is attached to

 // Variables will change:
 int ledPins[] = {
   7, 9, 10, 11, 12, 13 };   // an array of pin numbers to which LEDs are attached
 int val = 0;
 int valSource = 0;

boolean sensorLeftTriggered = false;
boolean sensorRightTriggered = false;

 
int sensorLeftPin = 1;
int sensorRightPin = 2;

long sensorLeftTime = 0;
long sensorRightTime = 0;

 void setup() {
   // loop over the pin array and set them all to output:
   for (int thisLed = 0; thisLed < ledCount; thisLed++) {
     pinMode(ledPins[thisLed], OUTPUT);
     pinMode(ledPinPlay, OUTPUT);  // declare the ledPinplay as an OUTPUT
     pinMode(ledPinSource, OUTPUT);  // declare the ledPinplay as an OUTPUT
     pinMode(ledPinPrevious, OUTPUT);  // declare the ledPinplay as an OUTPUT
     pinMode(ledPinNext, OUTPUT);  // declare the ledPinplay as an OUTPUT
     pinMode(sensorLeftPin, INPUT); // declare the sensorleftpin as INPUT  
     pinMode(sensorRightPin, INPUT); // declare the sensorrightpin as INPUT


   }
 }

 void loop() {
   // first handle the led bar
   // read the volume:
   int sensorReading = analogRead(analogPinVol);
   // map the result to a range from 0 to the number of LEDs:
   int ledLevel = map(sensorReading, 140, 620, 0, ledCount);
   // loop over the LED array:
   for (int thisLed = 0; thisLed < ledCount; thisLed++) {
     // if the array element's index is less than ledLevel,
     // turn the pin for this element on:
     if (thisLed < ledLevel) {
       digitalWrite(ledPins[thisLed], HIGH);
     }
     // turn off all pins higher than the ledLevel:
     else {
       digitalWrite(ledPins[thisLed], LOW);
     }
   }

   // then do the Play Led
   val = analogRead(analogPinPlay);
   if ((val > 430) && (val < 500)) {
     digitalWrite(ledPinPlay, HIGH);
   }
   else {
     //
     digitalWrite(ledPinPlay, LOW);
    }
   // then do the Source Led
   valSource = analogRead(analogPinSource);
   if (valSource > 500) {
     digitalWrite(ledPinSource, HIGH);
   }
   else {
     //
     digitalWrite(ledPinSource, LOW);
    }
   int sensorLeftValue = digitalRead(sensorRightPin);
  if(sensorLeftValue == HIGH) {
       // Sensor triggered, and was not triggered before
        digitalWrite(ledPinNext, HIGH);
  }
else {
       digitalWrite(ledPinNext, LOW);
           }
   int sensorRightValue = digitalRead(sensorLeftPin);
  if(sensorRightValue == HIGH) {
       // Sensor triggered, and was not triggered before
        digitalWrite(ledPinPrevious, HIGH);
  }
else {
       digitalWrite(ledPinPrevious, LOW);
       }
   }

and im going to want to transmit the information received across to a unit that will then create the outputs of the LEDs etc :s

I hope RF will work… xbees is so expensive and needs a direct line of sight no?

I hope RF will work… xbees is so expensive and needs a direct line of sight no?

No, xbees are radios. The radio waves travel through walls quite easily.

Well, some walls, anyway. And, not too many of them.

Xbees are also RF, just good ones... They quote distance as line of sight because distance obviously changes with objects that it has to pass through...

Mowcius