Arduino - Adaptar códigos a Arduino

 
Vista:
sin imagen de perfil
Val: 63
Oro
Ha mantenido su posición en Arduino (en relación al último mes)
Gráfica de Arduino

Adaptar códigos a Arduino

Publicado por Meta (27 intervenciones) el 20/05/2022 07:12:35
Buena gente.

Tengo una función de consola C# y quiero adaptarlo a Arduino, lo tengo a medias pero me fallan cosas. Sobre todo la pulsaciones de teclas y botones.

Espero tener ualguna ayuda.

Código C#:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
using System;
using System.IO;
 
namespace LCD_Menu_con_submenus_Consola_01
{
    public class NombresReles
    {
        // Variables.
        static int coordenadaX = 0;         // Coordenada X del textBox del nombre del Relé.
        static int index = 0;               // Índice de ATRÁS y GUARDAR.
        static int textBox = 0;             // 0 para el número de Relé (de 1 al 8) y 1 para el texto del Relé (16 char).
        static string[] nombresDeLosReles;  // Líneas que al final se van a guardar en Archivo.txt.
        static bool cargado = false;        // Vale false si todavía no se cargaron los nombres del Archivo, si no true, para no repetir.
 
        // Caracteres alfanuméricos en el array.
        static readonly char[] roALFANUMERICO = new char[]
        {
            'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'Ñ', 'O', 'P',
            'Q', 'R', 'S', 'T', 'U', 'V', 'X', 'Y', 'Z', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h',
            'i', 'j', 'k', 'l', 'm', 'n', 'ñ', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'x', 'y',
            'z', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9','.', ',', '-', '_', ':', ';',
            '¿', '?', '(', ')', '[', ']', '{', '}', '<', '>', '=', '$', '&', '@', '\\', '/', '\"',
            ' '
        };
 
        // Índices de los caracteres de los 8 Relés para el array alfanumérico.
        // Hay un total de 86 caracteres. Se cuenta desde el 0 al 85.
        static readonly int[][] roINDICE_ARRAY = new int[][]
        {
            new int[] { 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85 },
            new int[] { 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85 },
            new int[] { 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85 },
            new int[] { 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85 },
            new int[] { 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85 },
            new int[] { 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85 },
            new int[] { 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85 },
            new int[] { 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85 }
        };
 
        static readonly char[] roNUMERICO = new char[] { '1', '2', '3', '4', '5', '6', '7', '8' };
        static int roINDICE_NUMERICO = 0;
 
