As evidenced by several previous questions of mine, I'm working a project to design a sprinkler controller. This involves driving one of 16 solenoids (well, probably only one at a time...) based on a schedule. I have the microcontroller sorted out, and the software is just about finished up.
As reference, the solenoids I'm driving are generally between 300mA and 500mA inrush current, and 200mA and 400mA holding current. They're driven at 24VAC.
My initial hardware design involved a set of SSRs, of this Sharp variety. They're non-zero-crossing type optoisolated triac-output SSRs. I've tested the solenoids with these, and they seem to work well. The datasheet shows a protection diode (which is probably overkill) and a snubber circuit (to be used especially when driving inductive loads), but I gleefully ignored that advice, and I haven't seen any ill effects yet.
Because I'm curious, I took a peek inside a couple of commercial controllers. Inside, I saw nothing that looked to me like my SSRs. One of them had what seemed to be a set of TO-220 size triacs. I couldn't see what other componentry surrounded the triacs.
My question is, what would a professional use to drive these solenoids? Are the SSRs overkill in this application? Would it be simpler and cheaper to just use logic-level triacs directly? Is my lack of a snubber circuit going to come back and bite me eventually by destroying the SSR, the solenoid, the MCU, or my entire neighborhood in a flaming fireball of death?
To all those suggesting DC solenoids, please don't. Commercial sprinkler systems use AC solenoids. That's just the way it is. I will not be using DC solenoids, because Home Depot, Lowes, and others don't sell DC sprinkler valves. Such a thing (to my knowledge) doesn't exist, at least not in markets where the average home user would be.
To be absolutely clear
I'm not asking for a list of possible ways to drive solenoids. I can imagine a lot, and there are lots more available out there. I'm asking how this sort of thing is done professionaly, i.e. how it's done when designing for cost, robustness, and mass-producability.