There are just 2 points of connection between the original board and the new bubble display board. A twin connector to the ground and 5V on the bottom right, and a triple for the data, clock and latch. Fortunately there were three unused outputs from the Nano with unused rails. That’s the 2nd red box at the top.

image

pwm-front

Well, rather than struggle with a tool not designed for the job, I threw away any thoughts of doing the stripboard in MS Word. Instead I downloaded the demo of a bit of prototyping software called LochMaster 4.0. It natively does stripboard, and you can even flip the board to see the solder points and cut strips underneath! I’ve now purchased the software, as I think it’s going to be pretty handy.

Anyway, this is the top of the board, the Vin of the Nano is bottom right. The power connection to the red and black rails on the right is 12V. The 5V green rail is taken FROM the Nano, you don’t supply it.

Additional parts :

  • C1 – 0.1 uF cap to make the 3.3V reference voltage smooth.
  • D1 – Small diode to prevent back EMF from the fan. A 4001.
  • D2 – Small 5V LED (this and the resistor are actually entirely unnecessary, as the on-board LED would probably be enough)
  • T1 – The transistor at the top is for switching the fan on and off. I think its a BC337

Regarding the pin strip headers, the top (4-way) is for the PWM fan. The S pin is the RPM pin, and the P pin is the PWM signal pin to the fan.

The bottom 3-way header is for the TMP36 thermistor. Since I wanted to have this at the end of a cable, so I could position it where I wanted, I made it a header.

pwm-back

This is the back of the board, showing the places where the strips need to be cut.

Code is to follow, when I’ve commented it and tidied it up. I’ll mark the Nano pins on my next project. You should be able to work it out from the circuit and the code though.

It’s done… The mighty Nano has been deployed in my TV cabinet, behind the Xbox One. The TMP36 thermistor is resting at the end of a cable on top of it. When the XB1 is turned on and the temp rises to 30 degrees, the fan kicks in, and will give a smooth stepping of speed up until 50 degrees, where the fan is maxed out. (I’m hoping I never get to this stage!!).

But, in the true spirit of tinkering, I’ve already got at least 3 improvements/changes that I want to put in to the next version!!

Firstly, the RPM calculation isn’t working properly, but that’s moot anyway, because I’ve got no way of showing what it is!

Secondly, the flashing LED is a bit pointless, because the on board one is bright enough, but in any case, it wouldn’t be needed if #1 is done.

Thirdly, I need to mount it properly, in a box.

..etc

Wow – of all the mistakes to make, I finished making the stripboard layout (again), cut all the holes, and went to put the Nano into the 2 female pin strips, and…

I’d cut the strips 1 hole too many !!! I think that I might be able to get away with it though, I might just be able to remount the 5V, GND and Vin lines which are the only ones used from the right hand side of the Nano…

Moral : measure 38 times, cut once…

I’ve done this before and obviously didnt learn my lesson. I copied the circuit onto the coppered side of the stripboard so I can mark the points to cut the tracks, and then did the cuts before I put the components on! But of course, when I turned the board over, its reversed everything!

Deep breath, and repeat: I’m a noob, I’m a noob…

I had to wait for the thermistor and other bits to arrive through the front door, so took some time to try and find some software to help mock up the stripboard layout. I found one for Windows 8.1, but its not perfect. I might just try to do it in Word or something. Anyway, the final bits arrived,  and got installed into the breadboard, and amazingly, it WORKS!

Functionally, I measure the temp every few seconds, and map anything between 30 and 50 degrees to a duty cycle of 90 to 255 PWM output. (90 is about the slowest this fan will go). I’ll document the code in another post, when I’ve got a circuit to show. I do a bit of a trick with the constrain statement to get the transistor to kick in.

Ok, my first project is a replacement for a previous gadget I’d knocked up to cool my devices under my TV, as they are in a new cabinet with very little vertical headroom.

The current one just adjusts the voltage to the 12v PC fan with the aid of a variable resistor, and a thermistor. Set to the right value, the voltage to the fan increases to its startup level when the temp goes a few degrees above ambient.

My brief for my Arduino powered one is to use a PWM fan, and adjusting the ‘duty cycle’ based on the analogue input from the thermistor. Also, I wanted to add an LED for feedback, and a transistor to turn off the fan completely when the temperature is around room temp.

As you can see, I’m not there yet. Stay tuned.