        public static void NombreReles_Principal()
        {
            ConsoleKey tecla, tecla2;
            int indice = 0;
 
            Inicio();
 
            while (true)
            {
                Console.CursorVisible = true; // Mostrar cursor.
                tecla = Console.ReadKey(true).Key;
 
                // ¿Has pulsado tecla flecha arriba?
                if (tecla == ConsoleKey.RightArrow) // Sí.
                {
                    if (textBox == 0)
                    {
                        Console.SetCursorPosition(4, 1);
                        textBox = 1;
                    }
                    else // textBox == 1
                    {
                        if (coordenadaX < 15)
                        {
                            coordenadaX++;
                            Console.SetCursorPosition(4 + coordenadaX, 1);
                        }
                    }
                }
                // Entonces. ¿Haz pulsado flecha izquierda?
                else if (tecla == ConsoleKey.LeftArrow) // Sí.
                {
                    if (textBox == 1)
                    {
                        if (coordenadaX > 0)
                        {
                            coordenadaX--;
                            Console.SetCursorPosition(4 + coordenadaX, 1);
                        }
                        else
                        {
                            Console.SetCursorPosition(2, 1);
                            textBox = 0;
                        }
                    }
                }
                // Entonces. ¿Haz pulsado flecha abajo?
                else if (tecla == ConsoleKey.DownArrow) // Sí.
                {
                    if (textBox == 0)
                    {
                        roINDICE_NUMERICO--;
                        if (roINDICE_NUMERICO < 0)
                        {
                            roINDICE_NUMERICO = 7;
                        }
                        Console.SetCursorPosition(2, 1);
                        Console.Write(roNUMERICO[roINDICE_NUMERICO]);
                        MostrarLineaNombre();
                        Console.SetCursorPosition(2, 1);
                    }
                    else // textBox == 1
                    {
                        roINDICE_ARRAY[roINDICE_NUMERICO][coordenadaX]--;
                        if (roINDICE_ARRAY[roINDICE_NUMERICO][coordenadaX] < 0)
                        {
                            roINDICE_ARRAY[roINDICE_NUMERICO][coordenadaX] = 85;
                        }
                        Console.Write(roALFANUMERICO[roINDICE_ARRAY[roINDICE_NUMERICO][coordenadaX]].ToString());
                        Console.SetCursorPosition(4 + coordenadaX, 1);
                    }
                }
                // Entonces. ¿Haz pulsado flecha arriba?
                else if (tecla == ConsoleKey.UpArrow) // Sí.
                {
                    if (textBox == 0)
                    {
                        roINDICE_NUMERICO++;
                        if (roINDICE_NUMERICO >= 8)
                        {
                            roINDICE_NUMERICO = 0;
                        }
                        Console.SetCursorPosition(2, 1);
                        Console.Write(roNUMERICO[roINDICE_NUMERICO]);
                        MostrarLineaNombre();
                        Console.SetCursorPosition(2, 1);
                    }
                    else // textBox == 1
                    {
                        roINDICE_ARRAY[roINDICE_NUMERICO][coordenadaX]++;
                        if (roINDICE_ARRAY[roINDICE_NUMERICO][coordenadaX] > 85) // Acá es > 85 (o >= 86) porque 86 es la cantidad
                        {                                                        // total y al alcanzarla ahí paso al comienzo (0)
                            roINDICE_ARRAY[roINDICE_NUMERICO][coordenadaX] = 0;
                        }
                        Console.Write(roALFANUMERICO[roINDICE_ARRAY[roINDICE_NUMERICO][coordenadaX]].ToString());
                        Console.SetCursorPosition(4 + coordenadaX, 1);
                    }
                }
                // Entonces. ¿Haz pulsado la tecla Enter?
                else if (tecla == ConsoleKey.Enter) // Sí.
                {
                    Console.CursorVisible = false;
                    Console.SetCursorPosition(0, 3);
                    Console.Write("> ATRÁS     GUARDAR ");
                    index = 0;
                    while ((tecla2 = Console.ReadKey(true).Key) != ConsoleKey.Enter)
                    {
                        if ((tecla2 == ConsoleKey.RightArrow) || (tecla2 == ConsoleKey.LeftArrow))
                        {
                            index = 1 - index;  // Si vale 0 valdrá 1, si vale 1 valdrá 0.
                            Console.SetCursorPosition(0, 3);
                            if (index == 0)
                            {
                                Console.Write("> ATRÁS     GUARDAR ");
                            }
                            else
                            {
                                Console.Write("  ATRÁS   > GUARDAR ");
                            }
                        }
                    }
                    if (index == 1)  // Se pulsó Enter en Guardar.
                    {
                        nombresDeLosReles = new string[8];
                        for (int a = 0; a < 8; a++)
                        {
                            for (int b = 0; b < 16; b++)
                            {
                                nombresDeLosReles[a] += roALFANUMERICO[roINDICE_ARRAY[a]].ToString();
                            }
                        }
 
                        // Guardar archivo de texto con los nombres de los relés.
                        File.WriteAllLines("NombresReles.txt", nombresDeLosReles);
 
                        // Puede que los nombres contengan espacios al final, que no se verán pero no
                        // hay que borrarlos porque al principio leerá 16 char y si faltan, fallará.
                        Console.Clear();
                        Console.SetCursorPosition(2, 1);
                        Console.Write("Haz guardado:");
                        Console.SetCursorPosition(2, 3);
                        Console.Write((indice + 1).ToString());
                        Console.SetCursorPosition(4, 3);
                        Console.Write(nombresDeLosReles[indice]);
 
                        // Mientras no pulses la tecla Enter, sigue las demás intrucciones.
                        while ((tecla2 = Console.ReadKey(true).Key) != ConsoleKey.Enter)
                        {
                            // ¿Haz pulsado flecha arriba?
                            if (tecla2 == ConsoleKey.UpArrow) // Sí. Ejecuta código dentro de ella.
                            {
                                indice--; // Decrementa la variable indice.
                                // ¿indice es menor que 0?
                                if (indice < 0) // Sí.
                                {
                                    indice = 7;
                                }
                            }
                            // Entonces. ¿Haz pulsado flecha abajo?
                            else if (tecla2 == ConsoleKey.DownArrow) // Sí.
                            {
                                indice++; // Incrementa la variable indice.
                                // ¿indice es mayor o igual que 8?
                                if (indice >= 8) // Sí.
                                {
                                    indice = 0;
                                }
                            }
                            Console.SetCursorPosition(2, 3);
                            Console.Write((indice + 1).ToString());
                            Console.SetCursorPosition(4, 3);
                            Console.Write(nombresDeLosReles[indice]);
                        }
                        Inicio();
                    }
                    else if (index == 0)
                    {
                        break;
                    }
                }
            }
        }
 
