Updated
10/31/2008

UPDATE
After receiving lots of requests I have added a
couple enhancements to the program to accommodate LED's or other
external connections. Ports 11 and 12 can now be connected to
a bright LED or small signal relay. It will supply up to 25ma
of power. Ports 13 and 14/15 can be connected to a LED or
Peizo (not both at same time).
Remote Connection
I have used 100' of telephone wire to remote both the
LED and Peizo and they work great.
Please note that you can not remote the sensor.
If you lengthen the wires it makes the sensor susceptible to noise
and will create false readings.
I have also added some new code to check for
misfires. I found that once you add a 10 or 20 foot remote the
sensor would pick up some interference. These were one shot
and very fast. In order to eliminate them I now check the
sensor 10 times at 50ms intervals. It has to have a good
reading all 10 times in order to fire. It works great!
As a woodworker with a central dust collections
system one thing I hate is when the main dust bin gets full.
When this happened the sawdust goes strait through to my filter
system and normally means completed disassembly of the system to
clean it all out.
I have experimented with many different ways to
detect when the bin is getting close but all seem to have there
problems. That's when I came up with this system.
Its a small sensor that sends out a pulse of IR light and measures
its reflected intensity. If there is nothing in front of the
sensor a maximum reading is returned by the sensor routines.
Once the dust gets within 1-3 inches of the sensor it starts to
return readings.
Originally I had used a rather loud siren but gave it
up for a couple of reasons. 1. Its hard to
overcome the noise of both the power tool and dust collection
system. 2. When the dust gets to flying inside the cyclone
dust bin I can get false readings while the collector is running.
For these reasons I decided on a more economical peizo beeper.
and while it may beep from time to time while the dust collector is
running if the bin is not full it will stop beeping once the
collector is shut down.
Building the monitor
You will need the following items to build the
monitor.
-
Dios Mini Ultra
-
Piezo Element
-
Right Angle Header
-
1 meg resistor
-
IR Edge Sensor Kit
-
AC Adapter
-
PC Cable
I will list the sources for the items at the end of
the project. For those of you that don't want to build the
unit or program a microcontroller I will also offer an assembled and
calibrated monitor mounted on a piece of pine.
The only soldering that needs to be done is on the
right angle header. There needs to be a small 1 mega ohm
resistor solder to it as shown.

The resistor get soldered between pins 1 and 5.
Note that if the monitor is too sensitive you may need to place two
resistors in parallel (one on top of the other).
The header gets plugged into the female connector of
the Ultra as shown. Note that the first two pins are skipped.
This puts pin 1 (The one with the resistor) into the

Plug the sensor connector into the
header as shown. The above image shows the connectors, header
and resistor to help clarify hookup.

The Piezo connects to ports 13 and
15. The small + on the piezo indicates the lead the
plugs into the port 15. Note that the pins will have to be
bent slightly to fit.
Next you will want to mount the Mini
Ultra on some sort of Base. This is real important if
your dust bin is metal.

Dusty Schematic
The Piezo/LED Connection and the Telephone Relay/LED
connections are toggle there polarity. This allows you to
connect the Piezo or LED in any direction and it will still work.
Its time to load the program into the Dios. To
so this connect the PC cable and power to the Mini Ultra and load
the following program.
Test Program (Download it
here)
func main()
dim sense1,x
PWMinit(1)
PWMcourse(2)
PWMperiod(147)
PWM1duty(147/2)
output 0,3,15,14,11
low 0,3,11
high 15,12,14
beepoff
loop:
beepoff
for x = 1 to 10
sense1 = checksensor(1,2) 'Output port, Input Port
if sense1 >= 400 then goto loop
pause 50
next
beepon()
goto loop
endfunc
'Pass the port numbers oport = output port, iport = input port
func checksensor(oport,iport)
dim stat,count
output oport
input iport
high oport
count = 0
loop:
stat = IOPORT(iport)
if count >500 then count = 500 : goto done
if stat = 0 then goto done
count = count + 1
goto loop
done:
low oport
exit count
endfunc
func beepon()
dim x
output 13,12
toggle 13,15,14
toggle 11,12
for x = 1 to 5
PWMperiod(147)
PWM1duty(147/2)
pause 100
PWMperiod(179)
PWM1duty(179/2)
pause 100
next
endfunc
func beepoff()
input 13
input 12
endfunc
include \lib\DiosHWPWM.lib
Once the program is loaded you can test the monitor by placing a
finger in front of the sensor. It should start to beep.
Also note that incandescent and halogen bulbs can also trigger the
sensor.
Mounting the Monitor
The actual mounting will depend on your container
type. I use a metal garbage can for mine.

You will have to punch/drill a hole into the top of the container.
The hole should be placed far enough from the side to keep the
sensor from detecting the side of the container. The hole
needs to be large enough for the white connector to fit through.
If the edge are sharp you should round or tape them off so they wont
damage or short the connector.
Run the white end of the connector up from the under
side of the lid. Use tape to seal the hole. I used
metal tape for mine. You can also use hot glue or caulk.
Make sure the sensor is pointing down.

The connector then plugs into the header as shown.
I attached my monitor to the lid with double sided foam tape.
Plug in the AC adapter and you are ready to go.
You can test the sensor by placing your finger in front of the
sensor. When ever you empty the bin just wipe the front of the
sensor off with your finger.
Parts
list
Dios 40 Pin Chip
Dios Carrier #4
Piezo Element
Right Angle Header
Opto Sensor Qty 2
1Meg Resistors (Bag
of 10)
100
Ohm Resistors (bag of 10)
Easy RS232 Driver
Dios 28 Pin Chip
Dios 32 Pin Carrier
(Carrier #1)
7.5V AC Adapter
9 Pin Cable
Breadboard and
Wire Kit
Breadboard
Regulator