Replacing an "Alphanumeric 16x2 LCD" with a "Smart-GPU color 320x240" display...

Good Day....!!!

Can anyone please give me any info. on replacing an "Alphanumeric 16x2 LCD" with a "Smart-GPU 320x240 Color Display".
I have tried using the current library to run the Smart-GPU, but all I can get out of it is a graphical display(colors and shapes). Is there a way to display an analog output from an Arduino MEGA 2650? If so where might I find such a library?
The PDF data sheet for the color display can be found here.........http://vizictechnologies.com/#/smart-gpu/4554296549

Thank you in advance for your time and consideration....

They have written an Arduino library that can be downloaded from their site.

I have tried using the current library to run the Smart-GPU, but all I can get out of it is a graphical display(colors and shapes).

What "current library" would that be?

Is there a way to display an analog output from an Arduino MEGA 2650?

As text? As a voltage? As a dancing turtle?

Is there a way to display an analog output from an Arduino MEGA 2650

The arduino MEGA does not have an analogue output so you have a job displaying it.

PaulS:

I have tried using the current library to run the Smart-GPU, but all I can get out of it is a graphical display(colors and shapes).

What "current library" would that be?

Is there a way to display an analog output from an Arduino MEGA 2650?

As text? As a voltage? As a dancing turtle?

I've tried using the library that Vizio offers on their website link I posted, and like I said it only shows examples of graphical displays.

I would like to display a voltage output as I'm doing now an Alphanumeric LCD with the MEGA.

I would like to display a voltage output as I'm doing now an Alphanumeric LCD with the MEGA.

How are you doing it now?

concretefreak:
I would like to display a voltage output as I'm doing now an Alphanumeric LCD with the MEGA.

What's wrong with their Arduino library?

Please see the following link for the library I've been trying.....

We don't really need to see the library link again. We need to see the code you have written to display your output.

Here is a copy of my code I'm using now with the Alphanumeric LCD, which I would like to use with the Vizio Smart-GPU display.

Thank you for all your input....!!!!

// include the library code:
     #include <LiquidCrystal.h>
     #include <PID_v1.h>
     #define aref_voltage 1.72
     #define PPO inputReading1*aref_voltage/1024
           
      double Setpoint, Input, Output; //Define Variables we'll be connecting to     
      PID myPID(&Input, &Output, &Setpoint, 5,7,2, REVERSE); //Specify the links and initial tuning parameters
            
      LiquidCrystal lcd(12, 11, 5, 4, 3, 2); // initialize the lcd with the numbers of the interface pins
      
/****************************************************************
*initiate pins for each led
*****************************************************************/
      const int red1      =22;
      const int blue1     =28; 
      const int green1    =26;
      const int yellow1   =0;
            int nr; // declare numbers of flashes
/****************************************************************/      
            
         
      
/****************************************************************
*initiate pins for sensor inputs 1, 2, 3
*****************************************************************/             
      const int sensor1 = A0;  // the analog pin the 02 Sensor Vout pin is connected to
            int inputReading1; //declare a variable 
      
                         
      const int sensor2 = A1;  // the analog pin the 02 Sensor Vout pin is connected to  
            int inputReading2; // declare a variable   
               
      
      const int sensor3 = A2;  // the analog pin the 02 sensor Vout pin is connected to
            int inputReading3; // declare a variable 
               
      
/*****************************************************************/     
 
 
    void setup () 
    
    
    {

       Input = analogRead(PPO);
       Setpoint = 520;
       myPID.SetMode(AUTOMATIC);
  
       analogReference(EXTERNAL); // set external analog Ref for PPO output
         
     
 /*****************************************************************
*set output assignments for led pins 
******************************************************************/     
       pinMode( red1, OUTPUT);
       pinMode( green1, OUTPUT);
       pinMode( blue1, OUTPUT);
      
/****************************************************************/      
     
             
/***************************************************************
*set up the LCD's number of columns and rows:
****************************************************************/ 
      lcd.begin(20, 4);
  
      lcd.setCursor(0, 0);//where to start cursor
      lcd.print("PINA SYSYTEMS       ");//print message
      lcd.print("SOFTWARE VERSION 1.0");//print message
      delay(2000);
      lcd.clear();  
      
      lcd.setCursor(0, 0); // set the cursor to column 0, line 0
      lcd.print("PP1");  // Print a message to the LCD.
  
      lcd.setCursor(6, 0); // set the cursor to column 6, line 0
      lcd.print("PP2"); // Print a message to the LCD
  
      lcd.setCursor(12, 0); // set the cursor to column 12, line 0
      lcd.print("PP3");  // Print a message to the LCD.
    }
/*************************************************************/


