Título: Conexión de lenguaje en C a Arduino
Publicado por: Emily en 13 Junio 2017, 06:25 am
hola disculpen tengo este codigo :#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(); 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') { } 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"); return 1; } while(1) { SerialSendByte(hPort, a); byte = SerialReceiveByte(hPort); if (byte == 'a') } CloseSerialPort(hPort); 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#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"); printf ("\ningrese los minutos \t"); printf ("\ningrese los segundos \t"); inicio: local (a,b,c); if (a<24&&b<=59&&c<=59) { printf ("\namerica\t");// (^u^)/ america (a,b,c); 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; } }
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 (http://foro.elhacker.net/reglas.htm) -Engel Lex
Título: Re: Conexión de lenguaje en C a Arduino
Publicado por: engel lex en 13 Junio 2017, 07:16 am
con esa función sendbyte le enviarías via serial al arduino lo que quieras, ya lo que haga el arduino con lo que le mandes depende del codigo en el arduino
Título: Re: Conexión de lenguaje en C a Arduino
Publicado por: MAFUS en 13 Junio 2017, 08:56 am
Aclarando lo que quiere decirte engel lex: tiene que construir el código para el arduino y subírselo.
Título: Re: Conexión de lenguaje en C a Arduino
Publicado por: Emily en 13 Junio 2017, 11:29 am
Muchas por su ayuda Una duda mas Y en Arduino cómo sería el código para recibir ese dato que se envía ??
Título: Re: Conexión de lenguaje en C a Arduino
Publicado por: engel lex en 13 Junio 2017, 12:40 pm
depende de como armes todo... pero el mismo IDE de arduino tiene ejemplos de codigos simples, revisalo
|