        static void Inicio()
        {
            Console.SetWindowSize(20, 5);                   // Establece el ancho y alto de la ventana.
            Console.Clear();                                // Limpiar ventana.
            Console.SetCursorPosition(2, 0);                // Posición del cursor.
            Console.Write("Nombre de Relés:    ");
            Console.SetCursorPosition(0, 3);
            Console.Write("  ATRÁS     GUARDAR ");
 
            if (cargado == false)
            {
                // ¿Existe el archivo de texto?
                if (File.Exists("NombresReles.txt"))
                {
                    // Supone un archivo con 8 lineas de 16 char completas aunque sea con espacios.
                    nombresDeLosReles = File.ReadAllLines("NombresReles.txt");
                    int a, b, c;
                    for (a = 0; a < 8; a++)
                    {
                        for (b = 0; b < 16; b++)
                        {
                            for (c = 0; nombresDeLosReles[a][b] != roALFANUMERICO[c]; c++)
                            {
                                ;
                            }
                            roINDICE_ARRAY[a][b] = c;
                        }
                    }
                }
                cargado = true;
            }
            MostrarLineaNombre();
            Console.SetCursorPosition(2, 1);
            Console.Write(roNUMERICO[roINDICE_NUMERICO]);
            if (textBox == 0)
            {
                Console.SetCursorPosition(2, 1);
            }
            else
            {
                Console.SetCursorPosition(4 + coordenadaX, 1);
            }
        }
 
        static void MostrarLineaNombre()
        {
            Console.SetCursorPosition(4, 1);
            for (int a = 0; a < 16; a++)
            {
                Console.Write(roALFANUMERICO[roINDICE_ARRAY[roINDICE_NUMERICO][a]]);
            }
        }
    }
}

[B]Código C de Arduino:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
// Variables.
int coordenadaX = 0;          // Coordenada X del textBox del nombre del Relé.
int index = 0;                // Índice de ATRÁS y GUARDAR.
int textBox = 0;              // 0 para el número de Relé (de 1 al 8) y 1 para el texto del Relé (16 char).
String nombresDeLosReles[8];  // Líneas que al final se van a guardar en Archivo.txt.
bool cargado = false;         // Vale false si todavía no se cargaron los nombres del Archivo, si no true, para no repetir.
 
// Caracteres alfanuméricos en el array.
char roALFANUMERICO[] =
{
  'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'Ñ', 'O', 'P',
  'Q', 'R', 'S', 'T', 'U', 'V', 'X', 'Y', 'Z', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h',
  'i', 'j', 'k', 'l', 'm', 'n', 'ñ', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'x', 'y',
  'z', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '.', ',', '-', '_', ':', ';',
  '¿', '?', '(', ')', '[', ']', '{', '}', '<', '>', '=', '$', '&', '@', '\\', '/', '\"',
  ' '
};
 
// Índices de los caracteres de los 8 Relés para el array alfanumérico.
// Hay un total de 86 caracteres. Se cuenta desde el 0 al 85.
int roINDICE_ARRAY[][16] =
{
  { 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85 },
  { 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85 },
  { 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85 },
  { 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85 },
  { 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85 },
  { 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85 },
  { 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85 },
  { 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85 }
};
 
char roNUMERICO[] = { '1', '2', '3', '4', '5', '6', '7', '8' };
int roINDICE_NUMERICO = 0;
 