/**************************************************************
*setup all three RGB colrs for each range of PPO
***************************************************************/
 
    void blinkGreen1(int nr) // number of blinks follwed by a delay 
      {
        for(int i=0; i< nr; i++)
        if( PPO <= .50) 
          {
            digitalWrite(green1,LOW); 
            delay(250); 
            digitalWrite(green1, HIGH);
            delay(250); 
          }
            else digitalWrite(green1, HIGH);        
      }
        
     void blinkBlue1(int nr) // number of blinks follwed by a delay 
      {
        for(int i=0; i< nr; i++)
        if( PPO > .50 && PPO < 1.00) 
          {
            digitalWrite(blue1,LOW); 
            delay(250); 
            digitalWrite(blue1, HIGH);
            delay(250); 
          }
            else digitalWrite(blue1, HIGH);        
      }
        
      void blinkRed1(int nr) // number of blinks follwed by a delay 
       {
         for(int i=0; i< nr; i++)
         if(PPO >1.00)   
          {
            digitalWrite(red1,LOW); 
             delay(250); 
            digitalWrite(red1, HIGH);
            delay(250); 
          }
            else digitalWrite(red1, HIGH);           
       }        
/**********************************************************************/
    
     void loop () 
    
       {
          blinkGreen1((int)(PPO*10)); // flash green  
          blinkBlue1((int)(PPO*10)); // flash blue
          blinkRed1((int)(PPO*10)); // flash red
                   
/**********************************************************************
* turn the output pin on/off based on pid output
***********************************************************************/
        Input = analogRead(PPO); // PID analog input for PPO
        myPID.Compute(); // computing the out for setpoint control
        analogWrite(7,Output); // the output to fire O2 solenoid
/**********************************************************************/
  
   
       
/*************************************************************
* initialize LCD and display PPO readings
**************************************************************/
        lcd.setCursor(0, 1); //sets the cursor to column 0, line 1    
        inputReading1 = analogRead(sensor1); //getting the voltage reading from the 02 sensor    
        float voltage1 = inputReading1 * aref_voltage; // converting that reading to voltage 
        voltage1 /= 1024.0;    
        lcd.print(voltage1, 2);//print actual voltage to lcd    
        delay(200);
    

        lcd.setCursor(6, 1); //sets the cursor to column 6, line 1     
        inputReading2 = analogRead(sensor2); //getting the voltage reading from the temperature sensor    
        float voltage2 = inputReading2 * aref_voltage; // converting that reading to voltage
        voltage2 /= 1024.0; 
        lcd.print(voltage2, 2);  //print actual voltage to lcd
        delay(200);     
  
  
        lcd.setCursor(12, 1); //sets the cursor to column 12, line 2    
        inputReading3 = analogRead(sensor3); //getting the voltage reading from the temperature sensor    
        float voltage3 = inputReading3 * aref_voltage; // converting that reading to voltage 
        voltage3 /= 1024.0; 
        lcd.print(voltage3, 2);  //print actual voltage to lcd
        delay(200);
 
      }

dxw00d:
We don't really need to see the library link again. We need to see the code you have written to display your output.

Here's a copy of my current code that I'm using with the alphanumeric LCD that I would like to use with the Vizio Smart-GPU.....

Thank you so much!!!

// include the library code:
     #include <LiquidCrystal.h>
     #include <PID_v1.h>
     #define aref_voltage 1.72
     #define PPO inputReading1*aref_voltage/1024
           
      double Setpoint, Input, Output; //Define Variables we'll be connecting to     
      PID myPID(&Input, &Output, &Setpoint, 5,7,2, REVERSE); //Specify the links and initial tuning parameters
            
      LiquidCrystal lcd(12, 11, 5, 4, 3, 2); // initialize the lcd with the numbers of the interface pins
      
/****************************************************************
*initiate pins for each led
*****************************************************************/
      const int red1      =22;
      const int blue1     =28; 
      const int green1    =26;
      const int yellow1   =0;
            int nr; // declare numbers of flashes
/****************************************************************/      
            
         
      
/****************************************************************
*initiate pins for sensor inputs 1, 2, 3
*****************************************************************/             
      const int sensor1 = A0;  // the analog pin the 02 Sensor Vout pin is connected to
            int inputReading1; //declare a variable 
      
                         
      const int sensor2 = A1;  // the analog pin the 02 Sensor Vout pin is connected to  
            int inputReading2; // declare a variable   
               
      
      const int sensor3 = A2;  // the analog pin the 02 sensor Vout pin is connected to
            int inputReading3; // declare a variable 
               
      
