Buenas a todos, voy a intentar en todo lo posible estar aquí otra vez con ustedes.
Vamos con lo del CAN BUS, este post sera algo extenso.
Bueno supongo que habéis leído lo que ya puse sobre el CAN, voy a hacer un resumen.
Hay dos tipos de formas de mandar la trama: Standar (11 bits) o Extendida (29 bits), vamos a usar la de 11 bits que tendremos de sobra para cualquier proyecto.
La trama se compondrá de:
- Un identificador (ID) que es donde pondremos la dirección en hexadecimal por la cual queremos enviar la trama, al tener 11bits,
tendremos un margen de direcciones desde 0x000 a 0x7FF, vamos a poder mandar muchísimos datos.
La ID también representa la prioridad de envió de los datos, Ej; si mandamos dos trama una con dirección 0x010 y otra con 0x036 se enviara primero la 0x010.
- El DCL o Length: Esto nos indica la longitud de la trama, tendremos que poner el numero de bytes que vamos a mandar por la trama, Maximo 8 bytes.
-La Trama, estará compuesta como máximo de 8 bytes, podremos mandar un dato por cada bytes o 1 dato en dos bytes, según la precisión de medida que queramos,
(os explicare mas adelante como mandar 1 datos en dos bytes, de momento vamos a mandar 1 dato en 1 bytes, Ej: mandamos la lectura de un sensor de temperatura en un solo bytes y obtendremos una lectura de dos digitos, si queremos decimales, tendremos que mandar esa lectura en 2 bytes, es asín mas o menos ya entrare a explicar esto mejor).
-La velocidad de envió de la trama la seleccionaremos según nuestro propósito, siempre teniendo en cuenta la limitación por longitud del cable(siempre trenzado).
40 mts...................................1000 kbit/seg
100 mts...................................500 kbit/seg
200 mts...................................250 kbit/seg
500 mts...................................100 kbit/seg
1000mts....................................50 kbit/seg
Os dejo aquí como se conecta el MCP con arduino UNO y Mega, que ya sabréis que se conecta por SPI, os dejo también una imagen de como se conectan los dos MCP entre ellos y uno de ellos tiene que tener un punte echo para cerrar el CAN, si no, no funciona.
Por ultimo respecto al cristal de 8Mhz o 16Mhz, os dije de poner 16Mhz a parte por la velocidad, es por que las librerías buenas que tengo para el CAN solo funcionan a 16Mhz no hay otra opción. Pero como estas librerías son algo mas complicadas de usar, que lo haremos, vamos a usar otras librerías en la cual si podemos configurar la velocidad de reloj y ponerlo a 8Mhz y son mas fácil de comprender.
Mañana subiré los dos Steck el de envió y el de recepción y los explicare,vamos a usar:
1 Arduino nano
1 Arduino Mega
2 MCP2515
2 Sensores DS18B20
Vamos a enviar la lectura de estos dos sensores de un arduino a otro y lo veremos por el puerto serie.
Saludos