In Circuit System Programming (ICSP) using USBtinyISP and Arduino IDE

1. Description

This tutorial shows how to use Arduino IDE (1.8.2) and an USBtinyISP programmer to upload code (bootloader and/or schetches) into ATmega328P-PU microcontrollers without using a serial/USB connection.

USBtinyISP is an inexpensive open-source external programmer that can be used to easily upload code into Arduino Uno R3,  stripped-down AVR development boards and/or standalone ATmega328P-PU microcontrollers.

Difficulty level: intermediate.

Continue reading “In Circuit System Programming (ICSP) using USBtinyISP and Arduino IDE”

Remote Sensor (Temperature and Humidity) Monitoring over RF Link

1. Description

The purpose of this project is to build a system that periodically sends sensor data from a remote device (standalone ATmega328 microcontroller) to a central monitoring device (Arduino Uno R3 development board) over a RF link. Some power-saving techniques have been used in order to preserve remote device’s battery life. For the purpose of simplicity, a simple temperature and humidity sensor has been used at the remote device; it could be easily replaced with any other sensor. The simple topology (one remote device to one monitoring device) could be extended (multiple remote devices to a single monitoring device).

Difficulty level: advanced.

Continue reading “Remote Sensor (Temperature and Humidity) Monitoring over RF Link”

Infrared Remote Control Converter (Arduino Uno)

1. Description

This project shows how to build an infrared remote control (IR RC) converter that allows emulating an IR remote control (emulated IR RC) using a different one (physical IR RC). The basic principle is the following: IR codes sent by the physical IR RC are intercepted by an IR receiver, translated into the physical IR RC corresponding codes and sent through an IR transmitter. The translation table that maps the physical to emulated IR RC codes is permanently stored in the microcontroller’s internal EEPROM; it can be easily (re)initialized by putting the system in setup mode (hardware interrupt generated by a button press).

Difficulty level: advanced.

Continue reading “Infrared Remote Control Converter (Arduino Uno)”

ATmega328P-PU Power Saving (Sleep Mode and Watchdog Timer)

1. Description

This tutorial presents some power-saving techniques available for ATmega328 based designs.  They could help in lowering the overall power consumption and preserve battery life (in case of using batteries as a power supply). Even though the examples presented below are originating from a basic sketch (periodic LED blinking), they could easily be ported to various other applications.  Each scenario indicates the current consumption measurement and an estimation of the battery lifetime – this could be useful in choosing the right and most effective power-saving technique(s) for your specific applications.

Difficulty level: intermediate.

Continue reading “ATmega328P-PU Power Saving (Sleep Mode and Watchdog Timer)”