This page gives you easy access to all the information on the site.
Magnetometer 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 digital (I2C)
Current meter; Measuring current and power used. This is for low volt
systems <=26V but gives highly accurate current voltage and power
measurements.
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.
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 8 bit ADC which 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.
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!
Arduino Joystick - Making the joystick easy to use with a useful library.
MAX6675 - How to measure temperature from 0°C to 1024°C
Logic level converter - How to convert logic levels using a MOSFET Trick!
SSD1306 - How to write text and graphics to this 1" display.
Three switch debouncing methods on Arduino : One is amazing!
Arduino 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?
Arduino voltage reference - The internal voltage reference is often overlooked.
Find out how to use it and make it accurate and reliable.
Arduino Analog Output - How to smooth PWM signals and create sine waves.
Arduino EEPROM - How to read and write EEPROM.
EEPROM has a lifetime - make sure you don't use it up all at once!
Arduino Nano ISP - How to burn a
bear-board Arduino using an Arduino Nano. You end up
with about 4 components - just use a USB to serial adaptor and a 5V
power supply.
Arduino delay() - How to delay the processor so a human can see events!
Arduino millis() - Time events using milliseconds without stopping the processor.
Its a useful
timer but there's a little bit of interesting code in its operation
that makes it skip a beat sometimes? Should you worry about this?
Arduino pulseIn() and pulseInLong() - How to measure pulse inputs.
One of these MUST be used with interrupts turned ON.
One of these MUST be used with interrupts turned OFF.
Do you know which?
Arduino digitalWrite() - How to write a binary signal to the 0-5V output pin.
digitalWrite
is a very useful generic function but you can operate 17 times faster
using direct write macros - all explained in the link above
What is the difference in using a String object and using c strings?
Should you use String at all? Memory fragmentation can occur.
Find out about these issues in the link above.
ESP8266 Arduino IDE - Learn how to program an ESP8266 using the Arduno IDE.
NodeMCU Firmware - Return the LUA scripting language back into an ESP8266.
ESPLorer - How to use ESPLorer to upload lua scripts to an ESP module.
NodeMCU Examples - from simple LED blink to wifi use.
PIC Introduction - An introduction to PIC
Microcontrollers.
PIC Programming - All about programmers, ICSP and
ICPROG
PIC Compilers - Find out why you should use a PIC compiler.
Basic compiler - learn about a free PICBSIC compiler.
PIC Tutorials - More formal tutorial information on microcontrollers and protocols.
Schematic 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 transmitter12F675 : Serial Temperature Logger
12F675 : EEPROM Temperature logger
12F675 : Servo motor - serial control
Devices | ||
12F675 | 16F84 | |
Hardware | ||
PIC Introduction | ICSP | Interrupts |
Software | ||
MikroC compiler | ||
Protocols | ||
I2C | RS232 | Setting up RS232 |
SPI | ||
Techniques | ||
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.
Frequency
counter techniques: Direct and Reciprocal counting methods.
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 voltage regulator.
A new C course showing you how to use C to program a microcontroller (no
previous programming experience needed).
Pic C Course (digital download).
Arduino oversampling is a technique to increase ADC resolution by reading more samples then decimating. It really does work!
A tutorial on using the ADS1115 precision 16 bit ADC for low power use.
Arduino Analog Output: How to create the most accurate PWM analog ouput and how to create analog PWM sine waves.
Find out how digitalWrite() works...Now use 17x Faster macros!
How to use the TCS230 (/TCS3200) Color detector chip and easily add it to any of your projects.
With the ADXL345 acellerometer you can detect up to 16g! You can also find out how to use it for tap detection and more.
New! Comments
Have your say about what you just read! Leave me a comment in the box below.