Your AVR chip is a silicon nerd! It’s a very smart little beast, but it’s very puny. You may as well ask it to calculate the square root of infinity as to directly energize a motor, or activate a solenoid. It’s all a question of electrical muscle: even a small electric motor will want to consume about 500 milliamps of current, whereas an MCU port pin starts to sweat at about 20 milliamps. So, for all that the AVR is smart, translating that smartness into making real-world things move or happen at the right time is not within its direct capabilities. It needs help.
That’s the main thrust of this chapter—how we deliver the ...