Introduction: Resistor Storage Location System "Resys"
This is a system that makes it easy to find your resistors.
Search at desired value, and the right drawer lights up.
This system can be extended to desired numbers of drawers.
Step 1: Make the Circuit
Make the circuit on a double sided protype PCB
The cheap keypad has some internal resistans that is variable to column, temperature, humidity and how hard you press the buttons. so you will have to calibrate the buttons in the code.
I did not have an i2c lcd screen as intended for this project, so i had to make the keypad with the adc (analog input) due to gpio avaliable on the arduino nano.
Resistors between keypad connectors.
Pin 2-3 = 10k ohm
Pin 3-4 = 22k ohm
Pin 4-5 = 33k ohm
Pin 6-7 = 2.2k ohm
Pin 7-8 = 4.8k ohm
Pin 8-9 = 10k ohm
1 and 10 are not in use.
Pin 2 goes to 5V on the arduino bouard.
Pin 9 goes to A0 and 15k ohm to ground.
There should not be any connections between pin 5 and 6.
D7 on the arduino goes throu 330ohm and to the (data In) on the first led (second pin) on WS2812B
Ground to ground.
Leds 5v to Vin on arduino
You have to cut the leds induvidually and wire them up to a backplate, or how you desire to place the leds.
Remember to wire the leds in right direction, they have a input and output.
Follow the diagram.
The potmeter is only needed to adjust the contrast on the display.
You will only have to adjust it when input voltage i changed.
D10 to reset pin
Cut a usb cable and connect ground(black) to ground on arduino, and 5v(red) to Vin
Step 2: Files
This is a hobby project, im not a professonal coder.
Tips and tricks are welcome :)
Step 3: Program Arduino Nano
In Arduino IDE, click on the tab named sketch and click include library/Manage libraries.
Connect the arduino with USB
Choose the right com port, and upload the sketch.
Step 4: How to Use
Enter your value with digits
* is comma
# is reset system
A is ohm
B is K-ohm
C is M-ohm
D is restart digit
Step 5: How to Calibrate the Buttons
Uncomment "Serial.println(sensorValue);" (second line in loop)
Run your serialmonitor.
The buttons have a variable resistance due to how hard/gently you push the button.
Take notice of the top/low value for earch button in the serialmonitor.
Find buttons in the code.
The first number is "low" and the last is "high".
//**************************** Button 1 **************************
if((sensorValue > 387) && (sensorValue < 394) && delayrunning == false)
Change the numbers according your results.
You will get different numbers then in the code, dont let that frustrate you :)
Step 6: Extend the System for More Drawers.
For now, the system is made for 16 drawers.
You could extend it to as many you want.
Just be sure that the power supply can handle it.
To extend it you have to change the "#define NUM_LEDS 15" to desired number of drawer/leds.
It starts on 0, so subract 1 from your desired drawers/leds
"if((Sumtall > 6) && (Sumtall < 16))
leds = CRGB ( 255, 0, 255);
FastLED.show(); delay(300); }"
and plot your range per drawer.
Add one digit for each new drawer in "leds"
You can also change color of the leds if desired ( 255, 0, 255)
Step 7: Isolate Light for the Drawers.
Had some light leakage that made some problems.
I fixed this by adding some mirror tape on each drawer.
Tape where added on sides and bottom.
There is no need for mirrortape if you have a tape that does not let light through.
This fixed the problem :)