This page gives you easy access to all the information
on the site.
Arduino Projects: Use Amazing ICs to Enhance your Projects. Find out how to use many different chips from humidity sensors to accelerometers, DACs and much more.
Arduino Hardware: Everything you wanted to know about the Uno but were afraid to ask! Did you know there are FIVE unused features in the Arduino Uno?
Interfaces: Learn how to interface push
buttons or rotary encoders. Also includes Charliplexing
(Save pins when driving LEDs)...and more.
Displays: How to display Text or Graphics
with an Arduino. Should you use a text or a graphics
display? Find out the best Ones to Use.
Arduino Port Expanders: How to Increase the Number of Pins using a serial interface such as I2C or SPI. Some chips are far more capable than others - find out which in the link.
Arduino Reference: Your Essential Guide to
Arduino functions. They don't
always work the way you think. Find out the pitfalls,
and exactly how
these functions should be used, so you can avoid endless
create your projects fast.
IDE: The Simplest Guide to
using the IDE. How to Easily program the Arduino
Uno. How to get the
Bootloader into the
Arduino Chip and how to program chips that are not
included in the IDE.
ATtiny85: A Power Packed Arduino in a Tiny 8 Pin Chip. The smallest Arduino Chip! FOUR features you missed! Find How Good It is and how you can Easily program it over USB with no USB Hardware!
Arduino Temperature Sensors: Arduino Temperature Sensors For Simplified Measurement. How to use Arduino Temperature Sensors for Easy Temperature Measurement from standard room temperature to 1000's of Degrees Centigrade.
Arduino Current Sensors: Your Guide to Arduino Current Sensors for the Arduino. How to measure current from 100nA, to 3.2A, to 8.2A using three different types of sensor, simply by choosing the correct chip.
Arduino Voltage Sensors: The Easiest ADCs to use with Arduinos. ADCs are one of the most useful modules allowing you to easily read analogue voltages inside a digital system.
be the simplest (internal architecturally speaking) port
expander - easy to program and works very well.
There are no internal control
registers yet it has full bi-directional capability
(they call it quasi
bi-directional - but still useful). How is this magic
Tilt Compensation - how to use a HMC5883L or
QST5883L and an ADXL345 (accelerometer) to tilt
compensate a digital compass.
HMC5883L - How to use this
magnetometer as a compass (actually how to get any
reading out of it at all!).
INA219 - A
Current meter; Measuring current and power used. This is
for low volt
systems <=26V but gives highly accurate current
voltage and power
ACS712 - A Hall Effect medium current (±5A, ±20A,±30A) measuring device which It can also withstand 2100Vrms!
ACS758 - A Hall Effect High current (50A~200A) measuring chip with analogue output. It can also withstand 700Vrms!
MCP4725 - A digital (I2C)
controlled DAC and a look at the related MCP4726.
digital Potentiometer (SPI) with 8bit resolution is
controlled resistance that you can place anywhere in
MCP4728 - A 4 output
digitally controlled DAC (I2C).
MCP4922 - A two output
digitally controlled DAC (SPI). How fast does it go?
PCF8591 - A 4 input I2C ADC.
This is an ADC with 8 bit resolution and has a
differential input capability, and also includes a DAC.
TP4056 - How to use this
Lithium ion/poly battery charger the right way.
DW01A - Lithium ion/poly
battery protector. This is used in the TP4056 board.
ADXL345 - How to use the
ADXL345 accelerometer to measure roll and pitch.
ADS1115 - How to use this 16 ADC to measure 7.8uV. This is a precision device that you can use to make accurate measurements. It can even measure a small range of negative voltage - useful for sink/source current measurements.
MCP3008 - Find out if this ADC is as good as it claims. Do you need a 10 bit; 8 channel ADC with a high sample rate? This could be the right one. Find out how to optimize it for the best sample rate here.
AD9833 - Make a signal
generator using the DDS chip to 12.5MHz. Outputs sine,
square and triangle waves with a resolution of 0.1Hz.
MAX7219 - How to drive 8x8 led displays using this chip.
DS18B20 - Use the one-wire thermometer to measure accurate temperature; multi drop and long distance.
DHT22 - Also DHT11 (lower spec) - Measure humidity and temperature.
TCS230 - Let your microcontroller see colour!
HD44780 - LCD display driving. Usually a 16 character by 2 line display but can be 20x4.
MCP23017 - A 16 bit port expander (I2C) with comprehensive interrupt system.
MCP23017 Interrupts - Using multiple MCP23017 with interrupts.
BMP280 - Barometric pressure measurement.
Battery Charger - How to charge standard AA batteries.
Pulse Rate - Measurement See your pulse rate using infrared sensors.
Rotary Encoder - How to use them and make even noisy ones behave!
- Making the joystick easy to use with a useful library.
MAX6675 - How to measure
temperature from 0ºC to 1024ºC
converter - How to convert logic levels using a
SSD1306 - How to write text
and graphics to this 1" display.
Fading RGB LED Arduino - How to fade an RGB LED while keeping the same colour during the fading.
ESP32 CAM - How to set it up, How to access the TF card, and how to Free up I/O!
How to install and use the Digispark Attiny85
Programmer - How to program ATtiny series chips
using an Arduino Uno (or other Uno) as an ISP
to unbrick an ATtiny chip - Includes turning the
ATtiny programmer into an High Volt Programmer
(HVP) with 4 components and a power supply as well as a
program to set
fuse values from the serial command line.
Nano ISP - How to burn a
bare-board Arduino using an Arduino Nano. You end up
with about 4 components - just use a USB to serial
adapter and a 5V
ATtiny Ultra Low
Power - If you are looking to get maximum use out
of a battery then you need
to know how to lower the power usage of an ATtiny chip.
Here you can see the effects of clock speed and supply
voltage and how to use Burst mode effectively.
Find out Why is switch
bounce bad. what causes switch bounce and how to
debouncing methods on Arduino : One is amazing and
not to be missed!
Capacitive Sensor Sense objects using only a wire
and an ADC input.
Arduino ADC - How it
works; Find out its resolution and more.
Should you should divide by 1023 or 1024 in ADC calculations?
voltage reference - The internal voltage reference
is often overlooked. Find out how to use it and make it
accurate and reliable.
Output - How to smooth PWM signals and create sine
Arduino EEPROM - How
to read and write EEPROM.
EEPROM has a lifetime - make sure you don't use it up all at once!
Arduino simulated toggle
switch - How to create a toggle switch operation
using a standard single push button switch.
Arduino physical toggle switch - How to wire one up in two different ways and use them on Arduino.
What language does Arduino Use - It's probably different to what you thought!
Arduino Hello World - What's really going on when you create the "hello World" text?
Arduino Print To Serial - What functions do you need and how does it work?
Arduino Serial Begin - Why do you need it? What does it do? Find out here!
Arduino Serial Available - What happens to serial input when the processor is overloaded?
Arduino Serial Read - it works but underneath there's a lot going on.
Arduino Absolute Value - is abs() simple - it should be! - there are pitfalls!
delay() - How to delay the processor so a human
can see events!
digitalWrite() - How to write a binary signal to
the 0-5V output pin.
is a very useful generic function but you can operate 17
using direct write macros - all explained in the link
millis() - Time events using milliseconds without
stopping the processor.
pulseIn() and pulseInLong() - How to measure pulse
ESP8266 Arduino IDE
- Learn how to program an ESP8266 using the Arduno IDE.
NodeMCU Firmware -
Return the LUA scripting language back into an ESP8266.
- How to use ESPLorer to upload lua scripts to an ESP
NodeMCU Examples -
from simple LED blink to wifi use.
- An introduction
Programming - All about programmers, ICSP and
PIC Compilers - Find out why you should use a PIC compiler.
compiler - learn about a free PICBSIC compiler.
PIC Tutorials - More formal tutorial information on microcontrollers and protocols.
tool -A useful tool for drawing,
netlisting electronic schematic diagrams.
Books - Some useful books.
16F877 : 50MHz LCD frequencycounter.
16F877 : 50MHz 7 segment frequencycounter.
16F877 : LCD and Keypad using one 8 bit port (noglue logic).
Direct jump to locked page (needs unlock code)
16F88 : Ultrasonic range finding project.
16F88 : A Real Time Clock (DS1307) using I2C.
16F88 : Driving an LED dot matrix.
16F88 : Universal Infrared Receiver (UIR).12F675 : Tutorial 12F675 : RS232 Serial transmitter
12F675 : Serial Temperature Logger
12F675 : EEPROM Temperature logger
12F675 : Servo motor - serial control
|ICSP||PIC device comparison|
|Debugging Techniques||Using PIC I/O : TRIS, PORT|
|PIC Timer overview||Crystal ppm calculations|
|I/O Expansion techniques||Interactive Timer 0 calculator|
|PIC Programmers||Interactive Timer 1 calculator|
|Interactive Timer 2 calculator|
|Switch debouncing||Setting up RS232|
|12F675 : Setting OSCCAL in C||12F675 :Recovering lost calibration|
|Use the voltage reference
as a DAC
|Soft USART (TX) (TX details)||Soft USART (RX/TX) (RX details)|
|Using fixed point maths|
|Prototyping||Electronic schematic symbols|
|Using an oscilloscope||PWM|
|I2C||RS232||Setting up RS232|
|Frequency counting||Ultrasonic range finding||Software Tri PWM|
|Multiplexing||CCP (capture)||Soft PWM|
|Timer 1 (polled)|
All about programming PIC Microcontrollers.
PIC micro programming methods.
counter techniques: Direct and Reciprocal counting
Simple multitasking method (works for 12F675 and larger).
Microcontroller Debugging methods (also general debugging methods).
Hardware interrupts - a short introduction.
How to use the MC78M05BDTRKG
A new C course showing you how to use C to program a
previous programming experience needed).
C Course (digital
Have your say about what you just read! Leave me a comment in the box below.
Don’t see the comments box? Log in to your Facebook account, give Facebook consent, then return to this page and refresh it.