Отображение нажатой клавиши на той же строке ЖК - PullRequest
0 голосов
/ 24 января 2019

Я написал код, когда на клавиатуре нажимается какая-либо клавиша, это значение отображается на ЖК-дисплее, но проблема в том, что если мне нужно нажать только «1» и «4», это значение отображается как «V1 V4»,с тремя промежутками между ними, поэтому кто-то может предложить мне, как печатать их рядом, если нажата какая-либо клавиша.

Вот код:

#include <LiquidCrystal.h>
#include <Keypad.h>

int i=0;
int b=0;
int x =0;
int y =0;
int z =0;
int led1=0;
int led2=0;
int led3=0;
int led4=0;
int led5=0;
int led6=0;
int led7=0;
int led8=0;
char option;
int flag=0;
int flag1=0;
int flag2=0;
int flag3=0;
int show=0;
LiquidCrystal lcd (A0,A1,A2,A3,3,4);

const byte ROWS = 4;
const byte COLS = 4;
char hexaKeys[ROWS][COLS] = {
 {'1','2','3','A'},
 {'4','5','6','B'},
 {'7','8','9','C'},
 {'*','0','#','D'}
};
byte rowPins [ROWS] = {7,6,5,11}; //Asignacion pines filas
byte colPins [COLS] = {8,9,10,2};   //Asignacion pines columnas
Keypad customKeypad = Keypad( makeKeymap(hexaKeys), rowPins, colPins, ROWS, COLS); // variable_mapa de la matriz

void setup() {
Serial.begin(9600);

}

void loop() 
{
x=0;
z=0;
y=0;
option=customKeypad.getKey();
MSNinicio();



if(option)  // Check for a valid key.
  {
switch(option)
  {  
    case 'A':  
    lcd.clear();
    lcd.setCursor (0, 0);
    lcd.print("V channel selected");
    delay(1000); 
    lcd.clear();
    lcd.setCursor (0, 0);
    lcd.print("Select V ports");
    lcd.setCursor (0,1);
    delay(1000);
    flag1=1;
    voltage();

    break;  

   case 'B': 
    lcd.clear();
    lcd.setCursor (0, 0);
    lcd.print("I channel selected");
    delay(1000); 
    lcd.clear();
    lcd.setCursor (0, 0);
    lcd.print("Select I ports");
    lcd.setCursor (0,1);
    delay(1000);
    flag2=1;
    current();
    break;  

    case 'C': 
    lcd.clear();
    lcd.setCursor (0, 0);
    lcd.print("TK channel selected");
    delay(1000); 
    lcd.clear();
    lcd.setCursor (0, 0);
    lcd.print("Select TK ports");
    lcd.setCursor (0,1);
    delay(1000);
    thermocouple();
    break;  



  } 
  }
}

void MSNinicio(){

 lcd.clear(); 
 lcd.begin(20, 4);
 lcd.setCursor (0, 0);
 lcd.print("A-VOLTAGE CHANNELS");
 lcd.setCursor (0, 1);
 lcd.print("B-CURRENT CHANNELS");
 lcd.setCursor (0, 2);
 lcd.print("C-THERMO CHANNELS");
 lcd.setCursor (0, 3);
 lcd.print("4-OUTPUT PORTS");
 delay(500);

}


void voltage() {
    while(z<1)
    {
    option=customKeypad.getKey(); // CHOOSE ZONE
    switch(option)
    {
      case '1':
      led1=1;
      break;

      case '2':
      led2=1;
      break;

      case '3':
      led3=1;
      break;

      case '4':
      led4=1;
      break;

      case '5':
      led5=1;
      break;

      case '6':
      led6=1;
      break;

      case '7':
      led7=1;
      break;

      case '8':
      led8=1;
      break;


      case '#':
      MSNinicio();
      z=z+1;
      break;

  }
    delay(100);

    if(led1==1){
    lcd.clear();
    lcd.setCursor (0, 0);
    lcd.print("V1");
    }
    else {
      lcd.print(" ");
    }

    if(led2==1){
   // lcd.clear();
    lcd.setCursor (2, 0);
    lcd.print("V2");
    }
    else {
      lcd.print(" ");
    }

    if(led3==1){
  //  lcd.clear();
    lcd.setCursor (4, 0);
    lcd.print("V3");
    }
    else {
      lcd.print(" ");
    }

    if(led4==1){
  //  lcd.clear();
    lcd.setCursor (6, 0);
    lcd.print("V4");
    }
    else {
      lcd.print(" ");
    }

    if(led5==1){
    //lcd.clear();
    lcd.setCursor (8, 0);
    lcd.print("V5");
    }
    else {
      lcd.print(" ");
    }

    if(led6==1){
  //  lcd.clear();
    lcd.setCursor (10, 0);
    lcd.print("V6");
    }
    else {
      lcd.print(" ");
    }

    if(led7==1){

  //  lcd.clear();
    lcd.setCursor (12, 0);
    lcd.print("V7");
    }
    else {
      lcd.print(" ");
    }

    if(led8==1){
  //  lcd.clear();
    lcd.setCursor (14, 0);
    lcd.print("V8");
    }
    else {
      lcd.print(" ");
    }
    }

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...