You are on page 1of 29

Como ligar a injeo eletrnica do seu carro no Arduino

Jos Luiz Sanchez Lorenzo

Globalcode Open4education

Sobre o palestrante
Formao em Eletrnica Atuando desde 1988 na rea de telecomunicaes. 1988 a 2000 - NEC do Brasil (especialidade em hardware e suporte tcnico de centrais de telefonia celular) 2000 a 2007 Lucent Technologies (suporte tcnico e implantao de centrais de telefonia fixa e celular) a partir de 2007 - Alcatel-Lucent (coordenando equipe de base de dados de centrais de pequeno porte e implantao de equipamentos NGN). Instrutor dos cursos de formao em robtica na Globalcode.

Globalcode Open4education

Agenda
Evoluo do sistema eltrico e de alimentao dos carros. Sistema de injeo eletrnica
Sensores Atuadores Central de controle

Eltrica do mdulo de controle


Conexo dos sensores e atuadores ao Arduno Parmetros dos sensores

Velocmetro com Arduino Rede CAN-Bus


Globalcode Open4education

Evoluo do sistema eltrico e de Alimentao dos veculos

Globalcode Open4education

Sensores

Globalcode Open4education

Atuadores

Globalcode Open4education

Mdulo de Injeo Eletrnica

Globalcode Open4education

Mdulo de Injeo Eletrnica

Globalcode Open4education

Diagrama de Conexes

Globalcode Open4education

Parmetros dos sensores

Globalcode Open4education

Velocmetro com Arduino

Globalcode Open4education

Sketch Velocmetro

Globalcode Open4education

Sketch Velocmetro
#include <MsTimer2.h> int velocidade = 0; void setup(){ Serial.begin(19200); TCCR1B = 0x0007; // Def. Timer/Counter 1 (External clock on T1 pin "pino 5 do arduino"/Clock on rising edge) TCCR1A = 0x0000; // Define o Timer/Counter como Normal Mode. (no utiliza o recuso do comparador) TCNT1 = 0x0000; // Zera o contador MsTimer2::set(810, lerVelocidade); // programa interrupcao a cada 810ms MsTimer2::start(); } void loop(){ } void lerVelocidade(){ velocidade = TCNT1; Serial.println("Velocidade = "); Serial.println(velocidade); TCNT1 = 0; interrupts(); }

Globalcode Open4education

Registradores TCCR1A e TCCR1B

Globalcode Open4education

Library MsTimer2
MsTimer2::set(unsigned long ms, void (f)()) // configura-se um perodo em ms e a cada transbordo do contador a funo f ser executada. A funo f dever ser declarada sem parmetros. MsTimer2::start() //habilita interrupo MsTimer2::stop() //desabilita interrupo

http://www.arduino.cc/playground/Main/MsTimer2

Globalcode Open4education

Diagrama blocos Atmega 1280

Globalcode Open4education

Painel Digital GOL GII

Globalcode Open4education

Painel Digital GOL GII

Globalcode Open4education

Painel Digital GOL GII

Globalcode Open4education

CAN-Bus Network

Globalcode Open4education

Conexo OBDII (CAN-Bus)

Pin 2 - J1850 Bus+ Pin 4 - Chassis Ground Pin 5 - Signal Ground Pin 6 - CAN High (J-2284) Pin 7 - ISO 9141-2 K Line Pin 10 - J1850 Bus Pin 14 - CAN Low (J-2284) Pin 15 - ISO 9141-2 L Line Pin 16 - Battery Power
Globalcode Open4education

CAN-Bus (ODBII)
Protocolos: SAE J1850 PWM (41.6kB/sec, padro Ford) SAE J1850 VPW (variable pulse width 41,6kB/sec padro GM) ISO 9141-2 asynchronous serial data rate of 10.4 kBaud. ISO 14230 KWP2000 (Keyword Protocol 2000) ISO 15765 CAN (250 kBits/s ou 500 kBits/s)

Globalcode Open4education

CAN-Bus (ODBII)
Modos de operao Modo 1 Solicitao de dados em tempo real (PIDs) Modo 2 Visualizao de dados no momento das falhas ocorridas (Freeze Frame data). Modo 3 Solicitar histrico de falhas. Modo 4 utilizado para limpar informaes de diagnstico e falhas e tambm registrar execuo de manuteno. Modo 5 - informaes de teste do sensor de oxignio (sonda Lambda)

Globalcode Open4education

Tabela PIDs (CAN-Bus)


Mode (Hex) PID (hex) Data Bytes returned Description Min value Max value Units Formula

01 01 01

04 05 0A

1 1 1

CARGA DO MOTOR TEMPERATURA DA AGUA PRESSO DE COMBUSTIVEL

0 -40 0

100 215 765

% C kPa

A*100/255 A-40 A*3

01

0C

RPM

16.383,75

rpm

((A*256)+B)/4

01

0D

VELOCIDADE

255

km/h

01

0F

TEMPERATURA AR (INTAKE)

-40

215

A-40

01

10

SENSOR DE MASSA DE AR

655.35

g/s

((A*256)+B) / 100

01 01

11 1F

1 2

POSIO DA BORBOLETA TEMPO DE FUNCIONAMENTO

0 0

100 65.535

% seg

A*100/255 (A*256)+B

Globalcode Open4education

CAN-Bus transceiver (MCP2551)


No CAN-Bus, os dados no so representados por bits em nvel 0 ou nvel 1. So representados por bits Dominantes e bits Recessivos, criados em funo da condio presente nos fios CAN_H e CAN_L. A Figura abaixo ilustra os nveis de tenso em uma rede CAN, assim como os bits Dominantes e Recessivos.

Globalcode Open4education

CAN-Bus Controller com SPI (MCP2515)

Globalcode Open4education

Sketch acesso CAN-Bus

Globalcode Open4education

CAN-Shield

Globalcode Open4education

Jos Luiz Sanchez Lorenzo joseluiz@globalcode.com.br www.eletronlivre.com.br http://program-me.ning.com


Globalcode Open4education

You might also like