Mold machine (whis Arduino and Nextion) Help!

Good afternoon dear friends.
Now I’m creating a thermoplastic automatic machine. On the basis of arduino. At this stage, the temperature is adjusted to the display. It remains to make the control of the cycle of stepper motors. And then I had problems.

I make an exact copy of this machine.

It is necessary to help refine the code for a cycle of stepper motors.
Everything is like on a video !! 1 closing, 2 flow of plastic, 3 opening.
And again in a circle. With the possibility of adjusting the parameters.

#include <AccelStepper.h>

AccelStepper Xaxis(1, 9, 8); // pin 9 pul- = step, pin 6 dir- = direction
//AccelStepper Yaxis(1, 4, 7); // pin 4 = step, pin 7 = direction
//AccelStepper Zaxis(1, 5, 9); // pin 5 = step, pin 8 = direction

int state;//0==running; 1==waiting
unsigned long timer;
const unsigned long delayTime = 1000;//1s wait
const long distance = 2000;//number of steps to move at a time

void setup() {
// Задаём максимальную скорость двигателя
Xaxis.setMaxSpeed(3000.0);
// Задаём ускорение двигателя
Xaxis.setAcceleration(6000.0);
// Установим скорость в шагах за секунду
// Xaxis.setSpeed(3200);
// Перемещаем в абсолютно указанное положение
Xaxis.moveTo(distance);
//Xaxis.setMaxSpeed(800);
// Xaxis.setMaxSpeed(20000.0);
// Xaxis.setAcceleration(15000.0);
// Xaxis.setSpeed(20000);
// Xaxis.moveTo(40000);
// Yaxis.setMaxSpeed(400);
//Zaxis.setMaxSpeed(400);
//Xaxis.setSpeed(3000);
// Yaxis.setSpeed(25);
// Zaxis.setSpeed(80);
}

void loop() { if(state == 0){//initial state == running
if(Xaxis.distanceToGo()==0){//steps reached
state = 1;//enter waiting state
timer = millis()+delayTime;
}//if(steps reached)
}else{//state == waiting
if(millis()>=timer){//check if delay time is reached
state = 0;//switch to running state
Xaxis.move(distance);//initiate move
}//if(delayTime)
}//statecheck
Xaxis.run();
}//loop()
/// if(Xaxis.distanceToGo()==0)
//timer = millis()+delayTime;
// Xaxis.moveTo(-Xaxis.currentPosition());
// delay(500);
// Xaxis.runToPosition();
//delay(5000);
// Yaxis.runSpeed();
// Zaxis.runSpeed();
//}

Temperature control code. for MAX6675
with display of data on the display

#include <Nextion.h>
#include <SoftwareSerial.h> // Переведено www.iarduino.ru
#include <max6675.h>
// Подключаем библиотеку max6675 для работы с датчиком температуры

const uint8_t thermoDO = 2; // Определяем константу с указанием № вывода Arduino к которому подключён вывод DO ( SO, MISO ) модуля на чипе MAX6675
const uint8_t thermoCS = 3; // Определяем константу с указанием № вывода Arduino к которому подключён вывод CS ( SS ) модуля на чипе MAX6675
const uint8_t thermoCLK = 4; // Определяем константу с указанием № вывода Arduino к которому подключён вывод CLK ( SCK ) модуля на чипе MAX6675
MAX6675 thermo(thermoCLK, thermoCS, thermoDO); // Объявляем объект thermo для работы с функциями и методами библиотеки MAX6675, указывая выводы ( CLK , CS , DO ) // Подключаем библиотеку max6675 для работы с датчиком температуры
const uint8_t thermoDO1 = 5; // Определяем константу с указанием № вывода Arduino к которому подключён вывод DO ( SO, MISO ) модуля на чипе MAX6675
const uint8_t thermoCS1 = 6; // Определяем константу с указанием № вывода Arduino к которому подключён вывод CS ( SS ) модуля на чипе MAX6675
const uint8_t thermoCLK1 = 7; // Определяем константу с указанием № вывода Arduino к которому подключён вывод CLK ( SCK ) модуля на чипе MAX6675
MAX6675 thermo1(thermoCLK1, thermoCS1, thermoDO1); // Объявляем объект thermo для работы с функциями и методами библиотеки MAX6675, указывая выводы ( CLK , CS , DO ) //

