Experiments using both simulation and practical implementation. Arduino system design and C-language program development tools. Using general purpose input/output ports to interface with external hardware, such as LEDs, switches, communication devices, sensors, and actuators. Using timers and counters. Internal and external interrupts. Serial communications. Analog/Digital Converters (ADC). Design project.