How to ask a good question
General design
Communications- I2C *
Information about the I2C hardware and protocol, widely used to communicate with various peripheral chips.
- PC to Arduino comms
Discussions about sending text or binary data from an Arduino to a PC, or vice-versa, using Python.
- Radio/Wireless Transceivers Interfacing *
How to interface using RF24L01 2.4GHz transceivers, by Terry King.
- Serial Input Basics
An introduction to using the serial ports on your Arduino, including sending and receiving multiple bytes.
- Serial data - how to process without blocking *
Suggested techniques for receiving incoming serial data, without "blocking" (waiting).
- SPI *
Information about the SPI hardware, widely used to communicate with other chips, shift registers, LCD displays, etc.
C++ programming- Arduino functions reference
The official reference page for commonly-used functions, like digitalWrite.
- AVR Libc Home Page *
Standard library functions supplied with the IDE, such as CRC checks, EEPROM handling, watchdog timer, sleep management, and much more.
- Function variables *
A discussion about how to store function addresses in variables, and how to make "callback" functions, so that one function can call another one, from a variable.
- millis() overflow ... a bad thing? *
A discussion of how to manage when millis() and micros() overflow.
- Tips, traps and style guide *
A list of common problems encountered by beginners, such as confusing comparison with assignment.
Also describes how to disassemble your code, where libraries are located, and other information.
- What is Scope?
A discussion of the use of variables in C++ programs, focussing on their scope and lifetime. Discussions include local and global variables, and the use of the extern keyword.
- Using PROGMEM *
A discussion about putting strings and other data types into Program Memory (PROGMEM), to save RAM.
Hardware- Arduino Basic Connections *
Very useful site listing different ways of connecting hardware to your Arduino (schematics). - De-coupling capacitors *
Why the use of de-coupling capacitors is essential. - Interrupts *
A discussion about the use of interrupts on the Arduino, including hints and pitfalls.
- LDRs and IR LEDs (PDF: 862.7 KB)
Tutorial on sending and receiving information using light (IR LEDs and LDRs)
- LEDs *
Why you need current-limiting resistors when driving LEDs
- Pin-outs - assorted *
Pin-outs for various boards done by PighiXXX (of Arduino Basic Connections fame) (JavaScript required)
- Pin-outs - Uno
Pin-outs for the Uno board (SPI / I2C etc.)
- Pin-outs - Mega2560
Pin-outs for the Mega2560 board (SPI / I2C etc.)
- Power saving *
A discussion about running in low-power mode using sleep modes, the watchdog timer, and general tips for reducing power consumption.
- Rotary encoders tutorial
Some suggested methods of handling rotary encoders.
- Stepper motors tutorial *
A tutorial covering the basic principles of stepping motors and stepping motor control systems.
- Stepper motor basics
An introduction to using stepper motors.
- Switches *
Tips for wiring up switches, including debouncing and detecting status changes.
- Timers *
An introduction to the hardware counters/timers.
Datasheets
* Links to off-site information. That is, not on the Arduino Forum.
Discussion:
Call for a list of useful programming threads