topbanner.gif
Login
Username

Password




Not a member yet?
Click here to register.

Forgotten your password?
Request a new one here.
Shoutbox
You must login to post a message.

renatoa
11/24/2022 8:17 AM
Trick or... crack... er... Grin

allenb
11/24/2022 8:12 AM
Happy Thanksgiving to all

renatoa
11/23/2022 3:28 AM
Birdman and dpineau coffee drink

allenb
11/21/2022 5:46 PM
lig76ct Welcome

Rich Saurman
11/21/2022 5:22 PM
Hi! New member starting with SR540. I am brand new and slowly getting better results with this roaster. I am interested in any roasting pointers.

In Memory Of Ginny
Donations

Latest Donations
dmccallum - 10.00
JackH - 25.00
snwcmpr - 10.00
Anonymous - 2.00
Anonymous - 5.00
Users Online
Guests Online: 11

Members Online: 0

Total Members: 7,717
Newest Member: dpineau

View Thread

Who is here? 1 guest(s)
 Print Thread
Arduino - TC4+ - SSR issues
progen
I'm hoping to be able to have my home built fluid bedder PID controller and following a background curve one day but am currently using a pot to the TC4+ - Arduino. It works fine. Artisan shows pot position properly but at 50% physical pot position onwards, it's at full power at the heater and this is reflected on the ammeter. Artisan shows pot input as 50 though but heater is running at max.

Where should I start checking?
 
renatoa
Is your pot linear ?
If using a logarithmic pot, could exhibit weird behavior, like you describe.
How to check this:
- look on the pot engraving, for A(lin) or B(log) letter placed somewhere, like the A in the attached image
- if no A or B, measure the resistance when cursor is in the middle, if you read aprox equal values, you are good, is linear, if heavily unbalanced, about 1/4 ratio, then it is log.

Any custom values for MIN/MAX_OT1 ?
???
 
progen

Quote

renatoa wrote:

Is your pot linear ?
If using a logarithmic pot, could exhibit weird behavior, like you describe.
How to check this:
- look on the pot engraving, for A(lin) or B(log) letter placed somewhere, like the A in the attached image
- if no A or B, measure the resistance when cursor is in the middle, if you read aprox equal values, you are good, is linear, if heavily unbalanced, about 1/4 ratio, then it is log.

Any custom values for MIN/MAX_OT1 ?
???


It's renatoa to the rescue again. ? I forgot about the A and B thing. Didn't think of it since Artisan was showing a linear response to the pot position. It's a B by the way.

I suppose I can set maximum power in the sketch or Artisan to around 50 and see whether I can get full travel of the pot.
 
renatoa
You can linearize it a bit, by placing a shunt resistor on the "heavy" side of the pot, as in the attached picture.

By heavy I mean the higher resistance half of the pot.
Place the cursor in the middle, measure from cursor (middle) to the left/right connections.
You should find about 1/5 of the pot value on left half and 4/5 on right half. That is the heavy side where you should place the resistor.
If plot the result, will be somewhat like a S shaped line, closer to a straight line than the log graph, with 50% in the middle.
~~~
 
progen
Thanks again renatoa. Rotary encoders are USD1 - 1.50 in my country
Would one of those be better?
Edited by progen on 11/16/2022 11:21 AM
 
renatoa
Depends on the scenario you are intending to use them and what rotary thing do you mean...
If we are talking about TC4 setup, and you want to use a rotary encoder instead the analogue pot, then you have no support for those kind of digital rotary encoders that sends up/down pulses... I mean those like the middle wheel of a mouse.
What you can use in a TC4 a decade switch, combined with a resistor array, to simulate pot fixed positions. Like the attached image.

As ergonomy of operation, generally speaking, if the process you are controlling don't offer any kind of feedback of dialed value then a digital input is better than an analogue input method, because dialing a number is always easier and 100% precise, than trying to hunt a pot position.
Is the case of the popular SCR power variator that can be found in either pot or digital version on Amazon.

But, when you have a feedback of the desired value on a display, as in TC4, then the pot approach becomes valuable when you need faster reaction, for example instant heat cutting, which could be more difficult to do with a 2 digits switch than a pot movement.
~~~
Edited by renatoa on 11/17/2022 1:41 PM
 
progen
Thanks again and again. If only you were in my country.

 
progen
i.ibb.co/wsGpQB2/54860d4c22c6a3a1207d6ba721916fbe.jpg

The one I got yesterday was this one.

This rotary encoder, is an incremental electro-mechanical device that converts the angular position or motion of a shaft or axle to digital code. The output of incremental encoders provides information about the motion of the shaft, which is typically further processed in processor / controllers into information such as speed, distance, and position.

Technical Specifications

- Model: KY-040
- Type: Incremental Encoder
- Cycles per revolution (CPR): 30
- Working voltage: 0 - 5V
- Material: PCB + Brass
 
renatoa
Well, this is what I wrote as lacking support from TC4... as I type Grin

Public libraries are available, we can discuss about a custom version to replace analog pots with this encoder, if interested.
 
progen

Quote

renatoa wrote:

Well, this is what I wrote as lacking support from TC4... as I type Grin

Public libraries are available, we can discuss about a custom version to replace analog pots with this encoder, if interested.


This was the code supplied by the seller. Can I just copy and paste into the aArtisan sketch?

Quote

#define SW 5 //define pins and variables
#define CLK 6
#define DT 7
int counter = 0;
int CLKState;
int CLKLastState;
void setup() {
pinMode (CLK,INPUT);
pinMode (DT,INPUT);
pinMode (SW,INPUT_PULLUP);

Serial.begin (9600);
// Reads the initial state of the CLK
CLKLastState = digitalRead(CLK);
}
void loop() {
CLKState = digitalRead(CLK); // Reads the "current" state of the CLK
// If the previous and the current state of the CLK are different, that means a Pulse has occured
if (CLKState != CLKLastState){
// If the DT state is different to the CLK state, that means the encoder is rotating clockwise
if (digitalRead(DT) != CLKState) {
counter ++;
} else {
counter --;
}
Serial.print("Position: "); //one cycle equals to 30 increment
Serial.print(counter*(360/30)); //convert the incremental value into degree
Serial.println(" deg");
}
CLKLastState = CLKState; // Updates the previous state of the CLK with the current state
if(digitalRead(SW) == LOW) //reset to 0 deg when the encoder is pressed
counter = 0;

}
 
renatoa
First you should check the pins 5-6-7 are free, non used...

Then... merge this code with actual code, that is not just a copy-paste job... should be synced with actual buttons check...
Give me a breath for something more relevant...
 
progen
The encoder should be arriving in a day or two. Do I copy and paste the code into a new text file, give it a name and then include it in the main sketch?

I wonder whether anyone knows which pins does the TC4+ uses to communicate with the Arduino.
 
renatoa
Sent the code yesterday, check your inbox here.

Quote

Do I copy and paste the code into a new text file, give it a name and then include it in the main sketch?


Definitely not that simple...
For example an Arduino program can't have multiple setup() and loop() functions.
The sample code sent by seller have to be merged with existing code of other project.

TC4+ communicate via USB, i.e. serial line, having dedicated pins, not interfering with those used by encoder.
Seems like 5-6-7 from the sample are unused in TC4.
 
progen

Quote

renatoa wrote:

Sent the code yesterday, check your inbox here.

Definitely not that simple...
For example an Arduino program can't have multiple setup() and loop() functions.
The sample code sent by seller have to be merged with existing code of other project.

TC4+ communicate via USB, i.e. serial line, having dedicated pins, not interfering with those used by encoder.
Seems like 5-6-7 from the sample are unused in TC4.


The Chinese believe that when a person keeps helping you, that person must have owed you a great deal in a previous life. ?
 
renatoa
Next life probably will be a cat Grin
 
progen

Quote

renatoa wrote:

Next life probably will be a cat Grin


Then it'll be my turn to be the slave again.
 
Jump to Forum:

Similar Threads

Thread Forum Replies Last Post
Signal cable lengths to / fro to Arduino / TC4+ Dataloggers/Controllers/Rate of Rise Meters 3 08/04/2022 1:32 PM
TC4+ Arduino coffee roaster shield (TC4-compatible) Dataloggers/Controllers/Rate of Rise Meters 247 05/18/2022 1:38 PM
TC4 - Coding and tech issues Dataloggers/Controllers/Rate of Rise Meters 323 05/03/2022 7:36 AM
TC4 Arduino could not set channels@line 5357 Dataloggers/Controllers/Rate of Rise Meters 3 01/25/2022 6:13 PM
Testing Arduino UNO with bitwisetech / popc and MAX6675 Popcorn Popper roasting 70 12/05/2021 8:31 AM
Homeroasters Association Logo, and all Content, Images, and Icons © 2005-2016 Homeroasters Association - Logos are the property of their respective owners.
Powered by PHP-Fusion Copyright © 2022 PHP-Fusion Inc
Released as free software without warranties under GNU Affero GPL v3
Designed with by NetriX
Hosted by skpacman