On the plus side, Embedded programmers get about twice as much as web programmers. Switch to contracting if you want more money - around $50 per hour for web developers $30 to $75 and around $100 per hour for embedded programmers ($75 to $200). I'm not an expert on rates. This is just people I've met. It's a small sample but it makes sense. Embedded C programmers with more than 3 years of experience are damn hard to find. It's a niche market.
On the minus side, there are fewer Embedded programming jobs out there so you have to travel farther and often you can't work from home because you need to be with the hardware and often there aren't enough hardware to let you take one home. Or you need expensive debugging equipment like oscilloscopes, etc. Again I'm talking about contracting where you will have to travel to different places every time you get a new contract and they will be farther away than those web development contracts.
I recommend you stick with embedded C and if you want to learn something, learn how to use an oscilloscope, read a schematic and study some basic electronics so that when something doesn't work you can tell the Electrical Engineer exactly what is wrong instead of just saying "it's broken". This is how you get in the upper end of the salary range.