/*****************************************************************/     
 
 
    void setup () 
    
    
    {

       Input = analogRead(PPO);
       Setpoint = 520;
       myPID.SetMode(AUTOMATIC);
  
       analogReference(EXTERNAL); // set external analog Ref for PPO output
         
     
 /*****************************************************************
*set output assignments for led pins 
******************************************************************/     
       pinMode( red1, OUTPUT);
       pinMode( green1, OUTPUT);
       pinMode( blue1, OUTPUT);
      
/****************************************************************/      
     
             
/***************************************************************
*set up the LCD's number of columns and rows:
****************************************************************/ 
      lcd.begin(20, 4);
  
      lcd.setCursor(0, 0);//where to start cursor
      lcd.print("PINA SYSYTEMS       ");//print message
      lcd.print("SOFTWARE VERSION 1.0");//print message
      delay(2000);
      lcd.clear();  
      
      lcd.setCursor(0, 0); // set the cursor to column 0, line 0
      lcd.print("PP1");  // Print a message to the LCD.
  
      lcd.setCursor(6, 0); // set the cursor to column 6, line 0
      lcd.print("PP2"); // Print a message to the LCD
  
      lcd.setCursor(12, 0); // set the cursor to column 12, line 0
      lcd.print("PP3");  // Print a message to the LCD.
    }
/*************************************************************/


/**************************************************************
*setup all three RGB colrs for each range of PPO
***************************************************************/
 
    void blinkGreen1(int nr) // number of blinks follwed by a delay 
      {
        for(int i=0; i< nr; i++)
        if( PPO <= .50) 
          {
            digitalWrite(green1,LOW); 
            delay(250); 
            digitalWrite(green1, HIGH);
            delay(250); 
          }
            else digitalWrite(green1, HIGH);        
      }
        
     void blinkBlue1(int nr) // number of blinks follwed by a delay 
      {
        for(int i=0; i< nr; i++)
        if( PPO > .50 && PPO < 1.00) 
          {
            digitalWrite(blue1,LOW); 
            delay(250); 
            digitalWrite(blue1, HIGH);
            delay(250); 
          }
            else digitalWrite(blue1, HIGH);        
      }
        
      void blinkRed1(int nr) // number of blinks follwed by a delay 
       {
         for(int i=0; i< nr; i++)
         if(PPO >1.00)   
          {
            digitalWrite(red1,LOW); 
             delay(250); 
            digitalWrite(red1, HIGH);
            delay(250); 
          }
            else digitalWrite(red1, HIGH);           
       }        
/**********************************************************************/
    
     void loop () 
    
       {
          blinkGreen1((int)(PPO*10)); // flash green  
          blinkBlue1((int)(PPO*10)); // flash blue
          blinkRed1((int)(PPO*10)); // flash red
                   
/**********************************************************************
* turn the output pin on/off based on pid output
***********************************************************************/
        Input = analogRead(PPO); // PID analog input for PPO
        myPID.Compute(); // computing the out for setpoint control
        analogWrite(7,Output); // the output to fire O2 solenoid
/**********************************************************************/
  
   
       
/*************************************************************
* initialize LCD and display PPO readings
**************************************************************/
        lcd.setCursor(0, 1); //sets the cursor to column 0, line 1    
        inputReading1 = analogRead(sensor1); //getting the voltage reading from the 02 sensor    
        float voltage1 = inputReading1 * aref_voltage; // converting that reading to voltage 
        voltage1 /= 1024.0;    
        lcd.print(voltage1, 2);//print actual voltage to lcd    
        delay(200);
    

        lcd.setCursor(6, 1); //sets the cursor to column 6, line 1     
        inputReading2 = analogRead(sensor2); //getting the voltage reading from the temperature sensor    
        float voltage2 = inputReading2 * aref_voltage; // converting that reading to voltage
        voltage2 /= 1024.0; 
        lcd.print(voltage2, 2);  //print actual voltage to lcd
        delay(200);     
  
  
        lcd.setCursor(12, 1); //sets the cursor to column 12, line 2    
        inputReading3 = analogRead(sensor3); //getting the voltage reading from the temperature sensor    
        float voltage3 = inputReading3 * aref_voltage; // converting that reading to voltage 
        voltage3 /= 1024.0; 
        lcd.print(voltage3, 2);  //print actual voltage to lcd
        delay(200);
 
      }
     #define PPO inputReading1*aref_voltage/1024
       Input = analogRead(PPO);
        Input = analogRead(PPO); // PID analog input for PPO

What pin are you reading from?

PaulS:

     #define PPO inputReading1*aref_voltage/1024

Input = analogRead(PPO);
       Input = analogRead(PPO); // PID analog input for PPO



What pin are you reading from?

