Controlling a motor with a touch screen ?

So i am trying to control a motors speed using PWM (running through a transistor). I know how to make that happen but i am unsure how to use a touch screen to control the motor,  I have one of the test codes that is a touch pad 0-9 with enter and clear. I was wondering if there was a way that i can punch the number in push enter and have the motor run at that speed(starting with just 0-255) The touch screen is 3.2LCD TFT Touch Screen SD Reader http://www.ebay.com/itm/SainSmart-Mega2560-3-2-TFT-LCD-Shield-Touch-Screen-SD-Reader-4-Arduino-2560-/280930557613?pt=LH_DefaultDomain_0&hash;=item4168c41ead The code is // ITDB02_Touch_ButtonTest (C)2010 Henning Karlsen // web: http://www.henningkarlsen.com/electronics // Modified to work with UTFT on Mega w/Arduino 1.0.1 (C)2012 Otmar Ebenhoech, // // This program is a quick demo of how create and use buttons. // // This program requires the ITDB02_Graph library (8bit mode) // or ITDB02_Graph16 (16bit mode). // // It is assumed that the ITDB02 module is connected to a // ITDB02 Shield, a ITDB02 Mega Shield or that you know how // to change the pin numbers in the setup. // #include #include // Declare which fonts we will be using extern uint8_t BigFont[]; // Uncomment the next line for Arduino 2009/Uno //UTFT myGLCD(ITDB32S,19,18,17,16);   // Remember to change the model parameter to suit your display module! //ITDB02_Touch  myTouch(15,10,14,9,8); // Uncomment the next line for Arduino Mega UTFT myGLCD(ITDB32S,38,39,40,41);   // Remember to change the model parameter to suit your display module! ITDB02_Touch  myTouch(6,5,4,3,2); //// //// ////   ////THIUS IS WHAT I ADDED ETK int motor = 9; ////    //// //// //// int x, y; char stCurrent[20]=""; int stCurrentLen=0; char stLast[20]=""; void setup() {//// //// //// //// tHIS IS WHAT I ADDED ETK pinMode (motor, OUTPUT); //// ////   ////    //// // Initial setup   myGLCD.InitLCD(LANDSCAPE);   myGLCD.clrScr();   myTouch.InitTouch(LANDSCAPE);   myTouch.setPrecision(PREC_MEDIUM);   myGLCD.setFont(BigFont);   myGLCD.setBackColor(0, 0, 255);   // Draw the upper row of buttons   for (x=0; x<5; x++)   {     myGLCD.setColor(0, 0, 255);     myGLCD.fillRoundRect (10+(x*60), 10, 60+(x*60), 60);     myGLCD.setColor(255, 255, 255);     myGLCD.drawRoundRect (10+(x*60), 10, 60+(x*60), 60);     myGLCD.printNumI(x+1, 27+(x*60), 27);   } // Draw the center row of buttons   for (x=0; x<5; x++)   {     myGLCD.setColor(0, 0, 255);     myGLCD.fillRoundRect (10+(x*60), 70, 60+(x*60), 120);     myGLCD.setColor(255, 255, 255);     myGLCD.drawRoundRect (10+(x*60), 70, 60+(x*60), 120);     if (x<4)       myGLCD.printNumI(x+6, 27+(x*60), 87);   }   myGLCD.print("0", 267, 87); // Draw the lower row of buttons   myGLCD.setColor(0, 0, 255);   myGLCD.fillRoundRect (10, 130, 150, 180);   myGLCD.setColor(255, 255, 255);   myGLCD.drawRoundRect (10, 130, 150, 180);   myGLCD.print("Clear", 40, 147);   myGLCD.setColor(0, 0, 255);   myGLCD.fillRoundRect (160, 130, 300, 180);   myGLCD.setColor(255, 255, 255);   myGLCD.drawRoundRect (160, 130, 300, 180);   myGLCD.print("Enter", 190, 147);   myGLCD.setBackColor (0, 0, 0); } void updateStr(int val) {   if (stCurrentLen<20)   {     stCurrent[stCurrentLen]=val;     stCurrent[stCurrentLen+1]='\0';     stCurrentLen++;     myGLCD.setColor(0, 255, 0);     myGLCD.print(stCurrent, LEFT, 224);   }   else   {     myGLCD.setColor(255, 0, 0);     myGLCD.print("BUFFER FULL!", CENTER, 192);     delay(500);     myGLCD.print("            ", CENTER, 192);     delay(500);     myGLCD.print("BUFFER FULL!", CENTER, 192);     delay(500);     myGLCD.print("            ", CENTER, 192);     myGLCD.setColor(0, 255, 0);   } } // Draw a red frame while a button is touched void waitForIt(int x1, int y1, int x2, int y2) {   myGLCD.setColor(255, 0, 0);   myGLCD.drawRoundRect (x1, y1, x2, y2);   while (myTouch.dataAvailable())     myTouch.read();   myGLCD.setColor(255, 255, 255);   myGLCD.drawRoundRect (x1, y1, x2, y2); } void loop() {   while (true)   {     if (myTouch.dataAvailable())     {       myTouch.read();       x=myTouch.getX();       y=myTouch.getY();             if ((y>=10) && (y<=60))  // Upper row       {         if ((x>=10) && (x<=60))  // Button: 1         {           waitForIt(10, 10, 60, 60);           updateStr('1');         }         if ((x>=70) && (x<=120))  // Button: 2         {           waitForIt(70, 10, 120, 60);           updateStr('2');         }         if ((x>=130) && (x<=180))  // Button: 3         {           waitForIt(130, 10, 180, 60);           updateStr('3');         }         if ((x>=190) && (x<=240))  // Button: 4         {           waitForIt(190, 10, 240, 60);           updateStr('4');         }         if ((x>=250) && (x<=300))  // Button: 5         {           waitForIt(250, 10, 300, 60);           updateStr('5');         }       }       if ((y>=70) && (y<=120))  // Center row       {         if ((x>=10) && (x<=60))  // Button: 6         {           waitForIt(10, 70, 60, 120);           updateStr('6');         }         if ((x>=70) && (x<=120))  // Button: 7         {           waitForIt(70, 70, 120, 120);           updateStr('7');         }         if ((x>=130) && (x<=180))  // Button: 8         {           waitForIt(130, 70, 180, 120);           updateStr('8');         }         if ((x>=190) && (x<=240))  // Button: 9         {           waitForIt(190, 70, 240, 120);           updateStr('9');         }         if ((x>=250) && (x<=300))  // Button: 0         {           waitForIt(250, 70, 300, 120);           updateStr('0');         }       }       if ((y>=130) && (y<=180))  // Upper row       {         if ((x>=10) && (x<=150))  // Button: Clear         {           waitForIt(10, 130, 150, 180);           stCurrent[0]='\0';           stCurrentLen=0;           myGLCD.setColor(0, 0, 0);           myGLCD.fillRect(0, 224, 319, 239);         }         if ((x>=160) && (x<=300))  // Button: Enter         {           waitForIt(160, 130, 300, 180);           if (stCurrentLen>0)           {          for (x=0; x             {               stLast[x]=stCurrent[x];             }             stCurrent[0]='\0';             stCurrentLen=0;             myGLCD.setColor(0, 0, 0);             myGLCD.fillRect(0, 208, 319, 239);             myGLCD.setColor(0, 255, 0);             myGLCD.print(stLast, LEFT, 208);             ////             ////              ////             ////THIS IS WAHT I ADDED ETK             analogWrite(motor,stLast);             ////             ////              ////             ////           }           else           {             myGLCD.setColor(255, 0, 0);             myGLCD.print("BUFFER EMPTY", CENTER, 192);             delay(500);             myGLCD.print("            ", CENTER, 192);             delay(500);             myGLCD.print("BUFFER EMPTY", CENTER, 192);             delay(500);             myGLCD.print("            ", CENTER, 192);             myGLCD.setColor(0, 255, 0);           }         }       }     }   } } The stuff i added has these //// on top and bottom with a comment "THIS WAS ADDED  ETK" the part that dont work is "analogWrite(motor,stLast);" and stLast is a char so it give me char to int error. And as you can tell i am no good at this so anything that can point me in the right direction would be greatly appreciated ETK

Question by etkoehn 4 years ago