FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
|||
|
|||
Cambiar este código C++
Hola:
El programa que quiero es: 1. Si pulso un número 1 o un 2 en C++, envía un mensaje a Aduino, luego Arduino le devuelve un mensaje. 2. Si pulso otro número que no está en el Switch Case, te salta el mensaje Default inficando que solo hay dos opciones para pulsar, tecla 1 y 2. Si pulso un 3 o otro valor que no existe, se queda elprograma C++ como esperando y no hace nada. 3. Si no se pulsa nada desde C++, Arduino tiene un botón, que al pulsarlo, envía mensajes llamado, ON o un OFF, C++ debe leer, nunca los lee. Uso el IDE de Visual Studio 2017 en Win32 consola. El código C++ que debo mejorar y no se como hacerlo lo que pido arriba: Código:
// Para crear conexión con los puertos COM1 - COM9. // Serial* Arduino = new Serial("COM7"); // Para crear conexión con los puertos COM10 en adelante. // Serial* Arduino = new Serial("\\\\.\\COM10"); #include <iostream> #include <fstream> #include <Windows.h> #include "SerialClass.h" using namespace std; void main() { // Título de la ventana SetConsoleTitle("Control Led Arduino."); // Puerto serie. Serial* Puerto = new Serial("COM4"); // Comandos para Arduino. char Luz_ON[] = "Luz_ON"; // Envía "Luz_ON" al puerto serie. char Luz_OFF[] = "Luz_OFF"; char lectura[50] = "\0"; // Guardan datos de entrada del puerto. int opc; // Guarda un 1 o 2 tipo entero queintroduces desde la consola. while (Puerto->IsConnected()) { cout << endl; // Dejamos un retorno. cout << "Introduzca la opcion deseada: " << endl << endl; // Muestra texto en pantalla. cin >> opc; // Aquí introduces un número, el 1 o el 2. switch (opc) // Espera recibir un 1 o un 2. { case 1: // Encener luz. cout << "Enviando: " << Luz_ON << endl; // Muestra en pantalla textos. Puerto->WriteData(Luz_ON, sizeof(Luz_ON) - 1); // Envía al puerto el texto "Luz_ON". break; case 2: // Apagar luz. cout << "Enviando: " << Luz_OFF << endl; Puerto->WriteData(Luz_OFF, sizeof(Luz_OFF) - 1); break; default: // Si haz pulsado otro número distinto del 1 y 2, muestra cout << "Puse del 1 al 2."; // este mensaje. } while (true) { int n = Puerto->ReadData(lectura, 49); if (n > 0) { lectura[n + 1] = '\0'; break; } Sleep(1); } cout << "Recibido: " << lectura << endl; cout << "-------------------" << endl; } } https://github.com/Gmatarrubia/LibreriasTutoriales ¿Alguna ayuda? Llevo dos semanas con esto, ajjaa ajaj ja jaja. Al menos he logrado enviar y recibir algo, pero no sale como quiero. Saludos.
__________________
http://electronica-pic.blogspot.com....n-arduino.html Manuales de electrónica general, PIC y Arduino. |
#2
|
||||
|
||||
El error fundamental que te bloquea el código es esta línea:*
Código PHP:
- si opc es 1 ó 2 no entra en el bucle puesto que la condición es falsa. - si opc no es 1 ni 2, la condición del bucle es cierta, entra y no sale. Esto lo resuelves así: Código PHP:
Código PHP:
|
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Me ayudan con este código?? | MaxiDucoli | Varios | 1 | 15-03-2015 16:04:31 |
ayuda con este codigo | kurono | Varios | 5 | 02-04-2014 00:25:11 |
Porque este código me da error (adjunto código) | David | JAVA | 1 | 12-03-2009 20:07:27 |
ayuda con este codigo | kurono | Varios | 4 | 13-06-2008 01:03:29 |
Que significa este codigo? | D-MO | PHP | 14 | 23-01-2006 10:08:21 |
|