How is that any more efficient that putting an (4.7 k/1 uF) RC LPF at the other end and reading it with analogRead ?
It probably isn't. I actually had to look up what you meant by RC LPF which probably says allot. Being a software engineer i went for the solution that was electronically easier to understand but harder on the programming side of things. Somehow i got the impression that reading pwm has to be done manually in code on a digital pin. So maybe i should use an analogue pin read instead then?
http://www.benripley.com/diy/arduino/three-ways-to-read-a-pwm-signal-with-arduino/
Actually, if you want to , there is no reason you can't use RS485 to send your data. I don't know why you chose to send PWM but you can still do that using RS485. Usually, data is sent using a protocol that involves a header, a packet and a checksum but that's beyond my level of S/W expertise. If I just needed to send an 8-bit value I would probably have to do it the same way you are, (because I don't know how to do it any other way , LOL).
If it wasn't for the distance problem i would stick with pwm no worries, as i need to connect to four other arduinos. This way would mean everything fits on the one pcb with just a few optos and resistors.
If i only had to connect to one other arduino not four then RS485 could be better. Though i'm only wanting to send a single integer say 4-5 times an hour, so even then a line driver is probably a bit overkill.
If possible i'd prefer to use pwm but i'm not sure about the distance problem. The arduinos will be in a warehouse upto 100 meters from each other. I can write some error/interference tolerance into the code but for all i know pwm at those distances is practically impossible?
So i'm stuck between both solutions and currently not sure which way to go with! lol