Transmitting between Arduino's

Hi.

I started this query in another thread, but it was suggested I start it in an new thread.

I've built a control board, with an Arduino Uno, shift registers, clock module and 12 channel remote. This drives 15 large 7 segment displays.

I'm now trying to work out how to get this info and transmit it around 100m away in a club room (sports ground). This way the parents can see the count-down timer and scores whilst their kids are playing.

It has been suggest I investigate a pair of 2.4Ghz Xbee tranmitter/receivers. It's also been suggested I consider "2.4GHz Transceiver w/ Power Amp +PreAmp nRF24L01".

I'm new to this whole area, so I'm still trying to work out what I need and how this setup works. so I'm open to suggestions anyone can make by anyone who's done this before. Thanks in advance.

A link to your other Thread is useful.

Will the Tx and Rx be in line of sight or will there be obstructions (walls?) between them?

I think the high-powered nRF24s should have sufficient range but I have only experience of the low powered versions. I have no experience of Xbees - I believe they are expensive.

I got my nRF24s working with this Tutorial

I suggest you use the TMRh20 version of the RF24 library - it solves some problems from the ManiacBug version

...R

Robin2:
A link to your other Thread is useful.

Thanks Robin, I didn't think about that

Robin2:
Will the Tx and Rx be in line of sight or will there be obstructions (walls?) between them?

Yes, there would be a wall. The sign currently is about 100m away from the club room. It would need to transmit through one brick wall in this case.

Robin2:
I have no experience of Xbees - I believe they are expensive.

Yes, I got a link in the previous thread by LarryD and it gave a good general description of how they connect - a bit complicated on the programming side I have to admit. The cost of the setup was around $177 which is a bit expensive. I assume that was US$ so for me that $240. They did however seem to have good reception, but in the video I watch, it was only simply turning on a single LED, so hard to tell

Robin2:
I think the high-powered nRF24s should have sufficient range but I have only experience of the low powered versions

Yes, CrossRoads suggested one of these units (LINK) and they are relatively cheap. But it doesn't say the range.

I checked on ebay and found what NRF2L01 units (but not a NRF2L01+ unit). On this site (LINK), they only cost US$3.23 with the antenna. It notes a range of 1000m with no barriers. It shows 7,678 sold from this site to date, so maybe numbers prove they're ok??? However I watch some videos and some people report good reception and others say its as low at 30m. So I'm not sure.

Robin2:
I got my nRF24s working with this Tutorial

I'll check this out today.

Robin2:
I suggest you use the TMRh20 version of the RF24 library - it solves some problems from the ManiacBug version

I'll also check this out.
Any further feedback on getting good constant range would be appreciated (or performance anyone has from these).

...R
[/quote]

I remember seeing a website where a guy did some testing of range of the nRF2401 module. You might want to Google for it.

This may be the range test? I had forgotten I had bookmarked it.

...R

Thanks ieee488 and Robin2.
The more videos I watch, the more conflicting results. The PCB type was recommended in one video I saw and now here chap suggests a different type.

