bool loop_flag = false;
void setup() {
Serial.begin(9600); // abre el puerto serie a 9600 bps:
}
void loop() {
if (loop_flag == false) {
Serial.println("*** Ejecucion Iniciada. ***");
entrada_salida(); // nombre del proceso principal
Serial.println("Desea reinicar");
if (readString_Serial() != "Y\n" ) {
loop_flag = true;
Serial.println("*** Ejecucion Finalizada. ***");
Serial.end();
}
}
}
void entrada_salida() {
byte a;
int a0;
unsigned int a1;
long a2;
unsigned long a3;
float b;
String c;
bool d;
// leer de a uno
Serial.println( "leer diferentes tipos \n" );
Serial.println( "entero minimo sin signo entre 0 y 255 1:>" ); // desborde en 256 -0
a = readshortInt_0_255_Serial();
Serial.println(a);
Serial.println( "entero corto con signo entre -32,768 y 32,767 2:>" ); // desborde en 32768 o -32769
a0 = readInteger_neg32k_32k_Serial();
Serial.println(a0);
Serial.println( "entero sin signo desde 0 hasta 65.535 3:>" ); // desborde en 65536
a1 = readInteger_0_65k_Serial();
Serial.println(a1);
Serial.println( "entero largo con signo entre -2.147.483,648 hasta 2.147.483.647 4:>" ); // 2147483648 -2147483649
a2 = readInteger_neg2_1e9_2_1e9_Serial();
Serial.println(a2);
Serial.println( "entero largo sin signo dese0 hasta 4.294.967.295 5:>" ); // 4294967296
a3 = readInteger_0_4_2e9_Serial();
Serial.println(a3);
//
Serial.println( "real 6:>" );
b = readFloat_Serial();
Serial.println(b);
Serial.println( "cadena 7:>" );
c = readString_Serial();
Serial.println(c);
Serial.println( "logico 8:>" );
d = readBool_Serial();
Serial.println(d);
}
// Subfuciones terminal
String readString_Serial() {
while (Serial.available() == 0) {} // Espera la entrada del usuario
return Serial.readString();
}
// Integer
byte readshortInt_0_255_Serial() { // [0, 255]
while (Serial.available() == 0); // Espera la entrada del usuario
return Serial.parseInt();
}
int readInteger_neg32k_32k_Serial() { // [-32,768, ..., 32,767]
while (Serial.available() == 0); // Espera la entrada del usuario
return Serial.parseInt();
}
unsigned int readInteger_0_65k_Serial() { // [0, ..., 65,535 ]
while (Serial.available() == 0); // Espera la entrada del usuario
return Serial.parseInt();
}
long readInteger_neg2_1e9_2_1e9_Serial() { // [-2,147,483,648, ... 2,147,483,647]
while (Serial.available() == 0); // Espera la entrada del usuario
return Serial.parseInt();
}
unsigned long readInteger_0_4_2e9_Serial() { // [0, ..., 4.294.967.295]
while (Serial.available() == 0); // Espera la entrada del usuario
return Serial.parseInt();
}
///
float readFloat_Serial() {
while (Serial.available() == 0); // Espera la entrada del usuario
return Serial.parseFloat();
}
bool readBool_Serial() { // número igual a cero se toma como 0 (false), otro caso se convierte a 1 (true)
while (Serial.available() == 0); // Espera la entrada del usuario
return Serial.parseInt();
}