Trying to create a brain to run various lights and sirens systems.
Just to address this ahead of time, I am a paramedic and authorized to have this equipment.
Dual tone siren. Basically one of the latest ideas is to run two different sounds from your siren via two speakers. I suspect I can generate whatever sound profile I wanted and output it from the Arduino to two separate amplifiers Tone1 and tone 2. I would also need an option to override the siren for PA purposes.
Brake and back up light flasher, Basically I need the Arduino to act as a switch and timer (flasher) to control some relays. I actually designed this already using switches and relays and a flasher.
General light switch and flasher. I have multiple LED light heads I will want to control and synchronize. Some will at time need to be steady on.
Light bar. Basically it's a bunch of synchronized light heads of different colors. Some of them need to go steady on sometimes though.
5 traffic advisor - again synchronized light heads to point traffic in a specific direction as well as random flash patterns and some steady on for illumination if needed.
I want to control everything preferably through a touch screen interface and possibly through voice commands.
Trying to figure out what components I will need and how to go about doing it. From what I can tell the lighting stuff is just simple on and off and for what time periods. Not sure how to do the siren tones though. i planned to source the LED light heads and relays on amazon but open to cheaper options if anyone knows of any.
Hello medic505
Keep it simple and stupid.
Run some tutorials to the hardware selected.
If you are happy with the results of the tutorials you can merge these to the project by using control structures.
Have a nice day and enjoy coding in C++.
A complex project is a lot of simple projects put together. Start with your arduino on a breadboard and a simple buzzer. Get it to do what you want then think about how to scale it up to what you need. Use many sketches with an iterative approach. Once you get a small bit of your project working think about how you encapsulate your code to make it easier to merge later. Then move on to the next bit in a completely new sketch and get it to work. Use a good naming system. The worst thing newcomers do is put everything together in the one code and make a big complex mess. Complexity is the apparent outcome but should not be the process.
Become familiar with the first five ideas in IDE ->file/examples/digital. The ability to handle millis() timing will pay big dividends later.
Read up on arrays and Finite State Machines using the c++ switch/case construct. There's tons of info at Arduino Reference - Arduino Reference and elsewhere on the web.