Hi all
I am very new to Arduino and programming so I'm going one step at a time. I decided I wanted to do a project to control two stepper motors with a touch screen interface
It is proving to be a little challenging
I am using a Nextion display as the HMI - I'm hoping this will work out well in the long run
My question may be dumb so apologies in advance
I have downloaded my code to my Uno and it works in conjunction with button presses on the Nextion. If I power off the Uno and reconnect the power, the screen comes back on with the button presses no longer works
Could someone please let me know what needs to be done to remedy this
code as follows
#include "Nextion.h"
// defines pins numbers
const int stepPin = 53;
const int dirPin = 51;
const int enPin = 49;
//Page 0
NexButton buttonTest = NexButton(0, 3, "b0");
NexButton buttonJog = NexButton(0, 4, "b1");
NexButton buttonMoveDistance = NexButton(0, 5, "b2");
NexButton buttonFeedRate = NexButton(0, 6, "b3");
NexButton buttonStop0 = NexButton(0, 7, "b4");
//Page 1
NexButton buttonTestXaxis = NexButton(1,2,"b10");
NexButton buttonTestYaxis = NexButton(1,3,"b11");
NexButton buttonTestZaxis = NexButton(1,4,"b12");
NexButton buttonStop1 = NexButton(1,5,"b14");
NexButton buttonHome1 = NexButton(1,1,"b16");
//Page 2
NexButton buttonUp = NexButton(2,12,"b23");
NexButton buttonXaxis = NexButton(2,6,"b20");
NexButton buttonLeft = NexButton(2,13,"b25");
NexButton buttonYaxis = NexButton(2,7,"b21");
NexButton buttonRight = NexButton(2,14,"b26");
NexButton buttonZaxis = NexButton(2,5,"b22");
NexButton buttonDown = NexButton(2,15,"b27");
NexButton buttonStop2 = NexButton(2,11,"b24");
NexButton buttonHome2 = NexButton(2,10,"b28");
//Page 3
NexButton buttonXaxis3 = NexButton(3,1,"b51");
NexButton buttonYaxis3 = NexButton(3,2,"b52");
NexButton buttonZaxis3 = NexButton(3,3,"b50");
NexButton button1 = NexButton(3,5,"b31");
NexButton button2 = NexButton(3,6,"b32");
NexButton button3 = NexButton(3,7,"b33");
NexButton button4 = NexButton(3,8,"b34");
NexButton button5 = NexButton(3,9,"b35");
NexButton button6 = NexButton(3,10,"b36");
NexButton button7 = NexButton(3,11,"b37");
NexButton button8 = NexButton(3,12,"b38");
NexButton button9 = NexButton(3,13,"b39");
NexButton button0 = NexButton(3,14,"b40");
NexButton buttonDot = NexButton(3,15,"b41");
NexButton buttonPlusMinus = NexButton(3,16,"b42");
NexButton buttonEnter3 = NexButton(3,17,"b53");
NexButton buttonStop3 = NexButton(3,19,"b54");
NexButton buttonHome3 = NexButton(3,18,"b55");
//Page 4
NexButton buttonMSR = NexButton(4,1,"b43");
NexButton buttonMSF = NexButton(4,2,"b44");
NexButton buttonAR = NexButton(4,4,"b45");
NexButton buttonAF= NexButton(4,5,"b46");
NexButton buttonStop4 = NexButton(4,8,"b47");
NexButton buttonHome4 = NexButton(4,7,"b48");
/*
Register object textNumber, buttonPlus, buttonMinus, to the touch event list.
*/
NexTouch *nex_listen_list[] =
{
//Page 0
&buttonTest,
&buttonJog,
&buttonMoveDistance,
&buttonFeedRate,
&buttonStop0,
//Page 1 >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
&buttonTestXaxis,
&buttonTestYaxis,
&buttonTestZaxis,
&buttonStop1,
&buttonHome1,
//Page 2 >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
&buttonUp,
&buttonXaxis,
&buttonLeft,
&buttonYaxis,
&buttonRight,
&buttonZaxis,
&buttonDown,
&buttonStop2,
&buttonHome2,
//Page 3>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
&buttonXaxis3,
&buttonYaxis3,
&buttonZaxis3,
&button1,
&button2,
&button3,
&button4,
&button5,
&button6,
&button7,
&button8,
&button9,
&button0,
&buttonDot,
&buttonPlusMinus,
&buttonEnter3,
&buttonStop3,
&buttonHome3,
//Page 4 >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
&buttonMSR,
&buttonMSF,
&buttonAR,
&buttonAF,
&buttonStop4,
&buttonHome4,
NULL
};
/*
Button0 component pop callback function.
In this example,the value of the text component will plus one every time when button0 is released.
*/
//Page 0 >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
void buttonTestPopCallback(void *ptr)
{
dbSerialPrintln("Test");
digitalWrite(dirPin,HIGH); // Enables the motor to move in a particular direction
// Makes 200 pulses for making one full cycle rotation
for(int x = 0; x < 800; x++) {
digitalWrite(stepPin,HIGH);
delayMicroseconds(500);
digitalWrite(stepPin,LOW);
delayMicroseconds(500);
}
delay(1000); // One second delay
}
void buttonJogPopCallback(void *ptr)
{
dbSerialPrintln("Jog");
}
void buttonMoveDistancePopCallback(void *ptr)
{
dbSerialPrintln("Move Distance");
}
void buttonFeedRatePopCallback(void *ptr)
{
dbSerialPrintln("Feed Rate");
}
void buttonStop0PopCallback(void *ptr)
{
dbSerialPrintln("Stop 0");
}
//Page 1 >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
void buttonTestXaxisPopCallback(void *ptr)
{
dbSerialPrintln("Test X Axis");
}
void buttonTestYaxisPopCallback(void *ptr)
{
dbSerialPrintln("Test Y Axis");
}
void buttonTestZaxisPopCallback(void *ptr)
{
dbSerialPrintln("Test Z Axis");
}
void buttonStop1PopCallback(void *ptr)
{
dbSerialPrintln("Stop 1");
}
void buttonHome1PopCallback(void *ptr)
{
dbSerialPrintln("Home 1");
}
//Page 2 >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
void buttonUpPopCallback(void *ptr)
{
dbSerialPrintln("Up");
}
void buttonXaxisPopCallback(void *ptr)
{
dbSerialPrintln("X Axis");
}
void buttonYaxisPopCallback(void *ptr)
{
dbSerialPrintln("Y Axis");
}
void buttonZaxisPopCallback(void *ptr)
{
dbSerialPrintln("Z Axis");
}
void buttonLeftPopCallback(void *ptr)
{
dbSerialPrintln("Left");
}
void buttonRightPopCallback(void *ptr)
{
dbSerialPrintln("Right");
}
void buttonDownPopCallback(void *ptr)
{
dbSerialPrintln("Down");
}
void buttonStop2PopCallback(void *ptr)
{
dbSerialPrintln("Stop 2");
}
void buttonHome2PopCallback(void *ptr)
{
dbSerialPrintln("Home 2");
}
//Page 3 >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
void buttonXaxis3PopCallback(void *ptr)
{
dbSerialPrintln("X Axis 3");
}
void buttonYaxis3PopCallback(void *ptr)
{
dbSerialPrintln("Y Axis 3");
}
void buttonZaxis3PopCallback(void *ptr)
{
dbSerialPrintln("Z Axis 3");
}
void button1PopCallback(void *ptr)
{
dbSerialPrintln("1");
}
void button2PopCallback(void *ptr)
{
dbSerialPrintln("2");
}
void button3PopCallback(void *ptr)
{
dbSerialPrintln("3");
}
void button4PopCallback(void *ptr)
{
dbSerialPrintln("4");
}
void button5PopCallback(void *ptr)
{
dbSerialPrintln("5");
}
void button6PopCallback(void *ptr)
{
dbSerialPrintln("6");
}
void button7PopCallback(void *ptr)
{
dbSerialPrintln("7");
}
void button8PopCallback(void *ptr)
{
dbSerialPrintln("8");
}
void button9PopCallback(void *ptr)
{
dbSerialPrintln("9");
}
void button0PopCallback(void *ptr)
{
dbSerialPrintln("0");
}
void buttonDotPopCallback(void *ptr)
{
dbSerialPrintln(".");
}
void buttonPlusMinusPopCallback(void *ptr)
{
dbSerialPrintln("+/-");
}
void buttonEnter3PopCallback(void *ptr)
{
dbSerialPrintln("Enter 3");
}
void buttonStop3PopCallback(void *ptr)
{
dbSerialPrintln("Stop 3");
}
void buttonHome3PopCallback(void *ptr)
{
dbSerialPrintln("Home 3");
}
//Page 4 >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
void buttonMSRPopCallback(void *ptr)
{
dbSerialPrintln("Mild Steel Roughing");
}
void buttonMSFPopCallback(void *ptr)
{
dbSerialPrintln("Mild Steel Finishing");
}
void buttonARPopCallback(void *ptr)
{
dbSerialPrintln("Alloy Roughing");
}
void buttonAFPopCallback(void *ptr)
{
dbSerialPrintln("Alloy Finishing");
}
void buttonStop4PopCallback(void *ptr)
{
dbSerialPrintln("Stop 4");
}
void buttonHome4PopCallback(void *ptr)
{
dbSerialPrintln("Home 4");
}
//End >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
void setup(void)
{
/* Set the baudrate which is for debug and communicate with Nextion screen. */
nexInit();
pinMode(stepPin,OUTPUT);
pinMode(dirPin,OUTPUT);
pinMode(enPin,OUTPUT);
digitalWrite(enPin,LOW);
Serial.begin(9600);
Serial.println("Start");
//Page 0 >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
buttonTest.attachPush(buttonTestPopCallback);
buttonJog.attachPush(buttonJogPopCallback);
buttonMoveDistance.attachPush(buttonMoveDistancePopCallback);
buttonFeedRate.attachPush(buttonFeedRatePopCallback);
buttonStop0.attachPush(buttonStop0PopCallback);
//Page 1 >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
buttonTestXaxis.attachPush(buttonTestXaxisPopCallback);
buttonTestYaxis.attachPush(buttonTestYaxisPopCallback);
buttonTestZaxis.attachPush(buttonTestZaxisPopCallback);
buttonStop1.attachPush(buttonStop1PopCallback);
buttonHome1.attachPush(buttonHome1PopCallback);
//Page 2 >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
buttonUp.attachPush(buttonUpPopCallback);
buttonXaxis.attachPush(buttonXaxisPopCallback);
buttonYaxis.attachPush(buttonYaxisPopCallback);
buttonZaxis.attachPush(buttonZaxisPopCallback);
buttonLeft.attachPush(buttonLeftPopCallback);
buttonRight.attachPush(buttonRightPopCallback);
buttonDown.attachPush(buttonDownPopCallback);
buttonStop2.attachPush(buttonStop2PopCallback);
buttonHome2.attachPush(buttonHome2PopCallback);
//Page 3 >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
buttonXaxis3.attachPush(buttonXaxis3PopCallback);
buttonYaxis3.attachPush(buttonYaxis3PopCallback);
buttonZaxis3.attachPush(buttonZaxis3PopCallback);
button1.attachPush(button1PopCallback);
button2.attachPush(button2PopCallback);
button3.attachPush(button3PopCallback);
button4.attachPush(button4PopCallback);
button5.attachPush(button5PopCallback);
button6.attachPush(button6PopCallback);
button7.attachPush(button7PopCallback);
button8.attachPush(button8PopCallback);
button9.attachPush(button9PopCallback);
button0.attachPush(button0PopCallback);
buttonDot.attachPush(buttonDotPopCallback);
buttonPlusMinus.attachPush(buttonPlusMinusPopCallback);
buttonEnter3.attachPush(buttonEnter3PopCallback);
buttonStop3.attachPush(buttonStop3PopCallback);
buttonHome3.attachPush(buttonHome3PopCallback);
//Page 4 >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
buttonMSR.attachPush(buttonMSRPopCallback);
buttonMSF.attachPush(buttonMSFPopCallback);
buttonAR.attachPush(buttonARPopCallback);
buttonAF.attachPush(buttonAFPopCallback);
buttonStop4.attachPush(buttonStop4PopCallback);
buttonHome4.attachPush(buttonHome4PopCallback);
dbSerialPrintln("Setup done");
}
void loop(void)
{
nexLoop(nex_listen_list);
}
Thanks
Monty