Last active
February 15, 2018 22:10
-
-
Save esmarr58/6d95cd7dba54604a72fa16c78403c8f4 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/* | |
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