0 / 0 done

Wetbulb Rack Wiring

Do one step at a time and tick it off when it's done. Your progress is saved.

+ rail (red) โˆ’ rail (blue) Arduino pin nothing
โš ๏ธ
Unplug everything before you start. No USB cables plugged in while you wire.
๐ŸŽ‰ All done! Your rack is wired and tested.
1

Power (HW-131)

The HW-131 powers the breadboard from a USB port. The Arduino gets power from the laptop.

Which rail is "top" and which is "bottom"?
โ–ฒ TOP rails (far edge): screen, sensor, joystick โ–ผ BOTTOM rails (edge nearest you): fan motor ONLY ๐Ÿง you sit here + โˆ’ middle: parts plug in here โˆ’ + USB HW-131 5V 5V
  • 1Lay the breadboard flat in front of you, long side going left to right.
  • 2The 2 rails along the far edge (away from you) are the TOP rails.
  • 3The 2 rails along the edge closest to you are the BOTTOM rails.
  • 4Each edge has one + red line and one โˆ’ blue line. Use the lines printed on your board.
  • 5The HW-131 sits on one end and plugs into all 4 rails at once.
Easy trick: stick a bit of tape on the far edge that says LOGIC and on the near edge that says MOTOR. Don't turn the board around after that.
Look for a gap: on some long breadboards the red/blue lines have a break halfway along. That means the rail is cut in two. If yours has a break, add a short jumper wire across the gap on each of the 4 rails.
Remember: Top rails are for the screen, sensor and joystick. Bottom rails are only for the fan motor. This stops the motor messing up the screen.
2

Temp Sensor (DHT11)

Plug it straight into the breadboard, then run 3 short wires.

How it looks (close-up of the top half)
+ โˆ’ 891011121314151617 abcde (middle gap โ†’ bottom half below) DHT11 (grid facing you) +Sโˆ’ to Arduino D7 โ†’ โ† each column of 5 holes is joined inside the board
Why this works: the 5 holes in each column (aโ€“e) are joined inside the board. Put a wire in any free hole in the same column as a pin and it's connected to that pin. Never put two sensor pins in the same column.
Bare blue sensor with 4 legs (no little board)? Push all 4 legs into 4 columns. Left to right (grid facing you): VCC, DATA, unused, GND. Then push a 10 kฮฉ resistor across, with one leg in the VCC column and one leg in the DATA column. Nothing goes in the "unused" column.
3

Screen (LCD with 4-pin I2C board)

Your screen has a small board on the back with 4 pins. Only 4 wires!

Easiest way: use female-to-male jumper wires. The female end slides onto the LCD pin, and the male end goes into the rail or Arduino.
Can't see A4 / A5? They're on the Arduino's analog row, next to A0โ€“A3. (The SDA and SCL pins next to AREF, at the end of the digital row, are the same pins, so either spot works.)
The code must use the I2C screen. The old code was written for the 16-pin screen. It needs the LiquidCrystal I2C library (see Step 7). Contrast is now set with the small blue knob on the back of the LCD, not the joystick.
4

Fan Motor + ULN2003

Use the bottom rails only. Ground is already done โ€” just connect the ULN2003 and fan.

โœ“
Ground is already connected! Your bottom โˆ’ rail already has ground from Step 1 (and Board โˆ’ is on it). You only need to plug in these remaining wires for the ULN2003 and fan:
How to connect the ULN2003 (bottom rails)
โˆ’ + BOTTOM โˆ’ RAIL (GND) BOTTOM + RAIL (+5V) Arduino Pin D9 ULN2003 DRIVER WHITE SOCKET A B C D IN1 IN2 IN3 IN4 โˆ’ + Fan Motor GND (already done)

Board has 4 little LEDs and a white 5-hole socket. Only 4 connections needed:

Finding the right socket hole: after you upload the code, press the Arduino's RESET button. The motor will spin for ~1 second and LED A lights up. If it doesn't spin, move wire 2 into the next hole and press RESET again.

16 legs. Notch at the top. Pin 1 is top-left.

ULN2003 gets hot or the motor is weak? Also connect IN2 to D9, and OUT2 (chip pin 15, or the next socket hole) to motor wire 2. Now two channels share the load.
The HW-095 isn't used.
5

Joystick (5 pins)

5 wires.

6

Turn On (order matters!)

The HW-131 always goes first.

Why? If the Arduino starts first, the screen has no power yet and shows garbage. Fix: press RESET.
7

Upload the Code

In the Arduino IDE.

8

Testing & Results Checklist

Run these 7 quick tests. Each step tells you what to do and what you should see happen.

?

Something Wrong?

Tap a problem to see the fix.

Screen is blank or shows solid boxes
  1. Press RESET on the Arduino.
  2. Turn the small blue knob on the back of the LCD slowly all the way one way, then the other. The text usually appears somewhere in the middle.
  3. Check SDA is on A4 and SCL is on A5 (not swapped).
  4. Still nothing? Your screen's address may be 0x3F instead of 0x27. Change it in the code and upload again.
Screen goes crazy when the motor starts
  1. Make sure the motor is only on the bottom rails.
  2. If you have a small 0.1 ยตF capacitor, put it across the motor's 2 wires.
Backlight is off
  1. There's a small jumper on the end of the LCD's back board. Make sure it's pushed on.
  2. Check GND and VCC go to the top rails and the HW-131 is on.
Screen says SENSOR? or CHECK D7
  1. The sensor DATA wire isn't on D7. Move it.
  2. Bare 4-pin sensor? It needs the 10 kฮฉ resistor.
Motor hums or twitches but won't spin
  1. At the top of the code, change MIN_RUN_PWM from 90 to 140.
  2. Upload again.
Motor never spins
  1. Is the HW-131 on? (LED lit)
  2. Are both jumpers on 5V?
  3. Is the top โˆ’ rail joined to the bottom โˆ’ rail, and is Arduino GND on the โˆ’ rail?
  4. Driver board: try motor wire 2 in a different socket hole.
Nothing works and the HW-131 LED is off
  1. Press the HW-131's power button.
  2. The USB port may be too weak. Try a different USB port or a phone charger.
Joystick directions are backwards
  1. At the top of the code, set FLIP_X, FLIP_Y or SWAP_XY to true.
  2. Upload again.