void NombreReles_Principal()
{
  ConsoleKey tecla, tecla2;
  int indice = 0;
 
  Inicio();
 
  while (true)
  {
    lcd.cursor(); // Mostrar cursor.
    lcd.blink();  // Cursosr parpadeando.
    tecla = Console.ReadKey(true).Key;
 
    // ¿Has pulsado tecla flecha arriba?
    if (tecla == digitalRead(A1)) // Sí.
    {
      if (textBox == 0)
      {
        lcd.setCursor(4, 1);
        textBox = 1;
      }
      else // textBox == 1
      {
        if (coordenadaX < 15)
        {
          coordenadaX++;
          lcd.setCursor(4 + coordenadaX, 1);
        }
      }
    }
    // Entonces. ¿Haz pulsado flecha izquierda?
    else if (tecla == digitalRead(A3)) // Sí.
    {
      if (textBox == 1)
      {
        if (coordenadaX > 0)
        {
          coordenadaX--;
          lcd.setCursor(4 + coordenadaX, 1);
        }
        else
        {
          lcd.setCursor(2, 1);
          textBox = 0;
        }
      }
    }
    // Entonces. ¿Haz pulsado flecha abajo?
    else if (tecla == digitalRead(A2)) // Sí.
    {
      if (textBox == 0)
      {
        roINDICE_NUMERICO--;
        if (roINDICE_NUMERICO < 0)
        {
          roINDICE_NUMERICO = 7;
        }
        lcd.setCursor(2, 1);
        lcd.print(roNUMERICO[roINDICE_NUMERICO]);
        MostrarLineaNombre();
        lcd.setCursor(2, 1);
      }
      else // textBox == 1
      {
        roINDICE_ARRAY[roINDICE_NUMERICO][coordenadaX]--;
        if (roINDICE_ARRAY[roINDICE_NUMERICO][coordenadaX] < 0)
        {
          roINDICE_ARRAY[roINDICE_NUMERICO][coordenadaX] = 85;
        }
        lcd.print(roALFANUMERICO[roINDICE_ARRAY[roINDICE_NUMERICO][coordenadaX]].ToString());
        lcd.setCursor(4 + coordenadaX, 1);
      }
    }
    // Entonces. ¿Haz pulsado flecha arriba?
    else if (tecla == digitalRead(A1)) // Sí.
    {
      if (textBox == 0)
      {
        roINDICE_NUMERICO++;
        if (roINDICE_NUMERICO >= 8)
        {
          roINDICE_NUMERICO = 0;
        }
        lcd.setCursor(2, 1);
        lcd.print(roNUMERICO[roINDICE_NUMERICO]);
        MostrarLineaNombre();
        lcd.setCursor(2, 1);
      }
      else // textBox == 1
      {
        roINDICE_ARRAY[roINDICE_NUMERICO][coordenadaX]++;
        if (roINDICE_ARRAY[roINDICE_NUMERICO][coordenadaX] > 85) // Acá es > 85 (o >= 86) porque 86 es la cantidad
        { // total y al alcanzarla ahí paso al comienzo (0)
          roINDICE_ARRAY[roINDICE_NUMERICO][coordenadaX] = 0;
        }
        lcd.print(roALFANUMERICO[roINDICE_ARRAY[roINDICE_NUMERICO][coordenadaX]].ToString());
        lcd.setCursor(4 + coordenadaX, 1);
      }
    }
    // Entonces. ¿Haz pulsado la tecla Enter?
    else if (tecla == digitalRead(A5)) // Sí.
    {
      lcd.cursor();   // Ocultar cursor.
      lcd.noBlink();  // Sin parpadeos el cursor.
      lcd.setCursor(0, 3);
      lcd.print("> ATRÁS     GUARDAR ");
      index = 0;
      while ((tecla2 = Console.ReadKey(true).Key) != digitalRead(A5))
      {
        if ((tecla2 == digitalRead(A4)) || (tecla2 == digitalRead(A3)))
        {
          index = 1 - index;  // Si vale 0 valdrá 1, si vale 1 valdrá 0.
          lcd.setCursor(0, 3);
          if (index == 0)
          {
            lcd.print("> ATRÁS     GUARDAR ");
          }
          else
          {
            lcd.print("  ATRÁS   > GUARDAR ");
          }
        }
      }
      if (index == 1)  // Se pulsó Enter en Guardar.
      {
        nombresDeLosReles = new String[8];
        for (int a = 0; a < 8; a++)
        {
          for (int b = 0; b < 16; b++)
          {
            nombresDeLosReles[a] += roALFANUMERICO[roINDICE_ARRAY[a][b]].ToString();
          }
        }
 
        // Guardar archivo de texto con los nombres de los relés.
        //File.WriteAllLines("NombresReles.txt", nombresDeLosReles);
 
        // En esta parte, justo arriba se hace con el lenguaje de C#, aquí hay que usar la
        // EEPROM interna de Arduino que haré más adelante.
 
        // Puede que los nombres contengan espacios al final, que no se verán pero no
        // hay que borrarlos porque al principio leerá 16 char y si faltan, fallará.
        lcd.clear();
        lcd.setCursor(2, 1);
        lcd.print("Haz guardado:");
        lcd.setCursor(2, 3);
        lcd.print((indice + 1).ToString());
        lcd.setCursor(4, 3);
        lcd.print(nombresDeLosReles[indice]);
 
        // Mientras no pulses la tecla Enter, sigue las demás intrucciones.
        while ((tecla2 = Console.ReadKey(true).Key) != digitalRead(A5))
        {
          // ¿Haz pulsado flecha arriba?
          if (tecla2 == digitalRead(A1)) // Sí. Ejecuta código dentro de ella.
          {
            indice--; // Decrementa la variable indice.
            // ¿indice es menor que 0?
            if (indice < 0) // Sí.
            {
              indice = 7;
            }
          }
          // Entonces. ¿Haz pulsado flecha abajo?
          else if (tecla2 == digitalRead(A2)) // Sí.
          {
            indice++; // Incrementa la variable indice.
            // ¿indice es mayor o igual que 8?
            if (indice >= 8) // Sí.
            {
              indice = 0;
            }
          }
          lcd.setCursor(2, 3);
          lcd.print((indice + 1).ToString());
          lcd.setCursor(4, 3);
          lcd.print(nombresDeLosReles[indice]);
        }
        Inicio();
      }
      else if (index == 0)
      {
        break;
      }
    }
  }
}
 
void Inicio()
{
  //Console.SetWindowSize(20, 5);                   // Establece el ancho y alto de la ventana.
  lcd.clear();                                // Limpiar ventana.
  lcd.setCursor(2, 0);                // Posición del cursor.
  lcd.print("Nombre de Relés:    ");
  lcd.setCursor(0, 3);
  lcd.print("  ATRÁS     GUARDAR ");
 
  //#########################################################################################
  // Este código es de C#, ya lo pasaré a Arduino con su EEPROM interna o una tarjeta SD
  // que también se puede leer archivo de texto tipo *.txt.
 
  /*
    if (cargado == false)
    {
      // ¿Existe el archivo de texto?
      if (File.Exists("NombresReles.txt"))
      {
        // Supone un archivo con 8 lineas de 16 char completas aunque sea con espacios.
        nombresDeLosReles = File.ReadAllLines("NombresReles.txt");
        int a, b, c;
        for (a = 0; a < 8; a++)
        {
          for (b = 0; b < 16; b++)
          {
            for (c = 0; nombresDeLosReles[a][b] != roALFANUMERICO[c]; c++)
            {
              ;
            }
            roINDICE_ARRAY[a][b] = c;
          }
        }
      }
      cargado = true;
    }
  */
  //#########################################################################################
 
  MostrarLineaNombre();
  lcd.setCursor(2, 1);
  lcd.print(roNUMERICO[roINDICE_NUMERICO]);
  if (textBox == 0)
  {
    lcd.setCursor(2, 1);
  }
  else
  {
    lcd.setCursor(4 + coordenadaX, 1);
  }
}
 
void MostrarLineaNombre()
{
  lcd.setCursor(4, 1);
  for (int a = 0; a < 16; a++)
  {
    lcd.print(roALFANUMERICO[roINDICE_ARRAY[roINDICE_NUMERICO][a]]);
  }
}

Falla en el almacenamiento o detección de botones de Arduino que no se como se hace como en C#.

Gracias.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder