elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: AIO elhacker.NET 2021 Compilación herramientas análisis y desinfección malware


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Conexión de lenguaje en C a Arduino
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Conexión de lenguaje en C a Arduino  (Leído 2,847 veces)
Emily

Desconectado Desconectado

Mensajes: 18


Ver Perfil
Conexión de lenguaje en C a Arduino
« en: 13 Junio 2017, 06:25 am »

hola disculpen tengo este codigo :
Código
  1. #include <stdio.h>
  2. #include <conio.h>
  3. #include <stdlib.h>
  4. #include <string.h>
  5. #include <windows.h>
  6.  
  7. void SerialSendByte(HANDLE hPort, char byte); //envía datos enn el puerto
  8. char SerialRecieveByte(HANDLE hPort); //recive datos en el puerto
  9. BOOL CloseSerialPort(HANDLE hPort); //cierra puerto
  10.  
  11. HANDLE OpenSerialPort(char *psPort,//es pecifica en que COM se trbajará
  12.                      DWORD dwBaudRate, // tasa de transferencia
  13.                      BYTE dwByteSize, //especifica el tamaño de la cadena
  14.                      BYTE bParity, // para asegurar si la cadena se envió completa o no
  15.                      BYTE bStopBits, // para la cadena de caracteres
  16.                      DWORD Timeout) // espera cierto tiempo para recibir orden y si no recieb nada despliega un mensaje
  17. {
  18.    HANDLE hPort;
  19.    DCB dcbPort;
  20.    DWORD dwError;
  21.    COMMTIMEOUTS commTimeouts;
  22.    hPort = CreateFile(psPort, //se crea un archivo el cual contiene ciertos parametros para poder funcionar
  23.    GENERIC_READ | GENERIC_WRITE,
  24.    0,
  25.    NULL,
  26.    OPEN_EXISTING,
  27.    0,
  28.    NULL);
  29.    if(hPort == INVALID_HANDLE_VALUE) //se crea un if para saber si se creó el archivo
  30.    {
  31.         dwError = GetLastError();
  32.         system("pause");
  33.         return(hPort);
  34.    }
  35.    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
  36.    dcbPort.DCBlength = sizeof(dcbPort);
  37.    GetCommState (hPort, &dcbPort); //recoge el puerto, el tamaño y el estado
  38.    dcbPort.BaudRate = dwBaudRate; //atributo del objeto dcb port e indica la tasa de transferencia
  39.    dcbPort.ByteSize = dwByteSize;
  40.    dcbPort.Parity = bParity;
  41.    dcbPort.StopBits = bStopBits;
  42.    if(!SetCommState(hPort, &dcbPort)) //Verificar el estado del puerto
  43.    {
  44.        dwError = GetLastError();
  45.        CloseSerialPort(hPort);
  46.        hPort = INVALID_HANDLE_VALUE;
  47.        return(hPort);
  48.    }
  49.    if(!SetCommTimeouts(hPort, &commTimeouts)) //Verificar el tiempo de espera
  50.    {
  51.        dwError = GetLastError();
  52.        CloseSerialPort(hPort);
  53.        hPort = INVALID_HANDLE_VALUE;
  54.        return(hPort);
  55.    }
  56.    return hPort;
  57. }
  58.  
  59. char SerialReceiveByte(HANDLE hPort)
  60. {
  61.  
  62.   DWORD bytesread;
  63.   DWORD *ptrbytesread = &bytesread;
  64.   char read;
  65.   char *ptrread = &read;
  66.  
  67.   ReadFile(hPort,ptrread,1,ptrbytesread,NULL);
  68.    if (read == 'a')
  69.    {
  70.       printf("\nProceso\n\n");
  71.       printf("aqui %c\n",read );
  72.    }
  73.  
  74.   return (read);
  75.  
  76. }
  77.  
  78. void SerialSendByte(HANDLE hPort, char byte) // permite enviar datos
  79. {
  80.  
  81.     DWORD byteswritten;
  82. DWORD *ptrbyteswritten = &byteswritten;
  83.     char *ptrwrite = &byte;
  84.     WriteFile(hPort,&byte,1,ptrbyteswritten,NULL);
  85.  
  86. }
  87.  
  88.  
  89.  
  90.  
  91. BOOL CloseSerialPort(HANDLE hPort)
  92. {
  93.   BOOL bRes;
  94.   DWORD dwError;
  95.   bRes = CloseHandle(hPort);
  96.   if(!bRes)
  97.   {
  98.     dwError = GetLastError();
  99.   }
  100.   return bRes;
  101. }
  102. int main()
  103. {
  104.   HANDLE hPort;
  105.   char byte;
  106.   char a='a';
  107.   hPort = OpenSerialPort("COM3",CBR_9600,8,NOPARITY,ONESTOPBIT,10000);
  108.   if(hPort == INVALID_HANDLE_VALUE)
  109.   {
  110.      printf("Error al abrir el puerto\n");
  111.      system("pause");
  112.      return 1;
  113.   }
  114.   while(1)
  115.   {    
  116.      SerialSendByte(hPort, a);
  117.      byte = SerialReceiveByte(hPort);
  118.      if (byte == 'a')
  119.           printf("dato %c\n",byte);
  120.   }
  121.  
  122.   CloseSerialPort(hPort);
  123.   system ("pause");
  124.   return 0;
  125. }
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
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <conio.h>
  4. #include <windows.h>
  5. void america(int a,int b, int c)
  6. {
  7.        if (a<23) { printf ("Caracas Venezuela: %d:%d:%d\n",a+1,b,c); }
  8.        else      { printf ("Caracas Venezuela: 00:%d:%d",b,c);       }
  9. }
  10. void asia (int a,int b,int c)//10:00 - 00:00
  11. {
  12.     if (a<10) { printf ("Corea del Sur: %d:%d:%d\n",a+14,b,c); }
  13. else if (a==10){ printf ("Corea del Sur: 00:%d:%d\n",b,c);      }
  14.   else        { printf ("Corea del Sur: %d:%d:%d\n",a-10,b,c); }
  15.  
  16. }
  17. void africa (int a,int b, int c)// 17:00 - 00:00
  18. {
  19.     if (a<17) { printf ("Egipto: %d:%d:%d\n",a+7,b,c); }
  20. else if (a==17){ printf ("Egipto: 00:%d:%d\n",b,c);     }
  21.   else        { printf ("Egipto: %d:%d:%d\n",a-17,b,c);}
  22. }
  23. void oceania (int a, int b, int c)// 11:00 - 00:00
  24. {
  25.     if (a<11) { printf ("Sydney: %d:%d:%d\n",a+13,b,c); }
  26. else if (a==11){ printf ("Sydney: 00:%d:%d\n",b,c);      }
  27.   else        { printf ("Sydney: %d:%d:%d\n",a-11,b,c); }
  28. }
  29. void europa (int a, int b, int c)//18:00 - 00:00
  30. {
  31.     if (a<18) { printf ("Londres: %d:%d:%d\n",a+6,b,c);  }
  32. else if (a==18){ printf ("Londres: 00:%d:%d\n",b,c);      }
  33.   else        { printf ("Londres: %d:%d:%d\n",a-18,b,c); }
  34. }
  35. void local (int a, int b, int c)
  36. {
  37.     if (c>59) printf ("%d:%d:0",a,b+1);
  38. else if (b>59) printf ("%d:0:%d",a+1,c);
  39. else if (a>23) printf ("0:%d:%d",b+c);
  40. else printf ("%d:%d:%d",a,b,c+1);
  41.  
  42. }
  43. int main ()
  44. {
  45.      int a,b,c;
  46.      char opc;
  47.      WORD pausa=1000;
  48.       printf ("ingrese los datos\n");
  49.                  printf ("ingrese la hora (24 hrs)\t");    
  50.                  scanf ("%i",&a);
  51.                  printf ("\ningrese los minutos           \t");
  52.                  scanf ("%i",&b);
  53.                  printf ("\ningrese los segundos          \t");
  54.                  scanf ("%i",&c);
  55.                  printf("%d:%d:%d",a,b,c);
  56.                  getch();
  57.                  inicio:
  58.                  system("cls");
  59.                  printf ("\n");
  60.                  local (a,b,c);
  61.                     if (a<24&&b<=59&&c<=59)
  62.                  {
  63.                    printf ("\namerica\t");//  (^u^)/
  64.                    america (a,b,c);
  65.                    printf ("\nasia\t");//     (^u^)/
  66.                    asia (a,b,c);
  67.                    printf ("\nafrica\t");//   (^u^)/
  68.                    africa (a,b,c);
  69.                    printf ("\noceania\t");//  (^u^)/
  70.                    oceania (a,b,c);
  71.                    printf ("\neuropa\t");//   (^u^)/
  72.                    europa (a,b,c);
  73.                    c++;
  74.                  if (c==60) {c=0; b++;}
  75.                  if (b==60) {b=0; a++;}
  76.                  if (a==24) a=0;
  77.                  Sleep(pausa);
  78.                    goto inicio;
  79.                  }
  80.  getch();
  81. }
  82.  
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