I am however still leaning towards testing the model recommended by CrossRoads (LINK)
(http://yourduino.com/sunshop2/index.php?l=cart_view&zip_code=3792). I might just have to take a stab and buy a couple of types and do my own experimenting and trails.

Can someone just give me a heads up with the arduino's I'll need either end. Currently on my Arduino Uno I'm using pins 2 to 12 and A1 to A5. The only free ones are A0, TX, RX and 13. So does this mean I'll need another Arduino (maybe an Arduino Mega)?

On the other end where I want to the signal to go, what arduino should I consider? The arduino will be feeding I think a set of 8 shift registers to run 8 leds (unless I come up with something simpler).

To use an nRF24 you need the SPI pins to be available.

...R

On my Arduino Uno I see that the SPI pins are 10(SS), 11(MOSI), 12(MISO) and 13(SCK). The only pins The only fee pins I have is 0, 1, 13 and A0. Should I instead use an Arduino Uno? If so, which pins? Are they pins 50 to 53?

Would this be the same for any transciever?

You have not explained why you cannot move the stuff that is on 11, 12 and 13 to other pins with a small change to your code.

You can use the analog pins as digital I/O pins.

Pin 10 is not needed for communication with the nRF24 but it must be set to OUTPUT so that it can't make the Arduino into an SPI slave.

If you need more pins you could, of course, use a Mega.

...R

Robin2:
You have not explained why you cannot move the stuff that is on 11, 12 and 13 to other pins with a small change to your code

No reason - just showing my ignorance. I forgot about using an analog as a digital I/O. I'll try that tonight after work. Thanks for the suggestion of pin 10 (SS). So I'll be using every single pin on my UNO.

Given this processor is updating 15 seven segment displays via 15 shift registers, and also controlling the intensity of these, will the UNO struggle at all?

Also, given an update on the display is a maximum of 1 second (more for the count down timer), if communication isn't great (perfect), does this mean the 2nd display in the club room would simply not update every second, or will it flash the different segments of the digits at random? In other words, how critical is reception/transmission in this application do you think?

If your project is for a sports score board I suggest that a 5 second or 10 second update frequency would be sufficient. Play won't restart after a score within that time frame.

Design your data so that the absolute minimum needs to be transmitted. Also design the data so it is easy to parse it and allocate it to variables. I reckon that is much easier if the data is always in the same format even if numbers have not changed from one message to the next. I think the nRF24 sends data in 32 byte chunks so try to stay below that.

...R

I've just tried swapping my pins around to free up pins 10, 11, 12 and 13 for a nRF24 transceiver. I only currently have pins 0, 1, 13 and A0 free. However I can't seem to get pins 0 or 1 working. I'm guessing it has something to do with being serial transmit and receive.

Looking at where I've used all the pins in the list below, can someone tell me if there is possibility of swapping the pins I'm using - or do I need an Arduino Mega:

  • Pin 0 - free
  • Pin 1 - free
  • Pin 2 to 8 - set as "input-pullup" - awaiting ground signal from 12 channel remote
  • Pin 9 - to TPIC6b595 - clock
  • Pin 10 - to TPIC6b595 - output enable (used for dimming digits via LDR
  • Pin 11 - to TPIC6b595 - latch signal
  • Pin 12 - to PTIC6B595 - serial in
  • Pin 13 - free
  • Pin A0 - free
  • Pin A1 - reads LDR value
  • Pin A2 - tone output for siren
  • Pin A3 - output to relay to run strobe
  • Pin A4 - to RTC module - SDA
  • Pin A5 - to RTC module - SCL

It looks like you need more pins - a Mega.

Pins 0 and 1 are for Serial comms with your PC, including uploading code. Don't use them for anything unless you know what you are doing and don't need advice about it.

...R

cjcj:
Given this processor is updating 15 seven segment displays via 15 shift registers, and also controlling the intensity of these, will the UNO struggle at all?

Not in terms of processing power. But if your radio drivers interfere with your display updates (which they almost certainly will), you will see a lot of glitching on the display. Alternatively if you try to stabilize the display by giving it priority, the radio will fail.

Unless you can do some really fancy footwork.

Robin2:
It looks like you need more pins - a Mega.

I was afraid of that. Thanks for confirming.

aarg:
Not in terms of processing power. But if your radio drivers interfere with your display updates (which they almost certainly will), you will see a lot of glitching on the display. Alternatively if you try to stabilize the display by giving it priority, the radio will fail.

Thankyou aarg. That's really important info before I go ahead. My 12 channel however says it's 315Mhz. If the transceiver is 433Mhz, would that help?

I don't understand the point in Reply #13.

You can use multiple 2.4GHz devices at the same time on the same frequency and they are able to keep themselves separate. Different frequencies (channels) would obviously be better.

I can't imagine how a 2.4GHz device could interfere with a 315MHz device.

Maybe @aarg was trying to make a different point?

...R

Should the antennas of the transmitter and receiver be at right angles to each other for best reception (vertical and horizontal)?

If I do add a "longer" antenna on the transmitter, should it improve transmission?
(I know there is something about length = 1/4 Mhz, but my experiments seem to say this may not be the case) as shown below.

Reasons:
I'm experimenting now with a 315Mhz RF transmitter and receiver module and 2 arduino unos. I've used the following link to set this up. This is essentially sending out the message "received" from one Arudino to the 2nd Arduino. The receiving signal is read on the serial monitor.

I changed the code to sent the message "0", "1", "2"..."9" and repeating. Each number transmits every 100ms.

I've added a 238mm long 22'sh gauge copper wire (that I ripped from an old transformer) to both the transmitter and receiver, leaving the tiny coiled ones on both units still in place

I placed the transmitter in my house, and walked outside the house probably 20 to 25 metres away and the transmission started to drop out.

I added a extendable antenna (from an old RC plane transmitter) to the transmitter in the house (leaving the 22 gauge still on. I was able to walk probably 200m away before it started to cut out.

I found if the antenna on the transmitter was pointing vertical, it had worse reception as compared to laying down flat.

Any explanations in layman terms would be appreciated. I got a little lost reading sites talking about dipole and isotropic!

Sorry, just asking this question again if anyone can answer it.

I'm experimenting with a 315Mhz transmitter/receiver. The antenna is supposed to be 238mm long. I found using a thicker longer one, it worked better. Should this happen? Why is it specified as the best length to be 1/4 x wavelength?

I also don't know why the transmitter antenna is picked up by the receiver better if it is horizontal as compared to vertical. Is this normal?

I have no experience with 315MHz devices and your Title does not include them so people who know the answer probably don't look at the Thread. You can edit the title if you modify your Original Post

...R

Hi.
Can someone please answer a few questions for me. I've changed the title of this thread as it's changing direction slightly.

I'm experimenting with a 315Mhz transmitter/receiver (similar to a 433Mhz unit you find on ebay for around $2).

I find that I can get a range of around 150 metres maximum, however, I don't exactly understand the best antenna length to have. By calculation for 315Mhz it should be 238mm long, which I've done. However in testing, I found that adding a longer antenna (from an old remote control glider transmitter), I got better reception. Is this normal?

I also don't know why the transmitter antenna is picked up by the receiver better if it is horizontal as compared to vertical. Any clarification would be appreciated.