I'm reading from the "const int" of sensors1, sensor2, and sensor3 from pins A0, A1, A2

/****************************************************************
*initiate pins for sensor inputs 1, 2, 3
*****************************************************************/             
      const int sensor1 = A0;  // the analog pin the 02 Sensor Vout pin is connected to
            int inputReading1; //declare a variable 
      
                         
      const int sensor2 = A1;  // the analog pin the 02 Sensor Vout pin is connected to  
            int inputReading2; // declare a variable   
               
      
      const int sensor3 = A2;  // the analog pin the 02 sensor Vout pin is connected to
            int inputReading3; // declare a variable 
               
      
/*****************************************************************/

which gets output to sensor1, sensor2 and sensor3 under the LCD config.

/*************************************************************
* initialize LCD and display PPO readings
**************************************************************/
        lcd.setCursor(0, 1); //sets the cursor to column 0, line 1    
        inputReading1 = analogRead(sensor1); //getting the voltage reading from the 02 sensor    
        float voltage1 = inputReading1 * aref_voltage; // converting that reading to voltage 
        voltage1 /= 1024.0;    
        lcd.print(voltage1, 2);//print actual voltage to lcd    
        delay(200);
        inputReading1 = analogRead(sensor1); //getting the voltage reading from the 02 sensor

So, inputReading1 could be 0 or 1023 or anywhere in between.

        Input = analogRead(PPO); // PID analog input for PPO

Gets changed, by the precompiler, to:

        Input = analogRead(inputReading1*aref_voltage/1024); // PID analog input for PPO

Since aref_voltage is 1.72, you will be reading from pin 0.0 to pin 1.718. Does that make sense?

PaulS:

        inputReading1 = analogRead(sensor1); //getting the voltage reading from the 02 sensor

So, inputReading1 could be 0 or 1023 or anywhere in between.

        Input = analogRead(PPO); // PID analog input for PPO

Gets changed, by the precompiler, to:

        Input = analogRead(inputReading1*aref_voltage/1024); // PID analog input for PPO

Since aref_voltage is 1.72, you will be reading from pin 0.0 to pin 1.718. Does that make sense?

No.....those sections are only related to and control the "PID"(the setpoint controller) function and have nothing to do with the input being read.....only the following code has to do with the LCD displaying the direct voltage that was converted from the "0-1023" value. And this displayed voltage value on the LCD is what is being fed into inputs A0, A1, and A2.

Thank you.

[quote author=PaulS link=topic=97414.msg731258#msg731258 date=1332195258]
[code]        inputReading1 = analogRead(sensor1); //getting the voltage reading from the 02 sensor

So, inputReading1 could be 0 or 1023 or anywhere in between.

        Input = analogRead(PPO); // PID analog input for PPO

Gets changed, by the precompiler, to:

        Input = analogRead(inputReading1*aref_voltage/1024); // PID analog input for PPO

Since aref_voltage is 1.72, you will be reading from pin 0.0 to pin 1.718. Does that make sense?
[/quote]

The first part is write...."inputReading1 = analogRead(sensor1); //getting the voltage reading from the 02 sensor [/code]
So, inputReading1 could be 0 or 1023 or anywhere in between."

The second part....I'm not quite sure what your asking, all I know is ultimately the PPO value is equal to the output voltage that is currently being displayed by the alphanumeric LCD.

When people post code that has obvious issues, and then say "but that's not the part of the code I'm having problems with", I no longer feel compelled to help. Good luck.

PaulS:
When people post code that has obvious issues, and then say "but that's not the part of the code I'm having problems with", I no longer feel compelled to help. Good luck.

Well then your not very patient nor very good at reading code, because the code compiles perfectly and works excellent with the current alphanumeric LCD, I didn't ask you to fix any problems with the code....I asked if you know how to replace an "alphanumeric LCD" with an "Smart-GPU color display"......thats it.

Well thank you for your time, and please don't judge me for trying to help YOU, help ME.....

What have you tried to make it work? The examples show how to write text on the display, so you should at least be able to have a go at converting this bit:

      lcd.setCursor(0, 0);//where to start cursor
      lcd.print("PINA SYSYTEMS       ");//print message
      lcd.print("SOFTWARE VERSION 1.0");//print message
      delay(2000);
      lcd.clear();  
      
      lcd.setCursor(0, 0); // set the cursor to column 0, line 0
      lcd.print("PP1");  // Print a message to the LCD.
  
      lcd.setCursor(6, 0); // set the cursor to column 6, line 0
      lcd.print("PP2"); // Print a message to the LCD
  
      lcd.setCursor(12, 0); // set the cursor to column 12, line 0
      lcd.print("PP3");  // Print a message to the LCD.