Snippets and Sketches.
- Garg10n3 sketch to interface a low cost fonera access point with arduino to make a wifi camera-equipped rc car.
- WiFly HTTP temperature server A HTTP server that displays the current temperature, using a WiFly Shield and an LM35 CAZ. Also can send how much memory is free for diagnostics.
- WiFi email client Email client code for Wifi shield
- DCF77 Clock - a binary DCF77 clock with good noise tolerance.
- The Clock - a DCF77 clock with extraordinary noise tolerance.
- Code.NTPclient - Low-memory footprint, scheduler-friendly NTP client
- Code.webclient - Low-memory footprint, scheduler-friendly web time client
Concurrency, Timing & Schedulers
- heartbeat sketch - use an array to create an irregular blink pattern
- Stopwatch Sketch: doing multiple things at the same time.
- A Delay Sketch: An easy to use "blink without delay" style sketch written to be used with the ease of "delay()".
- How to write reliable repeating and one off timers: Timers that don't use delay() but can cope with software that does delay the main loop().
- Multi Blink: Demonstrates a table driven approach to concurrency by blinking lots of LEDS at different speeds. The technique is extensible to many other situations.
Input / Output
- Hardware Patching - Change hardware usual function with software
- PWM Techniques
- PWMallPins - a sketch to get more PWM pins
- atmega_i2c_pwm_expander - sketch to use an ATmega as a PWM expander, controlled by I²C
- 8-bit PCM audio (on a PC speaker)
- Creating Variable frequencies for PWM @ anything from a 15Hz to 1MHz
- Create PWMs in-sync and out of sync Create PWMs in-sync and out of sync
- 8/9/10-bit compressed audio output @ 8k, 10k, 12.5k, 16k, 20k, 25k, 40k sample rate.
- Using the TLC5940 to run PWM at different frequencies
- Adjusting the TLC5940 libraries to give different PWM frequencies
- Using TLC5940 to give phase-shifted PWM Signals
- Arduino PWM on all pins - Software PWM example sketch that moves any pin between any 2 states (low, high, high impedence, or pull up)
- PCA9685 test code - Simple test code interfacing I2C with PCA9685 pwm chip.
- AnalogAndDigitalFireflies - a sketch to randomly turn LED's on/off using PWM for fading with both Analog and Digital PWM (Digital PWM implemented in software).
- Touchscreen Piano: Arduino IDE ver. 1.0.1 sketch for using a 2.8" Touch Shield on an Arduino Uno or Mega to make a little "piano".
- Touchscreen Painting: Since 2012 some TFT-touch shields don't support the IRQ-pin anymore. Here's a little sketch for using one of these (ITeadstudio 2.4" TFT LCD Touch shield) without any library.
- Using multiple devices (including Arduinos!) on an I2C bus
- Getting multiple Serial channels with an Arduino
- ReadReceiver a sketch that uses Timer1 and PinChangeInt to read PPM output from a standard RC car Receiver
- String Functions
- FindText: A simple function to search for some text within a string.
- tempToAscii - Convert a float to ascii string with 3 decimal places
- printf() simple shell around vsnprintf() letting you use send printf style format strings over serial.
- Arduino Doodles - Mixed bag of sketches and libraries.
- LEDHeartbeat - Blink an LED and show your sketch is still alive.
- Prime number generation sketch
- smooth(data, filterVal, smoothedVal) - a low-pass filter smoothing function, useful for removing sensor jitter
- digitalSmooth(data, smoothArrayName) - a digital low-pass filter smoothing function, useful for removing sensor jitter, and glitches
- autoscale(int originalMin, int originalMax, int newBegin, int newEnd, int inputValue) - scale a variable between two ranges using linear interpolation
- fscale(float originalMin, float originalMax, float newBegin, float
newEnd, float inputValue, float curve) - a function to map a variable between two floating point ranges. Can logarithmically favor either end of the output range.
- smoothstep - a function to ease from one value to the next with a smooth "s" shaped logarithmic curve.
- nonlinear mapping - reMap() allows to adapt a nonlinear function with line segments.
- multiMap - multiMap() allows to adapt functions with interpolation - similar as reMap() above - but this one is 100% integer to improve speed, and a bit more hardened.
- Random Card Draw - Example sketch that demonstrates how to select a number in a range in a random order, where all numbers in the range appear once. Kind of like drawing a card from a shuffled deck.
- randomHat() - choose every number from a "hat" before repeating
- A true random seed value - Example sketch that demonstrates how to seed the libraries pseudo-random number generator with a different random value every time the sketch runs. Very 'lightweight' technique.
- randomWalk(stepSize) - wander between endpoints at a specified rate
- freqout(freq, duration) - a simple frequency generator
- Musical Algo Fun - Sketech for making music with old PC speakers
- Armstrong Music System - a collection of input and output abstractions to ease the development of musical instruments with the Arduino. This abstraction also allows sounds trigger remote hardware (PC or synthesizer) without additional coding.
- Pulse Width Determination
- Measuring frequency with Arduino - A small and simple code snippet for 0 - 100 kHz range
- FFT tutorial: Learn how to implement Fast Fourier Transform in Arduino
- FIR filters tutorial: Learn how to implement FIR (Finite Impulse Response) filters in Arduino
- PID tutorial: learn how to use PID for temperature control
- divmod10() : a fast replacement for /10 and %10 (unsigned).
- divu5() and divu3(): Fast replacements for unsigned division by 3, 5, 6, 10, 15 and more
- fastModU64() fast modulo for primes, 3x faster U64 % U16 code