Arduino Code Explained: Visual Simulations with Proteus