John L Errington MSc

Experiments with an Arduino microcontroller

These pages detail the progress of my experiments with various Arduino microcontrollers.

Driving LEDs: detailing how to choose a correct resistor value to limit current through the LED.

Digital inputs: Reading switches: Pull up, pull down and

Debouncing: digital signals from mechanical switches and buttons

Grounds: The importance of correct grounding and the effect of currents in ground connections

Useful Apps: Apps you will find useful in working with your Arduino and finding connection problems

 

Measuring voltages: using the analog input to get accurate readings of the input voltage

Arduino ADC: how it works and how to interpret the data to read a voltage

Better measurements: how multiple readings can give a more accurate result

Calibration: different ways to calibrate the ADC, and a sketch to do that for you

Using Op Amps: Just as transistors FETS and logic gates can give more scope to use digital inputs and outputs transistorsand "operational amplifiers" can bring more capability to analog inputs and outputs. This explains how to choose the right op amp for your project

Voltmeter and data logger: (Arduino MEGA + Ethernet shield) This project was to build a voltmeter to take accurate readings of voltage from the computer power supply connector, and store them onto an SD card. This device will allow soak testing of computer psu's with stored data available to investigate any faults.

Pulse Width Modulation: How it works, and controlling an LED or motor.

PWM DAC: using PWM for digital to analog conversion to give a smooth voltage

PWM Advanced: how to filter the PWM DAC to suit the required frequency and rise time

Characteristic tester: using a UNO to measure device characteristics: uses PWM, Analog inputs and Op Amps.

 

NodeMCU "Weather station", Network monitor and logger: (Lolin NodeMCU) Following issues with my internet connectivity I built this unit to ping a range of targets and show results plus record and store them over a long period. The "weather station" is a simple experiment using a BME (or BMP) 280 to learn about I2C, SPI and setting up a web server on the NodeMCU.

ESP32WROOM: introduction and getting it working with a display: plus a Web Connectivity Logger, and Solar Panel Data Logger.

Soil Moisture Meter: (Arduino NANO) I was not satisfied with readings from a simple probe, so developed this unit to give more accurate readings.

Heater controller: will use a light sensor (photoresistor or small solar panel) to determine the amount of sunlight present. If this is sufficient an optoisolated Solid State Relay will be energized to switch on the heater. Issues here concern preventing excessive switching, and ensuring the whole system is safe.

Motor control: examines DC motors commonly used in instrumentation, control and robotics, and provides circuit diagrams and examples of ways the Arduino microcontroller can be used to control them. I'll also look at a way of measuring the current flowing through the motor, although this technique can also be used in many other applications.

Keypress simulator: (Arduino Pro Micro 32U4) Development of a unit to simulate keyboard entry; also looking at program design methodology for the Arduino.

Measuring mass: - following the recent redefinition of important physics measurement units, <see more information here> a "proof of concept" experiment in measuring mass directly (ie not as weight).

Funduino Uno