PLEX Controller

https://github.com/tinkersprojects/PLEX
Product: https://www.tindie.com/products/williambailes/plex-controller/

PLEX is a development board using the Arduino UNO bootloader to be easily programmed by the Arduino IDE. The board has many selectable analog inputs and digital output (up to 32, not including LCD interface). The board was originally designed for one project but has been used in many other projects that require a fast and simple solution. The PLEX board is the same dimensions as a 16×2 LCD and simply attaches to one.
32 Inputs and Outputs
The board has up to 32 selectable analog inputs and digital outputs not including connections to the LCD.
Micro SD Storage
By decreasing the inputs and outputs from 32 to 16 will allow the SD storage to be used. This can be used for controlling, data logging or any other function.
5V and 3.3V regulation
Most Arduino devices use either 5V or 3.3V to power them and this board can deliver this power to them. The board can regulate up to 12V down to 5V and 3.3V.
LCD Display
This board is the same dimensions as a 16×2 LCD and attaches seamlessly to the back of it.
Micro USB interface
The Micro USB can be used to program the Atmega328 microcontroller with the Arduino IDE. It can also be used for debugging and other serial functions
Arduino UNO bootloader
By using the Arduino UNO bootloader, the controller can be programmed using the Arduino IDE. This makes it easy to program, debug and make anything.

buy now

Projects

These are some of the projects that use the PLEX controller

DMX Light

This controller allows the setting for the light to be changed and set. The light has different modes including colour fading, colour stepping, solid colour and DMX.
https://www.tinkersprojects.com/project/dmx-light/

3D Printed Ball Mill

This ball mill was made for grinding sand and cleaning objects like rusty bolts.
https://www.tinkersprojects.com/project/3d-printed-ball-mill/

2 in 1 spinner from HDD

This is a spinner that uses parts from HDDs, coating PCBs or other flat things in a somewhat even coat of liquid. It is also can be used as a magnetic stirrer by using the magnet from the HDD. The unit uses the brushless motor from HDD to spin the disk. Since the unit does not need to have a lot of torque, this motor is perfect as it can spin at high speeds (depends on the motor driver and HDD type).
https://www.tinkersprojects.com/project/2-1-spinner-hdd/

DMX Controller

This DMX controller to made to control stage/party lights through the DMX signal. This DMX signal is widely used for stage lighting systems at festival and clubs.
https://www.tinkersprojects.com/project/dmx-controller/
https://www.tinkersprojects.com/project/dmx-controller-mk2/

Solar Pool Heating Controller

This is a controller to control the pool solar heater. Timers and temperatures can be set to control the temperature of the pool.
https://www.tinkersprojects.com/project/solar-pool-heating-controller/

Temperature Logger

This is a temperature logger to log the temperature over time. It uses a DS18B20 temperature sensor to get the temperature. The data from the sensor is logged every second and Additional sensors can be added.
https://www.tinkersprojects.com/project/temperature-logger/

Compressor Controller

On the controller, the pressure can be set and the pump will shut off when it needs to. The pump will then start again when the pressure is 10% less than the set pressure.
https://www.tinkersprojects.com/project/compressor-module/

CNC Plasma Cutter

On the controller, the pressure can be set and the pump will shut off when it needs to. The pump will then start again when the pressure is 10% less than the set pressure.
https://www.tinkersprojects.com/project/plasma-cutter/

And More

https://www.tinkersprojects.com/project_category/plex/

Code for Project

GNU General Public License v3.0

#include <Plex.h>

Plex PLEX;      // setup plex 

void setup() 
{
    
}

void loop() 
{
    for (int i=0; i < 8; i++)
    {
        int ValueA = PLEX.analogReadA(i);    // read A at index i (e.g. A0, A1,...,A7)
        int ValueB = PLEX.analogReadB(i);    // read B at index i (e.g. B0, B1,...,B7)
        int ValueC = PLEX.analogReadC(i);    // read C at index i (e.g. C0, C1,...,C7)
        int ValueD = PLEX.analogReadD(i);    // read D at index i (e.g. D0, D1,...,D7)
        display('A', i, ValueA);        // display value.  see void display(char letter, int index, int Value) line 25
        display('B', i, ValueB);        // display value.  see void display(char letter, int index, int Value) line 25
        display('C', i, ValueC);        // display value.  see void display(char letter, int index, int Value) line 25
        display('D', i, ValueD);        // display value.  see void display(char letter, int index, int Value) line 25 
    }
}

void display(char letter, int index, int Value)
{
    PLEX.lcd.clear();               // clearing LCD
    PLEX.lcd.print("Reading: ");    // print "Reading: " to LCD
    PLEX.lcd.print(letter);         // Print the letter of input to screen
    PLEX.lcd.print(index);          // Print the number/index of input to screen
    PLEX.lcd.setCursor(0, 1);       // start printing on second line
    PLEX.lcd.print("Value: ");      // print "Value: " to LCD
    PLEX.lcd.print(Value);          // Print the value of input to screen
    delay(3000);                    // will display for 3 seconds before changing 
}

Latest Projects

Popular Projects