const uint8_t thermoDO4 = 11; // Определяем константу с указанием № вывода Arduino к которому подключён вывод DO ( SO, MISO ) модуля на чипе MAX6675
const uint8_t thermoCS4 = 12; // Определяем константу с указанием № вывода Arduino к которому подключён вывод CS ( SS ) модуля на чипе MAX6675
const uint8_t thermoCLK4 = 13; // Определяем константу с указанием № вывода Arduino к которому подключён вывод CLK ( SCK ) модуля на чипе MAX6675
MAX6675 thermo3(thermoCLK4, thermoCS4, thermoDO4); // Объявляем объект thermo для работы с функциями и методами библиотеки MAX6675, указывая выводы ( CLK , CS , DO ) //
int Relay = 8;
int Relay1 = 9;
int Relay2 = 10;
int a = 50;
int b = 200;
int c = 45;

SoftwareSerial nextion(A0, A1);// Nextion TX to pin 2 and RX to pin 3 of Arduino

Nextion myNextion(nextion, 9600); //create a Nextion object named myNextion using the nextion serial port @ 9600bps

void setup(){ //
Serial.begin(9600);
// Инициируем передачу данных в монитор последовательного порта на скорости 9600 бит/сек
//Serial.println(“Тест MAX6675”);
myNextion.init();
//delay(500);
pinMode(Relay, OUTPUT);
pinMode(Relay1, OUTPUT);
pinMode(Relay2, OUTPUT); // Ждём завершения переходных процессов датчика температуры после подачи питания
} //
//
void loop(){

float h = thermo.readCelsius();
float t = thermo1.readCelsius();
float y = thermo3.readCelsius();
myNextion.setComponentText(“t0”, String(t));
delay(300);

myNextion.setComponentText(“t1”, String(h));
delay(300);

myNextion.setComponentText(“t2”, String(y));
delay(300);

if (thermo.readCelsius() < a)
{digitalWrite(Relay, LOW);
myNextion.setComponentText(“t5”, String( “NAGREV” ));
delay(300);
}
else if(thermo.readCelsius ()> a)
{digitalWrite(Relay, HIGH);
myNextion.setComponentText(“t5”, String( “NORMA” ));
delay(300);
}

if (thermo1.readCelsius() < b)
{digitalWrite(Relay1, LOW);
myNextion.setComponentText(“t3”, String( “NAGREV” ));

}
else if(thermo1.readCelsius ()> b)
{digitalWrite(Relay1, HIGH);
myNextion.setComponentText(“t3”, String( “NORMA” ));
}

if (thermo3.readCelsius() < c)
{digitalWrite(Relay2, LOW);
myNextion.setComponentText(“t6”, String( “NAGREV” ));

}
else if(thermo3.readCelsius ()> c)
{digitalWrite(Relay2, HIGH);
myNextion.setComponentText(“t6”, String( “NORMA” ));
}

// Serial.print ( "Pervuy kontur = " ); //
// Serial.print ( thermo.readCelsius() ) ; // Выводим температуру в °C
// Serial.print ( " Vtoroy kontur = " );
//Serial.print ( thermo1.readCelsius() );
//Serial.print ( " Tretiy kontur = " );
//Serial.print ( thermo3.readCelsius() );
//Serial.println( “.” ); //
//delay(100);
String message = myNextion.listen(); //check for message
if(message != “”){ // if a message is received…
Serial.println(message); //…print it out
}

//digitalWrite(Relay, LOW); // реле включено

// Serial.print ( "C1 = " ); //
// Serial.print ( thermo1.readCelsius() ); // Выводим температуру в °C
// Serial.print ( ", F1 = " ); //
//Serial.print ( thermo1.readFahrenheit() ); // Выводим температуру в °F
//Serial.println( “.” ); //
// delay(1000); // Ждём 1 секунду
} //

termopara4.ino (6.62 KB)

steppr.ino (1.72 KB)

1 Like