Skip to content

Instantly share code, notes, and snippets.

@esmarr58
Last active February 15, 2018 22:10
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save esmarr58/6d95cd7dba54604a72fa16c78403c8f4 to your computer and use it in GitHub Desktop.
Save esmarr58/6d95cd7dba54604a72fa16c78403c8f4 to your computer and use it in GitHub Desktop.
/*
Autor: Dr. Rubén Estrada Marmolejo
ruben.estrada@hetpro.com.mx
hetpro-store.com/TUTORIALES
*/
#include<math.h>
double catetoOpuesto = 0.0; //Variable para guardar el valor del cateto opuesto
double catetoAdyacente = 0.0; //Variable para guardar el valor del cateto adjacente
//Variable para guardar angulos
double anguloRadianes = 0.0;
double anguloGrados = 0.0;
//Variables para guardar la cadena de caracteres del puerto serial
String cadenaCharEntrada = "";
char vectorChar[20];
//Variable que guarda la opcion del flujo del programa
int opcion = 0;
void setup() {
Serial.begin(9600); //Se configura el puerto serial a 9600 BAUDs
cadenaCharEntrada.reserve(20); //Se reserva espacio en memoria para la cadena de caracteres
Serial.print("Ingrese el valor del catodo opuesto: "); //Se inicia el primer mensaje
opcion++; //Permite indicar la impresion de la siguiente opcion en la funcion de la recepcion serial
}
void loop() {
//El programa principal no esta haciendo nada. Aunque en realidad la funcion serialEvent se ejecuta en cada iteracion de este ciclo
}
void serialEvent(){
//Recepción de datos Seriales
while (Serial.available()) { //Si existen datos seriales, leer a todos
char CaracterEntrada = Serial.read(); //Leer 1 byte serial recibido
cadenaCharEntrada += CaracterEntrada; //Agregar el nuevo char a una cadena String
if (CaracterEntrada == '\n') { //Si el char o byte recibido es un fin de linea, activa la bandera
if(opcion == 1) {
cadenaCharEntrada.toCharArray(vectorChar,20); //Convertimos el string a un vectorChar
double numeroEntero = atof(vectorChar); //Convertimos un vectorChar a una variable double
catetoOpuesto = numeroEntero; //Se guarda la variable
Serial.println(catetoOpuesto);
cadenaCharEntrada = "";
Serial.println(" ");
Serial.print("Ingrese el valor del catodo adyacente: ");
opcion = 2;
}
else if(opcion == 2){
cadenaCharEntrada.toCharArray(vectorChar,20); //Convertimos el string a un vectorChar
double numeroEntero2 = atof(vectorChar); //Convertimos un vectorChar a un entero
catetoAdyacente = numeroEntero2;
cadenaCharEntrada = "";
Serial.println(catetoAdyacente);
Serial.println(" ");
Serial.print("El resultado en radianes es: ");
anguloRadianes = atan((double)(catetoOpuesto/catetoAdyacente)); //Se ejecuta a la funcion de Arduino atan
Serial.println(anguloRadianes);
Serial.print("El resultado en grados es: ");
anguloGrados = 180*(double)anguloRadianes/PI;
Serial.println(anguloGrados);
opcion = 1;
Serial.println("****************");
Serial.print("Ingrese el valor del catodo opuesto: ");
}
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment