{{ message }}

# chopsuey5000 / Heat-controlling-circuit-for-thermochromic-pigments

Heat controlling circuit for thermochromic pigments

## Files

Failed to load latest commit information.
Type
Name
Commit time

# Heat-controlling-circuit-for-thermochromic-pigments

## Overview

Thermochromic inks are pigments that change color to colorless at certain temperature. There are many different types of thermochromic pigments including textile inks for textile screen printing.

You may use any heat source or your body heat to change the color of thermochromic prints. But also, we can use electricity to heat up certain parts of the fabric to achieve dynamic pattern on fabric. When large current goes through low resistance conductive material, it emits heat. We can use this method to heat up conductive threads to change colors of the prints.

## Calculations

All conductive threads have different properties, the resistance per meter is different in all of them. The ideal conductive threads to build a heating source are made of steel or copper.

Some recommended conductive threads like Bekinox stainless steel thread from Bekaert or Copper thread from KarlGrimm.

The best scenario would be to have a 6-50 Ohm conductive thread with a current of 300-1000 mA flowing through it. The time the thermochromic ink takes to change its color is directly proportional to the amount of current. For 300mA it will need more time than for 1000mA.

To calculate the voltage we just need to use ohm's law formula:

Voltage equals Current times Resistance or V = I x R

We know our conductive thread resistance(measured with the multimeter), for example 32 ohm, the current has to be a value from 300mA to 1000mA.

For 300mA:

V = 0,3 * 32 => V = 9,6V

For 1000mA:

V = 1 * 32 => V = 32V

## One conductive thread test circuit

### Materials

• Arduino UNO board
• Transistor, TIP122 or IRLZ24N or IRLB8743
• Jumper wires
• Protoboard
• Variable DC power supply

### Code - view

```int btnPin = 7;
int mosfetPin = 9;

void setup() {
// put your setup code here, to run once:
pinMode(btnPin,INPUT_PULLUP);
pinMode(mosfetPin,OUTPUT);
Serial.begin(9600);
}

void loop() {
// put your main code here, to run repeatedly:
int btnState = digitalRead(btnPin); //reads a stores button state
if(btnState==LOW){
//button is pressed, so START heating up the conductive thread
digitalWrite(mosfetPin,HIGH);
}else{
//button is released, so STOP heating up the conductive thread
digitalWrite(mosfetPin,LOW);
}
}```

## Multiple conductive threads circuit

### Materials

• Arduino MKR1000
• 8x Transistor BC817
• 8x Conductive thread

### PCB

schematic & board design files

### Code - view

```#define numStrings 8

int actualString = 0;
int actualTime;
int intervalON = 8000;
int intervalOFF = 10000;
boolean state = 0;

const int pins[numStrings] = {
9,8,7,6,5,4,3,2
};

const int timeON[numStrings] = {
7000,9000,10000,10000,5000,6500,8000,10000
};

void setup() {
// put your setup code here, to run once:
Serial.begin(9600);

for(int i=0;i<numStrings;i++){
pinMode(pins[i],OUTPUT);
}

actualTime = millis();

}

void loop() {
// put your main code here, to run repeatedly:
if(state==0 && millis()<(actualTime+timeON[actualString]))
{
int left = (actualTime+timeON[actualString])-millis();
Serial.print("ON ");
Serial.print(" : ");
Serial.print(actualString);
Serial.print(" : ");
Serial.println(left);
analogWrite(pins[actualString],255);
}else if (state==0 && millis()>(actualTime+intervalON)){
actualTime = millis();
state=1;
}

if(state==1 && millis()<(actualTime+intervalOFF))
{
int left = (actualTime+intervalOFF)-millis();
Serial.print("OFF ");
Serial.print(" : ");
Serial.print(actualString);
Serial.print(" : ");
Serial.println(left);
analogWrite(pins[actualString],0);
}else if (state==1 && millis()>(actualTime+intervalOFF)){
actualTime = millis();
state=0;
actualString++;
if(actualString>=8){
actualString=0;
Serial.println("stop");
delay(10000);
}
}
}```
``````

``````

Heat controlling circuit for thermochromic pigments

## Releases

No releases published

## Packages 0

No packages published

## Languages

You can’t perform that action at this time.