While delay() is handy for basic demonstrations of how Arduino works, you really shouldn't be using it in the real world. Here's why, and what you should use instead.