Temperatura motor / temp. exterior en medianav con arduino

« Older   Newer »
 
  Share  
.
  1.  
    .
    Avatar

    Daciero experto

    Group
    Administrator
    Posts
    324
    Location
    Almeria

    Status
    Offline
    Necesitaremos;

    -Arduino atmega 168 o 328p
    -2x transceiver canbus tja1050 mcp2515
    -conector obd2 macho para conectar al coche
    -placa dc-dc para reducir de los mas de 14v que da el coche a entre 5-12v que soporta el arduino.

    El esquema de conexión es el siguiente. La parte del esquema de alimentacion se puede sustituir por un DC-DC que venden baratos en aliexpress o ebay, se alimenta la entrada con 16 (14v) y 4-5 (masa) y la salida se conecta a raw y gnd en el arduino.

    jpg

    Luego toca programar el arduino, instalando el arduino ide, copiando las librerias a la carpeta documentos\arduino\librerias, compilando el codigo y subiendolo al arduino.




    CODIGO VERSION 2: Temperatura motor 10s y temperatura exterior 2s de forma ciclica como se ve en el video.


    TIME_MOT 10000UL -> 10 seg
    TIME_EXT 2000UL -> 2 seg

    1 seg = 1000UL. Modificar como se desee.


    #include <mcp_can.h>
    #include <spi.h>
    #define TIME_MOT 10000UL
    #define TIME_EXT 2000UL
    #define DELAY_DATA 10UL
    #define DELAY_DATA2 20UL
    long unsigned int rxId;
    unsigned long timeData = 0;
    unsigned long delayData = 0;
    unsigned long delayData2 = 0;
    unsigned int data = 0x0;
    unsigned int newData= 0x0;
    unsigned int engTemp = 0x0;
    unsigned int extTemp= 0x0;
    bool refreshData = false;
    bool refreshData2 = true;
    byte flag = 1;
    unsigned int temp = 0x0;
    unsigned char len = 0;
    unsigned char rxBuf[8];
    unsigned char stmp[8] = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};
    MCP_CAN CAN1(5);
    MCP_CAN CAN2(10);

    void setup(){
    Serial.begin(115200);
    CAN1.begin(CAN_500KBPS, MCP_8MHz);
    CAN2.begin(CAN_500KBPS, MCP_8MHz);
    }

    void loop(){

    CAN1.readMsgBuf(&len, rxBuf);
    rxId = CAN1.getCanId();
    if(rxId == 0x646){CAN2.sendMsgBuf(0x314, 0, 8, rxBuf);}
    if(rxId == 0x5DA){engTemp=rxBuf[0];}
    if(rxId == 0x3B7){extTemp=rxBuf[0];}

    if(flag==1){
    if(timeData + TIME_MOT <= millis()) {refreshData2 = true; flag = 2; timeData=millis();}
    }
    if(flag==2){
    if(timeData + TIME_EXT <= millis()) {refreshData2 = true; flag = 1; timeData=millis();}
    }

    if(flag==1){newData=engTemp;}
    if(flag==2){newData=extTemp;}

    if (!refreshData &&(refreshData2 || delayData2+DELAY_DATA2 <= millis())){
    if (refreshData2){refreshData2=false;}
    delayData2=millis();
    if(newData != data){
    refreshData=true;
    stmp[2]=0xFF;
    CAN2.sendMsgBuf(0x558, 0, 8, stmp);
    delay(10);
    delayData=millis();
    }
    }
    if(refreshData) {
    if(delayData+DELAY_DATA <= millis()) {
    refreshData=false;
    data=newData;
    stmp[2]=data;
    CAN2.sendMsgBuf(0x558, 0, 8, stmp);
    delayData2=millis();
    delayData=millis();
    }
    }else{
    if(delayData+DELAY_DATA2 <= millis()){CAN2.sendMsgBuf(0x558, 0, 8, stmp);delayData=millis();}
    }
    }
     
    .
  2.  
    .
    Avatar

    Novato

    Group
    Member
    Posts
    18

    Status
    Offline
    Vale para el primer modelo o es solo para el Evolution.
     
    .
  3.  
    .
    Avatar

    Daciero experto

    Group
    Administrator
    Posts
    324
    Location
    Almeria

    Status
    Offline
    QUOTE (jlpdt @ 18/3/2019, 11:46) 
    Vale para el primer modelo o es solo para el Evolution.

    Comprobado en los 2 modelos. Funciona igual.
     
    .
  4.  
    .
    Avatar

    Novato

    Group
    Member
    Posts
    18

    Status
    Offline
    Estupendo, gracias.

    Otra consulta, los códigos PID tanto de temperatura del motor como la externa están embebidos en la programación del Arduino, entonces... ¿No sería factible saber cuál es cuál y meterlos en el torque?. Cualquiera podría saber los datos sin tener que soldar y demás enredos.

    Edited by jlpdt - 19/3/2019, 13:33
     
    .
  5.  
    .
    Avatar

    Daciero experto

    Group
    Administrator
    Posts
    324
    Location
    Almeria

    Status
    Offline
    QUOTE (jlpdt @ 19/3/2019, 12:13) 
    Estupendo, gracias.

    Otra consulta, los códigos PID tanto de temperatura del motor como la externa están embebidos en la programación del Arduino, entonces... ¿No sería factible saber cuál es cuál y meterlos en el torque?. Cualquiera podría saber los datos sin tener que soldar y demás enredos.

    Torque ya reconoce la temperatura motor directamente. Para temperatura exterior y otros parametros ya lo expliqué en este hilo:

    https://dacieros.forumfree.it/?t=75615092
     
    .
  6.  
    .
    Avatar

    Novato

    Group
    Member
    Posts
    18

    Status
    Offline
    Si ya vi, y había probado con anterioridad,pero a mi no me funciona, no me saca ningún valor.

    Voy a probar con este artilugio!!.
     
    .
  7.  
    .
    Avatar

    Novato

    Group
    Member
    Posts
    18

    Status
    Offline
    Otra duda que tengo, ¿con un cable en "y" puedo tener conectado esto y el elm327?
     
    .
  8.  
    .
    Avatar

    Daciero experto

    Group
    Administrator
    Posts
    324
    Location
    Almeria

    Status
    Offline
    QUOTE (jlpdt @ 25/3/2019, 13:21) 
    Otra duda que tengo, ¿con un cable en "y" puedo tener conectado esto y el elm327?

    Yo lo llevo asi, si. Pero el cable en Y tiene que tener los 16 hilos. Esos finos negros suelen traer solo 6-8 cables para el canbus y ya.
     
    .
  9.  
    .
    Avatar

    Novato

    Group
    Member
    Posts
    18

    Status
    Offline
    Vale, importante lo del cable!. Ok.
     
    .
  10.  
    .
    Avatar

    Novato

    Group
    Member
    Posts
    5

    Status
    Offline
    Hola!! Este tema me encanta. Lo de la conexión con el esquema creo que queda bien clarito. Pero la programación, no la entiendo tanto. ¿Solo con copiar esos parámetros al arduino vale? ¿Que programa usas? Supongo que luego tendrás que activar lo de la temperatura en micon... No? Gracias
     
    .
  11.  
    .
    Avatar

    Novato

    Group
    Member
    Posts
    18

    Status
    Offline
    Hola, pues sin querer desanimarte necesitas ciertos conocimientos porque el esquema eléctrico hay que adaptarlo, además de necesitar una librería para compilar el sketch de Arduino y no falle. Si tengo un rato, os escribo mi aportación a ver qué os parece.

    Y hasta ahí puedo leer yo, porque me queda modificar la configuración de la centralita y conectar el invento.

    Ahora llega mi duda, ¿Cómo va a dar lecturas de temperatura externa si antes no le hemos montado el sensor y lo hemos conectado al cuenta kilómetros?. Ese detalle creo que se ha omitido.
     
    .
  12.  
    .
    Avatar

    Novato

    Group
    Member
    Posts
    5

    Status
    Offline
    Pues vaya.... No vale conectarlo como viene ahí? Respecto a lo de arduino, sería copiar y pegar? Bueno, he estado mirando los componentes y valen unos 10€, indagare un poco y a ver si os puedo contar. Por cierto lo de la sonda de temperatura, el mio si trae, principalmente lo hago por la temperatura exacta del motor porque la de los palitroques del cuadro no me es muy vistosa
     
    .
  13.  
    .
    Avatar

    Daciero experto

    Group
    Administrator
    Posts
    324
    Location
    Almeria

    Status
    Offline
    Si, copias el código a la aplicación arduino y lo envías a tu modelo arduino.

    El coche lleva el sensor desde siempre. Con la can clip del conce te dice la temperatura del agua sin nada adicional. Con esto hacemos que esa información la mande al medianav.
     
    .
  14.  
    .
    Avatar

    Novato

    Group
    Member
    Posts
    5

    Status
    Offline
    Perfecto. Muchas gracias. Ya pedí los componentes... En cuanto lleguen y sea capaz de programar y montar comento...
     
    .
  15.  
    .
    Avatar

    Daciero medio

    Group
    Member
    Posts
    62

    Status
    Offline
    En el mio le saque la temperatura en el cuadro,los palitos,version nomada.Esto de los foros no se muy bien como funciona,ahora parece que entro por gmail,disculparme si meto la pata.Si hay una manera que no sean los palitos ,por favor explicarlo pero bien.Gracias saludos
     
    .
24 replies since 16/1/2019, 20:34   2225 views
  Share  
.