Gooday,
I am a newbie to micros, being an old cmos/ttl dinosaur.
I have ordered my first Arduino, but there is going to be a lot of learning to do, and I don't really know if my long term project will be possible, thats where I could do with some advice. ( I don't expect this to be my first project ! I will be starting with the flashing LED etc )
My goal is to have 6 outputs of the micro sequentially feeding a demux chip, to switch 64 bcd switches.
The 4 binary outputs from each switch ( plus one other spst switch ) to be diode fed back to 5 inputs of the micro.
I want the micro to then send this data via a wireless modem.
Preferably there should be a handshake, and then it will move on to the next of the 64 switches, and so on.
There will have to be some other minor data such as an address ( software programmed ) for the receiving device ID, and a couple of realtime push buttons to transmit before the sequential data.
The receiving side ( with a matching software programmed address ) would handle the handshaking, address checking, and convert the bcd from the switches into 8 serial bits representing 7 segment display ( displaying the number on the switch ) plus the spst switch status, and pass the data stream along to a series of 595 latches to feed the 7 seg displays. ( plus the spst switch status )
The receiving micro would have to generate the clock and a latch pulse at the end of the last switch data.
My existing dinosaur system runs at only 5 Khz transmission, so hopefully I can speed it up a bit with the micro?
My existing dinosaur system runs at only 5 Khz transmission, so hopefully I can speed it up a bit with the micro?
Do-able with Arduinos ?
Unfortunately the English language is poor in trying to explain your exact requirements. I'm sure the Arduino can handle the task and at much higher speed if desired. It's just a matter if your Arduino board having has enough I/O pins or not.
Perhaps even a crude block diagram drawing would help explain your application better.
As far as I understand the project there are TWO controllers involved, the BCD reader and the 7-segment-display writer.
Both tasks can of course be handled by Arduinos, and - to repeat RC's question - why should this happen - say - more than 20 times a second??
Another question: How many displays will be involved?
Another remark: Polling 64 switches takes a lot of wiring, you will better arrange this in matrix the addressing of which will best be done via PISOs/SIPOs as well.
The switches all have diodes on them, so there are 4 wires that run through the top of all the switches, and each has a wire from the demultiplexer, and the slow speed I mentioned is the time it takes for all the displays to update.
At the moment I only have 32 switches max, so for 64 it would take 3 or 4 seconds ( and there are not enough address pins on the chips I am using now for 64 switches )
There are not always 64 switches and displays, that is the maximum that I want the system to be able to handle.
Generally the transmitter only operates when an update button is pressed, as all the displays are latched. At present I switch the power ( battery ) on only when the update button is pressed, I don't know how fast the Arduino boots up, but I could fit an on/off switch if required.
I will attach a sketch if I can figure out how
The system at the moment is using the old Holtek HT12 pair, so its really slow.
When I said wireless modem, I mean any suitable radio link, I am using the Radiometrix 433Mhz simplex modules at the moment, and get about 300m range. ( open ground and a small antenna each end.)
I rely on the Holteks system of checking the data 3 times , but a handshake system would be better.
The transmitter is hand held and battery powered, a 9v PP3 lasts a year or 2.
Is there a sleep mode on the Arduino or similar?
The display end is generally mains powered, so that can stay on.
If the use is for scoreboards... then you could set a timer... then you would only have to worry to turn it on... off is a matter o time(r)!
probably you could even get the battery stat to make sure you won't get stuck in a middle of a game!