BS1 and pot command for a temperature controller
MrMark
Posts: 3
Hello all!
I am building a ice build/harvest controller for my ice maker. The current control uses a refrigerant filled sensing tube mounted to a bracket on the evaporator. The bracket attachment to the evaporator is a very poor design (it's soldered, not brazed, to the stainless evaporator). After numerous ice making cycles (about 4 years), the solder begins to cycle stress, crack and break. The bracket breaks away, and as a result, no ice sensing.
The sensing tube above drives a SPDT switch. One throw is the water pump and water valve, the other is a hot gas bypass solenoid.
So, I've built a controller using a BS1.
Pin0 has a 10k@0 degrees C thermistor tied to it, with .01 uF to ground or Vss.
Pin's 1 and 2 have logic triacs connected. Pin 1 is for the water pump and water valve, pin 2 drives a hot gas bypass solenoid. For my breadboard, I have LED's parralled with the logic lead of the triacs so I am not running 120 VAC on the breadboard, and I can watch what state the triacs would be in if they were truly driving their respective loads.
Pin 3 has a 10k pot with a .01 uF tied to it to ground.
I can scale the thermistor. I can scale the pot. I can scale the thermistor. But, when I run the program with Debug statements so I can watch the values for the pot and the thermistor, they interact. I warm the thermistor between my fingers and the pot value falls for Pin0, but the value also falls for Pin3, even though I am not touching or doing anything with the pot.
Here's a listing of my program -
' {$STAMP BS1}
DIRS = %00000110
SYMBOL Suction_Temp = PIN0 'Thermistor xx ohms +.01 mfd
SYMBOL Water_Pump = PIN1 'Triac for Water Pump/Cond Fan
SYMBOL Hot_Gas_Bypass = PIN2 'Triac for Hot Gas Bypass Solenoid
SYMBOL Thickness_Control = PIN3 'Front Panel Thickness Control - 10k ohms @ .01 mfd
'38 degrees F - Defrost complete
'10.5 +/- 4 degrees minimum thickness
'-3 +/- 2.5 degrees max thickness
SYMBOL End_Drop_Ice = 126
SYMBOL Actual_Temp = W1 'Am not sure about this designation. Have tried B0 through B10 also
SYMBOL Thickness_Setpoint=W2 'Am not sure about this designation. Have tried B0 through B11 also
'***********************************************************************************
Make_Ice:
LET Hot_Gas_Bypass=0
LET Water_Pump=1
Make_Ice_Continue:
POT PIN0,138,Actual_Temp
DEBUG Actual_Temp
PAUSE 1000
POT pin3,103,Thickness_Setpoint
DEBUG Thickness_Setpoint
IF Actual_Temp <= Thickness_Setpoint THEN Drop_Ice
PAUSE 1000
GOTO Make_Ice_Continue
'***********************************************************************************
Drop_Ice:
LET Water_Pump = 0
LET Hot_Gas_Bypass =1
Drop_Ice_Continue:
POT Suction_Temp,138,Actual_Temp
DEBUG Actual_Temp
PAUSE 1000
POT Thickness_Control,103,Thickness_Setpoint
DEBUG Thickness_Setpoint
IF Actual_Temp >= End_Drop_Ice THEN Make_Ice
PAUSE 1000
GOTO Drop_Ice_Continue
***********************************************************************************
I know there is a simple solution to this, but I am racking my brain to make this circuit work correctly. Am headed off for the afternoon, and hoping someone has a few minutes to look this over.
And thanks in advance to your thoughts!
I am building a ice build/harvest controller for my ice maker. The current control uses a refrigerant filled sensing tube mounted to a bracket on the evaporator. The bracket attachment to the evaporator is a very poor design (it's soldered, not brazed, to the stainless evaporator). After numerous ice making cycles (about 4 years), the solder begins to cycle stress, crack and break. The bracket breaks away, and as a result, no ice sensing.
The sensing tube above drives a SPDT switch. One throw is the water pump and water valve, the other is a hot gas bypass solenoid.
So, I've built a controller using a BS1.
Pin0 has a 10k@0 degrees C thermistor tied to it, with .01 uF to ground or Vss.
Pin's 1 and 2 have logic triacs connected. Pin 1 is for the water pump and water valve, pin 2 drives a hot gas bypass solenoid. For my breadboard, I have LED's parralled with the logic lead of the triacs so I am not running 120 VAC on the breadboard, and I can watch what state the triacs would be in if they were truly driving their respective loads.
Pin 3 has a 10k pot with a .01 uF tied to it to ground.
I can scale the thermistor. I can scale the pot. I can scale the thermistor. But, when I run the program with Debug statements so I can watch the values for the pot and the thermistor, they interact. I warm the thermistor between my fingers and the pot value falls for Pin0, but the value also falls for Pin3, even though I am not touching or doing anything with the pot.
Here's a listing of my program -
' {$STAMP BS1}
DIRS = %00000110
SYMBOL Suction_Temp = PIN0 'Thermistor xx ohms +.01 mfd
SYMBOL Water_Pump = PIN1 'Triac for Water Pump/Cond Fan
SYMBOL Hot_Gas_Bypass = PIN2 'Triac for Hot Gas Bypass Solenoid
SYMBOL Thickness_Control = PIN3 'Front Panel Thickness Control - 10k ohms @ .01 mfd
'38 degrees F - Defrost complete
'10.5 +/- 4 degrees minimum thickness
'-3 +/- 2.5 degrees max thickness
SYMBOL End_Drop_Ice = 126
SYMBOL Actual_Temp = W1 'Am not sure about this designation. Have tried B0 through B10 also
SYMBOL Thickness_Setpoint=W2 'Am not sure about this designation. Have tried B0 through B11 also
'***********************************************************************************
Make_Ice:
LET Hot_Gas_Bypass=0
LET Water_Pump=1
Make_Ice_Continue:
POT PIN0,138,Actual_Temp
DEBUG Actual_Temp
PAUSE 1000
POT pin3,103,Thickness_Setpoint
DEBUG Thickness_Setpoint
IF Actual_Temp <= Thickness_Setpoint THEN Drop_Ice
PAUSE 1000
GOTO Make_Ice_Continue
'***********************************************************************************
Drop_Ice:
LET Water_Pump = 0
LET Hot_Gas_Bypass =1
Drop_Ice_Continue:
POT Suction_Temp,138,Actual_Temp
DEBUG Actual_Temp
PAUSE 1000
POT Thickness_Control,103,Thickness_Setpoint
DEBUG Thickness_Setpoint
IF Actual_Temp >= End_Drop_Ice THEN Make_Ice
PAUSE 1000
GOTO Drop_Ice_Continue
***********************************************************************************
I know there is a simple solution to this, but I am racking my brain to make this circuit work correctly. Am headed off for the afternoon, and hoping someone has a few minutes to look this over.
And thanks in advance to your thoughts!
Comments
When I warm the thermistor up with my fingers, and reading the Debug values of Thickness_Setpoint and Actual_Temp (see program above), both of the values are changing at the same rate (i..e. the thermistor changes 20 points, the pot changes 20 points, thermisotr 35 points, pot 35 points, etc..). BUT, they are connected to different I/O pins (the thermistor at pin 0, the pot at pin 3.) Yet I am not doing anything to the pot.
Thanks for any help any of you can offer!