« Última modificación: 13 Junio 2017, 07:16 am por engel lex » En línea

engel lex
Moderador Global
***
Desconectado Desconectado

Mensajes: 15.514



Ver Perfil
Re: Conexión de lenguaje en C a Arduino
« Respuesta #1 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


En línea

El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
MAFUS


Desconectado Desconectado

Mensajes: 1.603



Ver Perfil
Re: Conexión de lenguaje en C a Arduino
« Respuesta #2 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.
En línea

Emily

Desconectado Desconectado

Mensajes: 18


Ver Perfil
Re: Conexión de lenguaje en C a Arduino
« Respuesta #3 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 ??
« Última modificación: 13 Junio 2017, 11:31 am por Emily » En línea

engel lex
Moderador Global
***
Desconectado Desconectado

Mensajes: 15.514



Ver Perfil
Re: Conexión de lenguaje en C a Arduino
« Respuesta #4 en: 13 Junio 2017, 12:40 pm »

depende de como armes todo... pero el mismo IDE de arduino tiene ejemplos de codigos simples, revisalo
En línea

El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Arduino tengo el RX/TX y un puerto serie... Como hago una conexion?
Electrónica
Banti 4 11,574 Último mensaje 26 Junio 2010, 22:26 pm
por Debci
Controlar Arduino con Lenguaje C (Puerto Serial)
Programación C/C++
krlosexe 1 6,372 Último mensaje 27 Enero 2015, 04:15 am
por 43H4FH44H45H4CH49H56H45H
Conexion bluetooh en Lenguaje C
Programación C/C++
C770101 0 1,171 Último mensaje 22 Mayo 2015, 04:54 am
por C770101
Comunicación a Arduino mediante lenguaje en c (puerto Serial)
Programación C/C++
Emily 2 2,368 Último mensaje 12 Junio 2017, 09:46 am
por Emily
Arduino conexion remota
Programación General
01munrra 4 2,418 Último mensaje 20 Junio 2019, 15:48 pm
por 01munrra
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines