示例#1
0
void LCDScreen::dispUserPrefCycles()
{
  lcd.clear();
  lcd.setCursor( 0, 0 );
  lcd.print( "# of cycles: " );
  lcd.setCursor( 0, 15 );
  lcd.print( maxCycles );
}
示例#2
0
void LCDScreen::finalMess()
{
  lcd.clear();
  lcd.home();
  lcd.print( "PCR complete." );
  lcd.setCursor( 0, 1 );
  lcd.print( "RESET to cont." );

}
示例#3
0
void LCDScreen::setup() {

  lcd.begin( 16, 2 );
  lcd.home();
  lcd.print( "PCR V.2 - O.V.L.");
  lcd.setCursor( 0, 1 );
  lcd.print( "SELECT to cont." );
  waitForSelect();  
  delay( 500 );
  setUserInputs();
  delay( 500 );

}
示例#4
0
void LCDScreen::printError( int mess )
{
  lcd.clear();
  lcd.home();
  
  String message;
  if ( mess == 1 ) { message = "ERR: Overheating"; }
  else if ( mess < 1 ) { message = "ERR: Not ramping"; }
  else { message = "ERR: wrap failed"; }

  lcd.print( message );

  lcd.setCursor( 0, 1 );
  lcd.print( "Check hardware" );
}
示例#5
0
void LCDScreen::selectCycles()
{
  dispUserPrefCycles();
  
  uint8_t buttons; 
  while ( true )
  {
    buttons = lcd.readButtons();
    if (buttons & BUTTON_LEFT) 
    {
      if ( maxCycles > 0 ) {
        maxCycles--;
        dispUserPrefCycles();
        delay(100);
      }
    }
    if (buttons & BUTTON_RIGHT) 
    {
      if ( maxCycles < 100 ) {
        maxCycles ++;
        dispUserPrefCycles();
        delay(100);
      }
    }
    if (buttons & BUTTON_SELECT) break;
  }
}
示例#6
0
void LCDScreen::selectHighLowPush() {

  dispUserPrefHighLow();
  
  int highlow = 0;
  uint8_t buttons; 
  //int buttons;
 
  while ( true )
  {
    
    //buttons = bpin.readButtons();    
    //if (buttons & BPIN_UP) highlow = 0;  
    //if (buttons & BPIN_DOWN) highlow = 1;


    buttons = lcd.readButtons();

    if (buttons & BUTTON_UP) highlow = 0;  
    if (buttons & BUTTON_DOWN) highlow = 1;


    //if( buttons & BPIN_LEFT )
    if (buttons & BUTTON_LEFT) 
    {
      if ( highlow == 0 ) 
      {
        if ( tempCeil > ( tempFloor + 1 ) ) tempCeil--;
      }
      else
      {
        if ( tempFloor > 49 ) tempFloor--;
      }
      
      dispUserPrefHighLow();
      delay( 100 );
    }
    
    //if( buttons & BPIN_RIGHT )
    if (buttons & BUTTON_RIGHT) 
    {
      if ( highlow == 0 )
      {
        if ( tempCeil < 110 ) tempCeil++;
      }
      else 
      {
        if ( tempFloor < ( tempCeil - 1 ) ) tempFloor++;
      }
      
      dispUserPrefHighLow();
      delay( 100 );
    }

    //if( buttons & BPIN_SELECT )
    if (buttons & BUTTON_SELECT) break;
     
  }
}
示例#7
0
void LCDScreen::setUserInputs()
{
  lcd.clear();
  // Check for Denaturization
  denaturization();
  delay(500);
  lcd.clear();

  // Adjust High/Low Values
  int highlow = 0;
  
  selectHighLowPush();
  delay(500);
  // Adjust No. of Cycles
  selectCycles();
  delay(500);
  // All done with configuration
}
void K3NGdisplay::redraw(){

  // redraw the screen with the current screen_buffer_live

  for (int x = 0;x < (display_columns*display_rows);x++){   
    lcd.setCursor(Xposition(x),Yposition(x));
    if (screen_buffer_attributes_live[x] & ATTRIBUTE_BLINK){  // does this character have the blink attribute
      if (current_blink_state){
        lcd.print(screen_buffer_live[x]);
      } else {
        lcd.print(' ');
      }
    } else {
      lcd.print(screen_buffer_live[x]);
    }
  }


}	
void K3NGdisplay::initialize(){


  lcd.begin(display_columns, display_rows);  // if you are getting an error on this line and do not have
                                             // any of the LCD display features enabled, remove
                                             // k3ngdisplay.h and k3ngdisplay.cpp from your ino directory

  #ifdef FEATURE_YOURDUINO_I2C_LCD
  lcd.setBacklightPin(BACKLIGHT_PIN, POSITIVE);
  lcd.setBacklight(I2C_LCD_COLOR);
  #endif // FEATURE_YOURDUINO_I2C_LCD

  #ifdef FEATURE_ADAFRUIT_I2C_LCD
  lcd.setBacklight(I2C_LCD_COLOR);
  #endif // FEATURE_ADAFRUIT_I2C_LCD

  clear();


}
示例#10
0
void LCDScreen::waitForSelect()
{
  while ( true )
  {
    uint8_t buttons = lcd.readButtons();
    
    if ( buttons )
    {
      if (buttons & BUTTON_SELECT) break;
    }
  }
}
示例#11
0
void LCDScreen::updateArrow( double temp )
{
  lcd.home();
  lcd.print( tempFloor );
  
  if ( temp < tempFloor ) temp = tempFloor;
  
  int n; //number of spaces to create
  if ( tempFloor > 99 && tempCeil > 99 ) n = 9;
  else if ( tempFloor > 99 && tempCeil <= 99 ) n = 10;
  else if ( tempFloor <= 99 && tempCeil > 99 ) n = 10;
  else n = 11;  
  
  int newTemp = map( temp, tempFloor, tempCeil, 0, n );
  
  for ( int o = 0; o < newTemp; o++ )
  {
    lcd.print( "-" );
  }
  lcd.print( ">" );
  for ( int o = 0; o < ( n - newTemp); o++ )
  {
    lcd.print( " " );
  }

  lcd.print( tempCeil );
}
示例#12
0
void LCDScreen::dispUserPrefHighLow()
{
  lcd.clear();
  lcd.home();
  lcd.print( "High: " );
  lcd.print( tempCeil );
  lcd.setCursor( 0, 1 );
  lcd.print( "Low:  " );
  lcd.print( tempFloor );
}
示例#13
0
void LCDScreen::displayInitialStatus( double temp, int current_cycle ) {

  lcd.clear();
  lcd.home();
  
  updateArrow( temp );
  
  lcd.setCursor( 0, 1 );
  lcd.print( "Cycle no. " );
  lcd.print( current_cycle );
  lcd.print( "/" );
  lcd.print( maxCycles );


}
void K3NGdisplay::clear(){  

  // do an immediate clearing of the screen

  for (int x = 0;x < MAX_SCREEN_BUFFER_COLUMNS*MAX_SCREEN_BUFFER_ROWS;x++){
    screen_buffer_live[x] = ' ';
    screen_buffer_pending[x] = ' ';
    screen_buffer_revert[x] = ' ';

    screen_buffer_attributes_live[x] = 0;
    screen_buffer_attributes_pending[x] = 0;
    screen_buffer_attributes_revert[x] = 0;

  }

  lcd.clear();
  current_print_row = 0;
  current_print_column = 0;
  revert_screen_flag = 0;

}
示例#15
0
void LCDScreen::dispDenatStatus(long int currentTime, long int stopTime)
{
  int minLeft;
  lcd.clear();
  lcd.setCursor( 0, 1 );
  if(currentTime == 0 && stopTime == 0){
    lcd.print("Ramping Up");
  }
  else{
  minLeft = (stopTime - currentTime) / 60000;
  lcd.print(minLeft);
  lcd.setCursor(2,1);
  lcd.print("min left");  
  }
    
}
void K3NGdisplay::update(){

  // update the screen with changes that are pending in screen_buffer_pending


  for (int x = 0;x < (display_columns*display_rows);x++){  	
    if (screen_buffer_live[x] != screen_buffer_pending[x]){  // do we have a new character to put on the screen ?
      lcd.setCursor(Xposition(x),Yposition(x));
      if (screen_buffer_attributes_pending[x] & ATTRIBUTE_BLINK){  // does this character have the blink attribute
        if (current_blink_state){
          lcd.print(screen_buffer_pending[x]);
        } else {
          lcd.print(' ');
        }
      } else {
        lcd.print(screen_buffer_pending[x]);
      }
      screen_buffer_live[x] = screen_buffer_pending[x];
      screen_buffer_attributes_live[x] = screen_buffer_attributes_pending[x];
    } else {  // not a new character, do we have live character on the screen to blink?
      if (last_blink_state != current_blink_state){
        if (screen_buffer_attributes_live[x] & ATTRIBUTE_BLINK){
        	lcd.setCursor(Xposition(x),Yposition(x));
        	if (current_blink_state){
              lcd.print(screen_buffer_live[x]);
      	    } else {
      	      lcd.print(' ');
      	    }
        }
      }
    }
  }

  last_blink_state = current_blink_state;

}
示例#17
0
void log(String message) {
  lcd.setCursor(0, 0);
  lcd.print(message + String(" "));
  delay(1000);
}
示例#18
0
void LCDScreen::denaturization()
{
  lcd.clear();
  lcd.setCursor( 0, 0 );
  lcd.print("Denaturization? ");
  lcd.setCursor( 0, 1 );
  lcd.print("Yes     No");
  lcd.setCursor( 0, 1 );
  lcd.blink();
  uint8_t buttons;
  while(true){
    buttons = lcd.readButtons();
    if (buttons & BUTTON_LEFT){
     lcd.setCursor( 0, 1 );
     denat = 1;
    }
    if (buttons & BUTTON_RIGHT){
     lcd.setCursor( 8, 1 );
     denat = 0;
    }
    if (buttons & BUTTON_SELECT){
     lcd.noBlink();
     break;
    }
  }
}
示例#19
0
int main(int argc, char *argv[])
{
	Adafruit_RGBLCDShield lcd = Adafruit_RGBLCDShield();
	
	lcd.begin(16, 2);

	lcd.setBacklight(RED);
	lcd.clear();
	lcd.home();
	lcd.setCursor(0,0);
	lcd.myPrint("Hello World");
	
	int count = 0;
	for(int i = 0; i < 20; i++){
		usleep(300000);
		if(count < 5){
			lcd.scrollDisplayRight();
		}
		count++;
		if(count > 5){
			lcd.scrollDisplayLeft();
		}
		if(count > 9) count = 0;
	}
	
	uint8_t buttons = lcd.readButtons();

	while(!(buttons & BUTTON_SELECT)){
		if (buttons) {
			if (buttons & BUTTON_LEFT) {
				lcd.scrollDisplayLeft();
				lcd.setBacklight(GREEN);
			}
			if (buttons & BUTTON_RIGHT) {
				lcd.scrollDisplayRight();
				lcd.setBacklight(TEAL);
			}
		}
		buttons = lcd.readButtons();
		usleep(90000);
    }
    
	return 0;
}
示例#20
0
void lcd_setup()
{
  // set up the LCD's number of rows and columns: 
  lcd.begin(LCD_COLUMNS, LCD_ROWS);
  lcd.setBacklight(BLUE);
}
示例#21
0
void lcd_set_color(int color)
{
  lcd.setBacklight(color);
}