hola disculpen tengo este codigo :
me preguntaba como puedo hacer para que este mande un mensaje a arduino y que arduino me muestre el mensaje en su monitor serie
hola a todos
hice este código pero deseo que las horas se manden a arduino y aparezcan en una pantalla lcd
alguien de favor me podría decir el como hacer que aparezcan
· No hagas dos temas sobre el mismo asunto
>aquí las reglas del foro
-Engel Lex
Código (c) [Seleccionar]
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <string.h>
#include <windows.h>
void SerialSendByte(HANDLE hPort, char byte); //envía datos enn el puerto
char SerialRecieveByte(HANDLE hPort); //recive datos en el puerto
BOOL CloseSerialPort(HANDLE hPort); //cierra puerto
HANDLE OpenSerialPort(char *psPort,//es pecifica en que COM se trbajará
DWORD dwBaudRate, // tasa de transferencia
BYTE dwByteSize, //especifica el tamaño de la cadena
BYTE bParity, // para asegurar si la cadena se envió completa o no
BYTE bStopBits, // para la cadena de caracteres
DWORD Timeout) // espera cierto tiempo para recibir orden y si no recieb nada despliega un mensaje
{
HANDLE hPort;
DCB dcbPort;
DWORD dwError;
COMMTIMEOUTS commTimeouts;
hPort = CreateFile(psPort, //se crea un archivo el cual contiene ciertos parametros para poder funcionar
GENERIC_READ | GENERIC_WRITE,
0,
NULL,
OPEN_EXISTING,
0,
NULL);
if(hPort == INVALID_HANDLE_VALUE) //se crea un if para saber si se creó el archivo
{
dwError = GetLastError();
system("pause");
return(hPort);
}
FillMemory(&dcbPort/*indica memoria de puerto*/, sizeof(dcbPort)/*indica el tamaño de la memoria designada al puerto*/,0/*indica si esta activo*/); //permite la administracion de la memoria del puerto, para esto es necesario la variable DCBport
dcbPort.DCBlength = sizeof(dcbPort);
GetCommState (hPort, &dcbPort); //recoge el puerto, el tamaño y el estado
dcbPort.BaudRate = dwBaudRate; //atributo del objeto dcb port e indica la tasa de transferencia
dcbPort.ByteSize = dwByteSize;
dcbPort.Parity = bParity;
dcbPort.StopBits = bStopBits;
if(!SetCommState(hPort, &dcbPort)) //Verificar el estado del puerto
{
dwError = GetLastError();
CloseSerialPort(hPort);
hPort = INVALID_HANDLE_VALUE;
return(hPort);
}
if(!SetCommTimeouts(hPort, &commTimeouts)) //Verificar el tiempo de espera
{
dwError = GetLastError();
CloseSerialPort(hPort);
hPort = INVALID_HANDLE_VALUE;
return(hPort);
}
return hPort;
}
char SerialReceiveByte(HANDLE hPort)
{
DWORD bytesread;
DWORD *ptrbytesread = &bytesread;
char read;
char *ptrread = &read;
ReadFile(hPort,ptrread,1,ptrbytesread,NULL);
if (read == 'a')
{
printf("\nProceso\n\n");
printf("aqui %c\n",read );
}
return (read);
}
void SerialSendByte(HANDLE hPort, char byte) // permite enviar datos
{
DWORD byteswritten;
DWORD *ptrbyteswritten = &byteswritten;
char *ptrwrite = &byte;
WriteFile(hPort,&byte,1,ptrbyteswritten,NULL);
}
BOOL CloseSerialPort(HANDLE hPort)
{
BOOL bRes;
DWORD dwError;
bRes = CloseHandle(hPort);
if(!bRes)
{
dwError = GetLastError();
}
return bRes;
}
int main()
{
HANDLE hPort;
char byte;
char a='a';
hPort = OpenSerialPort("COM3",CBR_9600,8,NOPARITY,ONESTOPBIT,10000);
if(hPort == INVALID_HANDLE_VALUE)
{
printf("Error al abrir el puerto\n");
system("pause");
return 1;
}
while(1)
{
SerialSendByte(hPort, a);
byte = SerialReceiveByte(hPort);
if (byte == 'a')
printf("dato %c\n",byte);
}
CloseSerialPort(hPort);
system ("pause");
return 0;
}
me preguntaba como puedo hacer para que este mande un mensaje a arduino y que arduino me muestre el mensaje en su monitor serie
hola a todos
hice este código pero deseo que las horas se manden a arduino y aparezcan en una pantalla lcd
Código (c) [Seleccionar]
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <windows.h>
void america(int a,int b, int c)
{
if (a<23) { printf ("Caracas Venezuela: %d:%d:%d\n",a+1,b,c); }
else { printf ("Caracas Venezuela: 00:%d:%d",b,c); }
}
void asia (int a,int b,int c)//10:00 - 00:00
{
if (a<10) { printf ("Corea del Sur: %d:%d:%d\n",a+14,b,c); }
else if (a==10){ printf ("Corea del Sur: 00:%d:%d\n",b,c); }
else { printf ("Corea del Sur: %d:%d:%d\n",a-10,b,c); }
}
void africa (int a,int b, int c)// 17:00 - 00:00
{
if (a<17) { printf ("Egipto: %d:%d:%d\n",a+7,b,c); }
else if (a==17){ printf ("Egipto: 00:%d:%d\n",b,c); }
else { printf ("Egipto: %d:%d:%d\n",a-17,b,c);}
}
void oceania (int a, int b, int c)// 11:00 - 00:00
{
if (a<11) { printf ("Sydney: %d:%d:%d\n",a+13,b,c); }
else if (a==11){ printf ("Sydney: 00:%d:%d\n",b,c); }
else { printf ("Sydney: %d:%d:%d\n",a-11,b,c); }
}
void europa (int a, int b, int c)//18:00 - 00:00
{
if (a<18) { printf ("Londres: %d:%d:%d\n",a+6,b,c); }
else if (a==18){ printf ("Londres: 00:%d:%d\n",b,c); }
else { printf ("Londres: %d:%d:%d\n",a-18,b,c); }
}
void local (int a, int b, int c)
{
if (c>59) printf ("%d:%d:0",a,b+1);
else if (b>59) printf ("%d:0:%d",a+1,c);
else if (a>23) printf ("0:%d:%d",b+c);
else printf ("%d:%d:%d",a,b,c+1);
}
int main ()
{
int a,b,c;
char opc;
WORD pausa=1000;
printf ("ingrese los datos\n");
printf ("ingrese la hora (24 hrs)\t");
scanf ("%i",&a);
printf ("\ningrese los minutos \t");
scanf ("%i",&b);
printf ("\ningrese los segundos \t");
scanf ("%i",&c);
printf("%d:%d:%d",a,b,c);
getch();
inicio:
system("cls");
printf ("\n");
local (a,b,c);
if (a<24&&b<=59&&c<=59)
{
printf ("\namerica\t");// (^u^)/
america (a,b,c);
printf ("\nasia\t");// (^u^)/
asia (a,b,c);
printf ("\nafrica\t");// (^u^)/
africa (a,b,c);
printf ("\noceania\t");// (^u^)/
oceania (a,b,c);
printf ("\neuropa\t");// (^u^)/
europa (a,b,c);
c++;
if (c==60) {c=0; b++;}
if (b==60) {b=0; a++;}
if (a==24) a=0;
Sleep(pausa);
goto inicio;
}
getch();
}
alguien de favor me podría decir el como hacer que aparezcan
· No hagas dos temas sobre el mismo asunto
>aquí las reglas del foro
-Engel Lex