Você está na página 1de 19

22/07/2015 Projeto Arduino Turbo | Emerson's Moretto Tech Blog

Emerson's Moretto Tech Blog https://www.google.com.br/search?


q=water+tank+depth+sensor+schematic.jpg&tbm=isch&tbo=u&source=univ&s
Página Inicial a=X&ved=2ahUKEwifoPmcyaPeAhWMg5AKHRCUDXYQsAR6BAgGEAE&bi
w=1280&bih=584
Arduino
Benchmark
NoSQL
Opensource
Postgresql
Tuning

Type text to search here...


Página Inicial > Arduino > Projeto Arduino Turbo

Projeto Arduino Turbo


14/03/2011 emoretto Deixe um comentário Go to comments

A ideia do projeto é montar uma injeção eletrônica suplementar para meu carro turbo.

O grande desafio de todo carro sobrealimentado é o acerto da queima de


combustível. Usando Arduino e sensores de precisão, acredito que seja possível fazer algo
bastante interessante (como hobby). Então, para esse projeto, pretendo desenvolver as
seguintes funcionalidades:

Fase 1 – Injeção eletrônica básica e funcional:


Monitorar a pressão da turbina [100%]
Monitorar a queima de combustível (através da leitura da sonda­lambda) [100%]
Gerenciar um bico injetor de combustível suplementar [100%]
Monitorar a temperatura [100%]
Exibir o percentual do acelerador no LCD [0%] (deixado de lado temporariamente
por não ser tão util)
Exibir a força G em tempo real no LCD [100%]

Fase 2 – Controle da Injeção pelo celular Android:


Integração Arduino – Bluetooth [100%]
Software (no celular Android) de controle da injeção eletrônica [100%]
Alterar o mapa de injeção em runtime pelo celular [100%]
Exibir o RPM no celular [100%]

Fase 1
Monitoramento da pressão da turbina
Há diversos sensores de pressão de qualidade e precisão. O mais fácil e prático de usar é
o MPX4250, é um sensor da GM até 3 bar com saída 0­5v, perfeito para o Arduino. No
entanto, esse sensor não é tão barato, custa ~30 dólares.

Primeiramente, optei em usar o sensor Motorola MPXM2202 GST1, por ser menor, muito
barato e com muita precisão (comprei no ebay, aqui).

PS: Depois de um tempo (explico logo mais abaixo), resolvi não usar mais o sensor da
motorola MPXM2202. De qualquer forma deixo como documentação aqui a instrução de
como montar o circuito pra usa­lo.

As características do sensor são:

0 a 29 psi (até 2bar)


Saída linear com voltagem diferencial 0­40mV
Compensação de temperatura automática (o sensor ajusta automaticamente a leitura
independente da temperatura ambiente)
Alimentação 10v ~ 17v

O desafio desse sensor é a saída em voltagem diferencial. Então, não basta apenas plugar
direto na porta analógica do Arduino. A porta analógica possui precisão de 0.4mv, então,
teríamos apenas 10 valores possíveis em um range de 30 psi. Ou seja, precisão nenhuma.

Então, precisamos fazer um circuito que amplifique apenas a diferença dessas voltagens,
ou seja, usar um Instrumentation Amplifier. Existem vários CIs específicos pra issso
(AD620,INA128…), porém não encontrei nenhum desses na Sta Efigência.

De forma a substituir esse amplificador, é possível fazer um amplificador diferencial


usando amplificadores operacionais. Esses sim, são baratos e muito fáceis de ser
encontrados. Comprei o LM324 (que possui 4 amplificadores operacionais dentro do
mesmo CI) e que não custa nem 3 reais (tem na Multicomponentes)

Abaixo está o esquemático para a montagem desse amplificador diferencial:

https://emoretto.wordpress.com/2011/03/14/projeto­arduino­turbo/ 1/19
22/07/2015 Projeto Arduino Turbo | Emerson's Moretto Tech Blog

Setup:

O potenciômetro de 1k é o regulador de amplificação


O potenciômetro de 10k é o limitador de teto de voltagem (regule pra limitar a 5v,
por exemplo)
Esse circuito deve ser alimentado com 12v
Não se esqueça de ligar o terra desse circuito com o GND do Arduino!
Por fim, basta ligar a saída do circuito em alguma porta analógica

Sensor de pressão da turbina (atual)


O uso do circuito e do sensor acima, além de um pouco complexo, é muito sensível a
interferências e ruídos do resto do circuito. Como é necessário amplificar a diferença de
mili volts, qualquer flutuação de voltagem do sistema acaba interferindo na medição. Ou
seja, a cada vez que eu montava tudo no carro, os valores de pressão variavam um pouco
em relação ao manômetro analógico do carro.
Por essa questão, resolvi usar o MPX4250, mesmo sendo mais caro, é perfeito para uso
com arduino devido ao seu range de operação 0­5v!
Sendo assim, sua montagem é direta com o arduino. São 3 pinos, Vout, GND e Vcc.

Assim, o setup é óbvio, basta ligar o Vout no input analógico do Arduino e alimenta­lo
com 5v.

G­Force
Talvez a parte mais legal desse projeto seja essa, exibir a força G exercida sobre o carro.
Pra isso, usei o acelerometro MMA7260, configurado pra 4G. Veja o primeiro teste desse
sensor:

O sensor é facilmente encontrado por aí, comprei pelo eBay e paguei 10 dólares (link). Sua

https://emoretto.wordpress.com/2011/03/14/projeto­arduino­turbo/ 2/19
22/07/2015 Projeto Arduino Turbo | Emerson's Moretto Tech Blog

montagem não tem segredo nenhum: Vcc: 3.3v


SLP (Sleep): 3.3v X, Y e Z: Qualquer porta analógica Há mais 2 pinos, G1 e G2, que
servem para configurar a precisão do acelerometro. Para o meu caso, usei a configuração
de 4G G1: 3.3v G2: GND

Monitorar a queima de combustível


Ler a sonda­lambda é bastante simples, a própria sonda­lambda retorna uma voltagem
entre 0v e +1v, sendo assim, basta ligar direto no Arduino. Dá pra pegar esse sinal direto
da central do carro ou direto da sonda, basta medir com um multímetro pra saber qual é o
fio exato.

Monitorar a temperatura
O mais simples e barato de todos. Tudo o que precisamos é de 1 (ou mais) sensores de
temperatura LM35. O sensor de temperatura LM35DZ é fácil de ser encontrado (ex Dabi
Eletrônica, Sta Ifigênia, custa 3 reais) e possui características impressionantes:

Range −55º a +150º C


Precisão de 0,5ºC
Trabalha de 4 até 30 volts
Tempo de resposta para variação ~0,5s

A montagem é muito simples:

https://emoretto.wordpress.com/2011/03/14/projeto­arduino­turbo/ 3/19
22/07/2015 Projeto Arduino Turbo | Emerson's Moretto Tech Blog

LM35DZ :

O código, mais fácil ainda:


float temperaturaEmCelsius = ( 5 * analogRead(TEMPERATURE_PIN) * 100.0 / 1024);

No meu caso, estou usando este sensor para monitorar a temperatura do ar na admissão.
Fisicamente, coloquei ele dentro da tubulação da pressurização que vem da turbina.

Inicialmente estava usando esse sensor para medir a temperatura de trabalho da turbina.
Para isso, basta montá­lo com contato na carcaça da turbina. As turbinas trabalham,
geralmente, e em regime regular entre 110ºC e 160ºC. Medindo essa temperatura, dá pra
evitar sobreaquecimento da turbina e/ou se o óleo está chegando legal no rotor. Turbinas
com folga no eixo tendem a esquentar mais pois o rotor não trabalha muito linearmente.

Gerenciar um bico injetor de combustível suplementar


Um bico injetor automotivo não passa de uma simples solenóide. O problema é que, no
caso de bicos de baixa impedância, eles consomem 4A! Ou seja, você vai precisar de um
chaveador pra isso. Esse chaveador não pode ser um simples relé, pois precisa de
velocidade. Um bico injetor deve “pulverizar” combustível e pra isso, devemos oscilar ele
a uma taxa de 5ms aproximadamente. Além disso, um bico injetor se diferencia de uma
solenóide comum pelo fato de que você não precisa manter a corrente 100% nele durante o
período de abertura, ou seja, para abrir o bico, ele precisa de 4 A, porém para mante­lo
aberto, ele precisa de 1 A. Pra isso, existe um circuito chamado de Peak n Hold. O uso do
bico sem esse circuito faz com que o bico esquente muito e o risco de queima é alto. Pra
montar esse circuito, resolvi pegar o mesmo esquema da MegaSquirt. Mais
especificamente, montei um circuito muito bem feito e explicado e que achei no fórum do
megasquirt brasil, feito pelo usuário piubrazil, (nesse link). Todos os créditos à ele.

 Seguir

Seguir “Emerson's
Moretto Tech
Blog”
Obtenha todo post novo
entregue na sua caixa de
entrada.

Insira seu endereço de e­mail

Cadastre­me

O esquema todo do circuito pode ser baixado daqui: link


Crie um site com WordPress.com

Todo os componentes podem ser encontrados com compra online pela Farnell
(www.farnellnewark.com.br)

Como dito anteriormente, um bico injetor precisa pulverizar combustível e para isso,
devemos fazer com que ele pulse em janelas de tempo, ou seja, em largura do pulso (pulse
width). O cálculo da largura do pulso é simples, basta calcularmos janelas de
abertura/fechamento dentro de uma janela de tempo.

Exemplo: com 3000 rpm um motor leva 0.040 segundos ou 40 ms para completar um ciclo
de rotação. Precisamos injetar combustível dentro desse ciclo. Pra isso, devemos fazer um
cálculo dentro dessa janela e que tenha uma margem para pulsar. Assim, temos uma janela
máxima de 40ms para 3000 rpm.

Se deixarmos o bico aberto por 15ms dentro da janela de 40ms, teremos 37.5% de
abertura.

Esse cálculo vale principalmente para cálculo de bicos injetores para cada cilindro. No

https://emoretto.wordpress.com/2011/03/14/projeto­arduino­turbo/ 4/19
22/07/2015 Projeto Arduino Turbo | Emerson's Moretto Tech Blog
projeto em questão, usei como parâmetro apenas a pressão da turbina.

Ou seja, dependendo da pressão da tubina, o bico injetor é acionado. Assim, usei abertura
de 8ms em uma janela de 30ms para início de pressão (0,1 bar) e 15ms/20ms para pressão
total da turbina. Assim, fiz um mapa de injeção para cada 0,1 bar.

A injeção eletrônica original de um carro possui um mapa de injeção similar a esse, só que
mapeado em relação ao RPM do motor e outros mapas modificadores com valores em
forma de fator de multiplicação. Quando alguém vai alterar o chip de injeção de um carro,
basicamente é feito um novo mapa desses, com valores mais agressivos.

Por enquanto, o circuito completo é esse:

Fase 2
Durante o desenvolvimento resolvi abandonar o display LCD e partir pra uma alternativa
mais interessante: usar um Celular Android como interface de controle da injeção
eletrônica. Para isso, precisava de um meio para conexão entre Arduino e Android, optei
pelo bluetooth quase que por razões óbvias.

Integração Arduino – Bluetooth


Para trocar informações com o Arduino e fazer com que seja possível controlar a injeção
através do celular, encontrei esse módulo bluetooth serial. De uma forma bem simples, ele
é simplesmente uma porta serial comum. Esse módulo, funciona tanto como slave ou

master. Especificações:

Bluetooth Specification v2.0+EDR


Frequência 2.4GHz ISM band
Input: 3.3V­6V
Pinos RX e TX
16mm x 40mm

Montagem:
Extremamente simples, basta alimentar o módulo com +5v, conectar o RX do módulo
com o TX da porta serial do Arduino e o TX do módulo com a RX do Arduino (basta
inverter o RX/TX).

https://emoretto.wordpress.com/2011/03/14/projeto­arduino­turbo/ 5/19
22/07/2015 Projeto Arduino Turbo | Emerson's Moretto Tech Blog

Um detalhe
importante aqui, o Arduino Uno/Duelaminove possui apenas uma porta serial, que é a
mesma do USB. Portanto, isso dará um grande trabalho durante o desenvolvimento/testes
do projeto, pois teria que fazer um switch para revezar o uso da porta. No meu caso, usei
um Arduino Mega, que tem 4 portas seriais. Caso for fazer algum projeto com bluetooth,
opte pelo Arduino Mega sem dúvidas.Código do Arduino:

void setup(){
Serial.begin(9600); // USB computador
Serial1.begin(9600); // Bluetooth
}
void loop(){
// Chegou informação na Serial1 (do bluetooth)?
if(Serial1.available() > 0){

// Se chegou, vamos ler ela


int input = Serial1.read();

// Imprimindo a informação na Serial USB do computador


Serial.println("Chegou pelo bluetooth:"); Serial.println(input);
}
}

Exibir o RPM no celular


Todos os carros que possuem injeção eletrônica tem um sensor para medir a rotação do
motor. E geralmente, é um sensor que retorna a frequência que o motor está girando. No
meu caso, um gol monoponto injeção EEC IV (da ford, a mesma injeção do logus,
mustang, etc), o pino 56 da centralina fica oscilando em +12v e 0v. Dessa forma, basta
medir a frequêncianesse pino. Com um osciloscópio ou um multímetro que mede
frequencia, basta medir para observar que na marcha lenta o sinal fica em ~30hz. Cada 100
rpm equivale a 3hz.Para ler essa informação, usei um simples regulador de tensão
LM7905, que faz com que o sinal fique entre 0 ou +5v, o que é ideal para o arduino. Na
parte de software, para medir a frequencia pelo arduino, usei uma interrupção e um
contador. Me baseei nessa biblioteca: http://www.avdweb.nl/arduino/hardware­
interfacing/frequency­period­counter.html. Essa biblioteca já retorna a frequência em
Hertz, assim, basta apenas fazer um “de­para” a rotação do motor.

LM7805

Software de controle da injeção eletrônica


O software de controle da injeção ficou separado em 2 partes, a primeira, leitura e atuação
de sensores ficou no Arduino; a segunda, exibição das informações e interação, no
Android.

Assim, no celular fica a parte de exibição dos sensores (força G, pressão turbo, sonda
lambda e temperatura do ar na admissão) além da parte de interação, que é a montagem do
mapa de injeção baseado no valor da sonda lambda. No microcontrolador Arduino, fica
todo o software de leitura de sensores, tratamento dos valores de leitura e atuação (cálculo
do tempo de abertura dos bicos).

O principal código para controle da injeção fica no Arduino e é responsável por calcular o
percentual de abertura dos bicos dado uma janela de tempo. Lembrando que o bico injetor
deve pulverizar combustível, não basta apenas deixarmos ele aberto metade do tempo e a
https://emoretto.wordpress.com/2011/03/14/projeto­arduino­turbo/ 6/19
22/07/2015 Projeto Arduino Turbo | Emerson's Moretto Tech Blog
outra metade fechado para conseguir 50%, isso fará com que ele derrame combustível, ao
invés de pulverizar. Assim o código deve fazer um cálculo de fragmentação da janela de
tempo com mínimo de 2ms de abertura e máximo de 7ms (esses 2 valores são empíricos,
descobertos em testes e conversas com mecanicos, deve variar de acordo com o modelo do
bico injetor). Abaixo o código que faz isso:

void fuelInject(int percent){

int MAX_CYCLE = 7;
int MIN_CYCLE_WIDTH = 2; // quanto menor, mais ele vai abrir e fechar

float prop = ( (float) window * ( (float) percent/100));


float mod = 0;
float div = 0;
int i = MAX_CYCLE;

for(; i >= 1 ; i‐‐){


mod = (int) prop % i;
div = prop / i;

if(mod == 0 && div >= MIN_CYCLE_WIDTH){


break;
}
}

if(i==0) i++;

// se tiver apenas 1 ciclo, encaixar ele no meio da janela


float gap = 0;
if(i==1)
gap = (window ‐ prop) / (i+1);
else
gap = (window ‐ prop) / (i);

float qtdGaps = (window ‐ prop) / gap;

char foo1[100];
sprintf(foo1,"Janela: %i ms com %i percent, Tempo de injecao %i ms ",window,percent, round(prop));
Serial.println(foo1);

char foo2[100];
sprintf(foo2,"%i ciclo(s) de %i ms com intervalos de %i",i, (int) div, (int) gap);
Serial.println(foo2);

for(int j=0; j < qtdGaps+i ; j++){


if(j % 2 == 0){ // sleep..
delay(gap);
}else{ // injetando..
digitalWrite(injectorPin,HIGH);
delay(div);
digitalWrite(injectorPin,LOW);
}
}
}

N parte do Android, o código é em Java (Android) e não ficou tão simples. A parte de
conexão com bluetooth ficou um pouco pesada, pois foi necessário fazer uma espécie de
protocolo de comunicação, uma vez que os dados são trafegados de forma serial. A
transmissão deve ser feita de byte em byte, por isso precisei fazer esse protocolo, para
determinar início e fim da transmissão, que tipo de informação está trafegando e a
informação em si. Assim sendo, na parte do Arduino, os sensores são lidos e enviados para
o bluetooth da seguinte forma:
byte sondaLambda = analogRead(sondaLambdaPin);

Serial1.write("<s");
Serial1.write(sondaLambda);
Serial1.write(">");

Ou seja, é enviado “<s330>” pelo Bluetooth, sendo os caracteres de maior e menor (<>)
início e fim da informação, “s” o indicador do tipo de dado enviado (no caso s =
sondaLambda) e por fim o valor do sensor. No Android, irá chegar tudo quebrado, assim, é
necessário fazer um buffer (pilha) e assim que fechar uma informação, devemos processar
a pilha e interpretar os dados. Tudo isso está no código fonte:
https://github.com/emersonmoretto/A2Turbo

Alterar o mapa de injeção em runtime pelo celular


Com o hardware de injeção peak n hold montado e a leitura da sonda lambda ok, o
trabalho de fazer um mapa de injeção em runtime agora é simples. No android fiz uma tela
para fazer uma curva da relação entre o valor da sonda lambda pelo percentual de injeção
do bico (0­80%). Dessa forma, para cada valor da sonda lambda (0 (pobre) a 12 (rico)) há
um percentual de injeção dos bicos. Na tela, adicionei um botão para salvar e enviar essa
curva, assim, essa curva é enviada via bluetooh pro arduino, que a recebe e monta o mapa
da seguinte forma:

/**
* Recebendo novo Mapa via BT
*/
if(Serial1.available() > 0){
Serial.println("Chegando do BT: ");
char c = Serial1.read();
if(c == 'm'){ // o mapa vem assim: m80,70,70,60,50,40,30,20,0,0,0

int buff[] = {0,0,0}; // acumulador


int j=0,k=0;

https://emoretto.wordpress.com/2011/03/14/projeto­arduino­turbo/ 7/19
22/07/2015 Projeto Arduino Turbo | Emerson's Moretto Tech Blog
while(Serial1.available() > 0){
int c = Serial1.read();

if(c == ','){
// ler e converter os valores, [0]*10+[1]
int item = (buff[0] ‐ 48) * 10;
mapa[k] = item;
k++;
Serial.println(item);
j=0;
}else{
buff[j] = c;
j++;
}
}
}
}

//usando o mapa
fuelInject(mapa[lambda])

Screenshots
Tela principal

Mapa de injeção

Tela de conexão com devices Bluetooth

https://emoretto.wordpress.com/2011/03/14/projeto­arduino­turbo/ 8/19
22/07/2015 Projeto Arduino Turbo | Emerson's Moretto Tech Blog
—­ Conforme o desenvolvimento do projeto, irei atualizando este post.

Sobre estes anúncios

 Curtir
Um blogueiro curtiu disso.

Categorias:Arduino Tags: arduino, lm324, mma7260, mpx2202, mpxm2202, turbo


Comentários (66) Trackbacks (0) Deixe um comentário Trackback

1.
Raphael Maciel
25/03/2011 às 18:51
Responder

Daqui a pouco vc consegue fazer até um controle de tração hein!

2.
marcus vinicius
11/04/2011 às 09:22
Responder

Muito bom.

3.
Bruno
04/05/2011 às 09:34
Responder

Olá !!! Muito legal seu projeto. É uma idéia bem original, ficou mais simples do que
montar com um microcontrolador. Tenho interesse em acompanhar esse projeto.
Parabéns !!

4.
Thiago Hortencio
06/07/2011 às 02:12
Responder

Cara so vc mesmo hennn.. Pena o junao nao estar vivo para acompanhar isso…
Abraco

5.
Victor Zeni
06/07/2011 às 16:00
Responder

Daqui uns dias o goleta sai do chão!


Parabéns meu brother! Vc como sempre surpreendendoa gente… fera demais teu
projeto!!!
Abração!

6.
Pairon Ovidio
25/07/2011 às 20:52
Responder

cara muito bom esse projeto to querendo comprar um arduino pra fazer algo
parecido
vc sabe me diser de o arduino Duemilanove Usb 328 da para brincar um poco ?
ou tem q ser o mega mesmo?

aguardando atualizações no projeto vlw e prabens

emoretto
26/07/2011 às 10:17
Responder

https://emoretto.wordpress.com/2011/03/14/projeto­arduino­turbo/ 9/19
22/07/2015 Projeto Arduino Turbo | Emerson's Moretto Tech Blog
Cara, com o duemilanove da pra fazer sim. Mas sugiro fortemente o mega,
fica mais facil e vc vai ter menos problema (com qtd de portas). Tem um kit
no ebay com mega + lcd + jumpers por uns 60 dolares com frete gratis, vale a
pena

7.
mslucas
03/04/2012 às 19:35
Responder

Parabéns pelo projeto!

8.
Rui Duarte
27/04/2012 às 17:22
Responder

Os meus parabéns pelo seu trabalho, hoje em dia é difícil encontrar quem dê sem
querer receber. Em breve tenho um projecto automotivo, medir pressao turbo,
temperatura gases escape, temperatura ar admissão e apresentar dados num displays
LCD rgb 16×2. Será que posso ligar as entradas analógicas do arduino aos sensores
já existentes no carro em paralelo com a centralina? Todos eles trabalham com 5v
como sendo o valor max medido. Abraço

emoretto
27/04/2012 às 17:30
Responder

Obrigado Rui!
Dá pra fazer isso sim. Se todos trabalham com até 5v, só ligar direto. Só
lembre de ligar o negativo do arduino com o negativo do carro também. No
meu projeto faço a leitura da sonda lambda em paralelo com a centralina. O
valor máx dela é 1v. Fica perfeito. Meu projeto já mudou bastante, vou
atualizar o post, mas pra pegar a pressão da turbina usa o sensor MPX4250,
ele é mais caro um pouco, mas é perfeito pra microcontrolador, o range dele é
1v a 5v. Qq coisa só falar. abs

9.
Helton
04/05/2012 às 13:50
Responder

Deixou o projeto de lado amigo?

emoretto
04/05/2012 às 16:04
Responder

Helton, não deixei não, preciso só atualizar mais frequentemente esse post.
Atualizei ele semana passada com o novo sensor da pressão da turbina.
Esse fds irei atualizar ele por completo. até mais

Helton
17/05/2012 às 10:33

Valeu Emoretto, estou muito ansioso por ver seu projeto funcionando
por completo, pois tambem utilizo arduino junto com meu carro.. abrs

10.
apzeiros
06/08/2012 às 15:37
Responder

Cara, muito bom! Há anos que eu venho estudando uma forma de faze rum
controlador para turbo. Parabéns! Vou tentar fazer um igual, mas a parte do Android
eu ainda não manjo. Parabéns mesmo!!!!! Especialmente por ter compartilhado a
façanha.

11.
Tarcisio Cardoso
02/10/2012 às 18:11
Responder

Estou querendo transformar um motor estacionário 6hp de carburado para injeção


eletrônica (para fins didáticos). Parabens por compartilhar e ajudar.

https://emoretto.wordpress.com/2011/03/14/projeto­arduino­turbo/ 10/19
22/07/2015 Projeto Arduino Turbo | Emerson's Moretto Tech Blog

12.
Rui Duarte
27/10/2012 às 11:09
Responder

Ola, o meu carro é diesel seat ibiza, tem sensor map de 4 bar da bosch, todos os
sensores trabalham entre 0­5v. o meu grande problema é criar um menu com botoes
no lcd 16×2 para alterar o bip de aviso quando algum valor do sensor passa do
marcado como seguro, nao uso arduino mas sim uma placa só com atmega328
chamada eduino e programo por usbtiny isp.

Tenho iphone, mas estou pensar seriamente adquirir um android so para o carro e
comunicar por bluetooth.

Mais uma vez os meus parabens, és fera mesmo em programação!

emoretto
29/10/2012 às 10:32
Responder

Se possível faça isso mesmo, pegue um android e o módulo bluetooth.. não é


tão difícil e fica perfeito… mas também tem uns LCD 16×2 com botões de
controle: http://www.adafruit.com/products/714

Qualquer coisa estou a disposição!!

13.
Gregory
14/11/2012 às 13:01
Responder

Muito legal seu projeto, tenho duvidas em relação aos sensores utilizados. O sensor
lambda por exemplo, o arduino reconhece qualquer sensor automotivo?

emoretto
14/11/2012 às 15:11
Responder

Valeu Gregory! Assim, o arduino aceita qualquer sensor desde que esteja
dentro da faixa de voltagem dele (0 a 5v). A sonda lambda de qualquer carro
trabalha também nessa faixa, então é só medir com um multímetro a voltagem
da sonda lambda e ligar no arduino. É bem simples e fácil, você pode puxar o
fio da sonda a partir da centralina do seu carro também.

Gregory
15/05/2013 às 16:45

Amigo, fiquei com uma duvida ainda.. eu gostaria de ligar a sonda


lambda direto no arduino, sem utilizar a centralina… isso é possivel ?
Procurei alguns sensores e eles possuem 4 fios e o sensor parece
trabalhar a 12volts.. Isso me parece um problema!! Pode me ajudar?

emoretto
15/05/2013 às 17:33

Fala Gregory!!!
A sonda lambda de 4 fios tem 12v só pra alimentar uma resistência que
tem dentro dela, pra aquecer a sonda. Mas a saída dela é igual as demais
(0­1v). Pelo menos a sonda bosch que eu tenho de 4 fios é assim… Liga
um multímetro nela e veja que vai sair 0­1v no fio de saída de sinal.
Você pode puxar o fio direto dela ou da centralina do carro… tanto faz.
Na sonda da bosch é o fio preto.
até mais

14.
André
13/03/2013 às 22:41
Responder

Olá, gostei muito do seu projeto, porém estou com algumas duvidas, estou
precisando desenvolver um sistema de turbo elétrico, pretendo instalar uma turbina
edf de aeromodelsmo na entrada do filtro de ar, porém preciso ligar essa turbina em
um esc que controla a velocidade dela, mas pra isso preciso saber como fazer para
que o arduino reconheça a acelaraçao do tbi e envie o pulso para a turbina e
conforme eu acelerar o carro a turbina aumenta a rotação, será que isso pode
funcionar, pois essas turbinas edf com um motor brussless pode chegar a 30.000 rpm
e gerar mais de 1,2kg de força, isso faria um sistema de turbo muito mais simples e

https://emoretto.wordpress.com/2011/03/14/projeto­arduino­turbo/ 11/19
22/07/2015 Projeto Arduino Turbo | Emerson's Moretto Tech Blog
fácil de adaptar em qualquer veiculo com acelerador eletrônico sem grandes
adaptações, preservando a originalidade do veiculo, no meu caso tenho um hb20 e se
eu instalar um turbo convencional isso pode comprometer a garantia do veiculo e se
fosse uma coisa mais eletrônica poderia funcionar, será que vc pode me ajudar. Se
caso você puder, por favor entre em contato comigo, meu fone é 11 98171­2102 e
meu e­mail é fotolitos@globo.com

emoretto
14/03/2013 às 11:07
Responder

Fala Andre! Legal a ideia.. mas precisava botar na prática pra ver se essas
turbinas vão conseguir gerar pressão suficiente pro fluxo de ar que um motor
puxa. Pois tem uma diferença em gerar determinada pressão para determinado
fluxo..
Mas enfim, acho que vale a tentativa, pode ficar muito legal.
Pra ler o sinal do TBI é bem fácil.. praticamente em todos carros ele já retorna
um valor entre 1 e 5v.. é só ver qual o sensor de posição da borboleta do seu
carro (TPS trottle position sensor) e puxar o fio do sinal dele e colocar numa
porta de entrada do arduino.

Aqui tem um material legal: https://www.google.com.br/url?


sa=t&rct=j&q=&esrc=s&source=web&cd=5&cad=rja&ved=0CFkQFjAE&url=http%3A%2F%2Fava.mecatronica.org.br%2Fclaroline%2Fclaroline%2Fbackends%

Pra atuar no ESC, é simples também.. pois o ESC já praticamente ligação


direta.. veja esse tutorial:
http://techvalleyprojects.blogspot.com.br/2012/06/arduino­control­escmotor­
tutorial.html
Aqui também tem outro:
http://dronesandrovs.wordpress.com/2012/11/24/how­to­control­a­brushless­
motor­esc­with­arduino/

O fio do TPS voce pode puxar da central do carro, que geralmente fica dentro
do carro mesmo e fica mais elegante, ao inves de puxar lá direto do sensor.
Como é um carro novo e nao tenha muito material na internet, talvez seja
meio difícil de descobrir qual seja esse fio.
Lembre­se de ligar o negativo do carro no pino GND (negativo) do arduino
quando for testar.. Pois se alimentar o arduino por algum notebook, ele nao vai
conseguir medir esses valores se os negativos não estivem “casados”

Boa sorte aí!!! Qualquer coisa só falar!!

15.
Welington Jb
30/06/2013 às 03:31
Responder

Como é feita a ligação do bico injetor de alta impedância, é usado um LM pra


acionar? estou com dúvida nessa parte, se puder dar uma força agradeço

emoretto
01/07/2013 às 14:31
Responder

Fala Welington, a ligação com bico de alta impedancia é exatamente a


mesma. Atualmente estou usando 2 bicos de alta impedancia com esse mesmo
circuito aí. Mudei para bicos de alta impedancia pois eles trabalham com
menos amperes e assim o circuito esquenta menos.

16.
Gabriel Andrade
26/08/2013 às 10:34
Responder

Emoretto,

A duas informações empiricas são window e percent correto ? Entao posso pegar
quanto maior a window ele aumentar a percent!? Outra duvida vc falou logo acima
que 3000rpm 40ms no caso 6000 ele dobra ? Fico no aguardo do seu retorno! E
parabéns pela ótima explicação!

emoretto
28/08/2013 às 18:05
Responder

Assim, como a minha ideia inicial era fazer uma injeção complementar, fiz
aquele algoritmo baseado em um tempo específico de injeção (janelas). A
janela que ficou melhor foi de 30ms. Mas isso não fica muito bom.

No entanto, eu já mudei tudo isso.. acabei mexendo nesse código inteiro para

https://emoretto.wordpress.com/2011/03/14/projeto­arduino­turbo/ 12/19
22/07/2015 Projeto Arduino Turbo | Emerson's Moretto Tech Blog
trabalhar como uma injeção regular de um carro. Ou seja, le todos os sensores
e aplica o valor do mapa de injecao.
É assim:

1 – ler a pressao da turbina

2 – ler a sonda lambda

3 – ler o rpm

4 – converter o valor do RPM (que tá em Hz) para o tempo (em ms) do ciclo
do motor, ex:

4.1 – 4.000 RPM são 2.000 ciclos por minuto (pois o motor é 4 tempos, então
ele leva 2 ciclos para abrir)

4.2 – Agora precisamos converter 2.000 ciclos por minuto para segundos
(dividimos por 60) = 33.3 ciclos por segundo

4.3 – Agora precisamos converter os 33.3 ciclos por segundo para


millisegundos por ciclo.. ou seja, 1.000 (ms = 1s) / 33.3 = 30 ms.

4.4 – Assim, a 4.000 RPM o motor vai levar 30 ms pra abrir (seria os 2
primeiros ‘tempos’ do motor.. e mais 30ms para fechar (os 2 outros ‘tempos’..
o ciclo completo (4 tempos) leva 60ms))

5 – Agora, basta olhar no mapa de injeção o quanto foi mapeado para esse
RPM x Pressao da turbina. Ex: se colocaram 40% de abertura para a rotação
4.000 e pressão 0.8, você deve abrir o bico injetor por 40% daqueles 30ms.. ou
seja, 12ms!

6 – Por fim, você pode variar esses 12ms de acordo com o valor lido na sonda
lambda.. se ela tiver baixa, você pode abrir por mais tempo.. aqui eu não
lembro exatamente qual é o fator de multiplicação.. mas voce pode fazer
exatamente pelo inverso do valor da sonda, ex: 12ms * (1 – 0.4) = 7.2 ms

17.
Gabriel Andrade
28/08/2013 às 17:21
Responder

Emoretto,
Com relação a esse esquema do bico injetor, a entrada naquele circuito seria uma
saida digital? E naquela parte bancada seria o positivo do bico injetor?

emoretto
28/08/2013 às 17:38
Responder

Entrada é o digital 0­5v e o bancada o negativo do bico

18.
Gabriel Andrade
29/08/2013 às 08:44
Responder

Emoretto por onde eu poderia lhe mandar o código para vc analisar e fazer criticas ?
Fico no aguardo do seu retorno!

E obrigado pelo seu auxilio e presteza!

19.
Gabriel Andrade
02/09/2013 às 16:13
Responder

Emoretto,

Fica bem mais complexo, porém mais estável, possuo um fiat oggi motor fiasa com
injeção mpi, no caso eu queria usar como suplementar! Esse código nao fica bom o
acerto ? Pq no caso eu tinha montado meus mapeamentos conforme o rpm
(windows) maior o percent ( tempo de injecao)! Mais já que voce comentou que nao
ficou estável, tentei sua lógica mais estou um pouco confuso ainda!

20.
Welington Bertoncelo
21/12/2013 às 00:31
Responder

emoretto, estou querendo fazer um sistema complementar para meu carro, se puder
enviar seu código para meu estudo eu agradeço, o meu mapa é assim, eu tenho um
Gol G3 com motor AP 1.8 e estou usando a Fueltech race Pro F1 as primeirinhas, fiz
um datalogger com o arduino, adquirindo MAP, TPS, Temp. Motor, sonda lambda, e

https://emoretto.wordpress.com/2011/03/14/projeto­arduino­turbo/ 13/19
22/07/2015 Projeto Arduino Turbo | Emerson's Moretto Tech Blog
agora quero capturar o RPM que sai da Fueltech e o tempo de injeção pra dentro do
datalog, estou com 2 dificuldades, a primeira é pra adquirir o RPM, tem que ser pelo
esquema de leitura dos Hertz? e agora, estou querendo migrar o datalog para um
controle suplementar, baseado na lambda ele injetar ou não, meu email é
welingtonjb@hotmail.com desde já agradeço e parabenizo pelo projeto que encoraja
os parceiros… Abraço

emoretto
19/02/2014 às 12:04
Responder

Oi Welington!! Legal seu projeto.. vai ficar ótimo!! Desculpa pela demora..
tava de férias.. O RPM é o mais diferente pra pegar mesmo.. Usando o
Arduino tem que pegar via Interrupção, ali no post tá explicando a biblioteca,
veja esse tópico: “Exibir o RPM no celular”.. É só pegar o sinal da rotação do
carro, colocar um regulador de tensão (pq ele vem 12v) e colocar em alguma
porta que aceita interrupção no arduino (a 3 por exemplo). Daí o software é só
usar aquela biblioteca no link e ela irá te retornar o Hz.. a conta pra RPM é
bem simples. No meu carro, 33hz é 1.000 rpm.. e por aí vai

21.
marcelo cella
04/01/2014 às 11:48
Responder

Muiiiito jóia isso que vc fez. Primeira vez que encontro esse blog. Pode me passar
seu email pra trocarmos uma idéia sobre o projeto?

emoretto
19/02/2014 às 11:58
Responder

Oi Marcelo, valeu cara!! Desculpe pelo atraso na resposta.. me manda e­mail


pra trocar uma ideia: emoretto at gmail

22.
Vinicius
21/01/2014 às 01:34
Responder

Estou formando em Eng. De Controle e Automaçao pela UFOP e sou apaixonado


por microcontroladores. Achei o seu projeto FANTÁSTICO!!!

Parabéns.

23.
Paulo
11/02/2014 às 21:25
Responder

vc tem o apk desenvolvido ? pode compartilhar ?

emoretto
19/02/2014 às 11:57
Responder

Oi Paulo, o código fonte do apk tá no GitHub.. tem o link ali no final do post
mesmo.. até mais

emoretto
19/02/2014 às 12:11
Responder

Aqui: https://github.com/emersonmoretto/A2Turbo

24.
Rene Andrade
14/02/2014 às 22:55
Responder

Boa noite amigo seu projeto e ideia são excelentes parabéns, sou estudante de
aeronáutica e gosto de mexer com carros tbm. conheço um pouco de eletrônica mas
essa parte de Android que pega mesmo viu rrs. se poder me da uma força ficaria
muito agradecido poderíamos trocas algumas informações, vc tem os esquemas de
ligação dos sensores no modulo Arduino? Desde ja agradeço valeuu

https://emoretto.wordpress.com/2011/03/14/projeto­arduino­turbo/ 14/19
22/07/2015 Projeto Arduino Turbo | Emerson's Moretto Tech Blog

emoretto
19/02/2014 às 11:56
Responder

Olá Rene, boa tarde.


Legal, te dou um help sim.. me manda um e­mail explicando o que vc precisa:
emoretto at gmail
até mais!

25.
Paulo
27/03/2014 às 21:26
Responder

emoretto
boa noite, poderia me ajudar a só ler a rpm de uma ecu comum da gm ?

emoretto
28/03/2014 às 10:29
Responder

Oi Paulo, qual carro e ano que é? Muito provavelmente é do mesmo jeito que
fiz aí, só deve mudar o pino que vc deve pegar da ecu. Me passa qual o carro e
procuro aqui

26.
Paulo
28/03/2014 às 10:48
Responder

Vlw cara, o carro é um prisma 2008


vou te passar minha ideia.
quero montar uma ihm que me mostrara todos os dados do motor, como pressão de
oleo, pressão de ar , temperatura da agua, temperatura do motor, e temperatura do ar
da admissão, voltagem da bateria, e o rpm em tempo real e claro um shift
progressivo.
mas minha maior dificuldade é monitorar a rpm no momento.

emoretto
28/03/2014 às 15:45
Responder

Fala Paulo, parece que é o pino 7 ou o pino 31 da ecu, depende do modelo, vi


aqui:
http://www.celtaclube.com.br/forum/index.php?showtopic=104643

Sobre pressão do ar e pressão do óleo, o seu carro originalmente não possui


esse sensores né.. procura um sensor com saída não diferencial. Há alguns
sensores que tem saída diferencial de voltagem, daí é necessário um circuito
pra amplificar essa diferença. E dá muito trabalho.

27.
Paulo
28/03/2014 às 16:21
Responder

então emoreto,para medir a pressão do oleo estou usando um sensor da ifm o pn2023
com saida de 0 a 10 v, mas como não vou chegar a full range dele não tem perigo de
queimar a entrada do arduino, uma outrapergunta, sou leigo em programação de
android, vc pode me indicar algum tutorial para desenvolver um apk do zero, ou
edita­lo ?

emoretto
28/03/2014 às 16:55
Responder

Paulo, coloca um regulador de tensão nisso aí.. senão tem perigo de queimar
sim.. sensores no carro variam muito. Ex: quando liga o carro, a voltagem
geral do carro vai a 6v e assim que o motor funciona chega a dar pico de 16v!
E isso é passado pra todo o sistema né. Pra desenvolver pra Android,
geralmente uso a documentação oficial do site… Mas na net tem vários
tutoriais (youtube tem muitos). Só tenta ficar de olho em algum material mais
recente, pois a plataforma de desenv. mudou muito pro android 4

28.
Paulo

https://emoretto.wordpress.com/2011/03/14/projeto­arduino­turbo/ 15/19
22/07/2015 Projeto Arduino Turbo | Emerson's Moretto Tech Blog
31/03/2014 às 10:45
Responder

ja estou atualizando o projeto.. vlw cara

29.
Paulo
01/04/2014 às 22:37
Responder

Me desculpe, mas estou com duvidas na escrita do codigo, vc me da uma força por
email ?

30.
Deivid Roza
19/04/2014 às 22:40
Responder

Gostei muito da sua criação estou desenvolvendo um computador de bordo, e um


tree step pro para monitorar giros RPM e fazer cortes, to acompanhando as
postagens emoretto e paulo.

se tiver como agente marcar sei lá uma sala para batepapo para discutir um projeto
bacana, ou um forum. to a disposição para desenvolver e aprimorar.

emoretto
14/05/2014 às 10:36
Responder

Seu projeto é bem interessante, deve ser mais simples que uma injeção. A
ideia do forum ou sala de bate papo também é boa.. Se tiver uma sugestão,
participo sim.

31.
Paulo
26/04/2014 às 14:49
Responder

estava usando uma acoplador optico e estava funcionando bem, acabei de testa com
o 7805 e meu arduino foi pro saco… comprando outro…

emoretto
14/05/2014 às 10:38
Responder

acoplador ótico é sempre muito mais seguro.. tou usando o 7805 até hoje
(mais de 1 ano) e nunca tive problema. Mas queria mudar pra acoplador
também..

32.
rui oliveira
13/05/2014 às 21:09
Responder

paulo, tou fazendo um carro turbo, achas que o arduino aguenta com a gestao da
parte electronica do motor? usar um arduino em vez da central do carro? para gerir
gestao de gasolina,modulo de ignicao,pressao de turbo com todos os captores que
vao no conjunto? sera que e capaz de gerir os tempos de ignicao e gasolina a partir
de um captor de ponto de motor?

emoretto
14/05/2014 às 10:35
Responder

Oi Rui, daria pra fazer sim, mas eu acho que seria um projeto difícil.
Precisaria usar um Arduino com uma boa capacidade de processamento
(Galileo ou Due). Através dos pinos de interrupção do arduino, você consegue
pegar o sensor de frequência do ponto do motor com bastante precisão. Talvez
seja mais simples utilizar separado, um arduino somente para ignição e outro
somente para injeção.

33.
Paulo
07/06/2014 às 02:50
Responder

Emorreto, tudo bem cara, eu to andando bem o meu projeto, mas não consigo deixar
a parte do hallmeter legal, a sonda lamba ta variando muito
https://emoretto.wordpress.com/2011/03/14/projeto­arduino­turbo/ 16/19
22/07/2015 Projeto Arduino Turbo | Emerson's Moretto Tech Blog
, vc usous valores fixos ou deixo o sinal analogico puro e só vez a conversão ?

emoretto
09/06/2014 às 09:58
Responder

Mas ela varia muito mesmo.. Assim que liga o carro, ela demora mais ou
menos 1 minuto pra começar a ler os valores certos. E quando está andando
com o carro, ela fica variando loucamente entre 0.1 e 1 volt. A sua varia
diferente disso?

Eu leio o valor dela a cada 1 millisegundo e converto pra digital.

Você ta fazendo um blog sobre seu projeto?? Queria ver como está ficando.
abs

34.
Paulo
13/06/2014 às 09:02
Responder

Bom dia emoretto, estou criando um blog sim assim qeu ficar pronto eu colocarei
fotos, e detalhes da minha aplicação, mas cara ja é o segundo arduino q queimo, e
sem ler a rpm, mas o problema é que agr danificou tbm meu lcd 5110, estou
aguardando chegar mas das compras q realizei para dar continuidade, até abraços e
vlw pela força.

35.
andre
16/06/2014 às 12:59
Responder

Olá, o link para o projeto do peak and hold está quebrado, vc tem o tutorial para
desenvolvimento do mesmo? Pretendo desenvolver um sistema de injeção para um
motor monocilíndrico e seu blog está sendo o idealizador disso.

emoretto
16/06/2014 às 13:39
Responder

Fala Andre,
é.. realmente o link ta quebrado, tava apontando para o post do autor original
do peak n hold.

Mas não tem segredo, é exatamente aquele circuito que tem na imagem ali no
post. Já tá com os componentes.
E é o mesmo circuito da MegaSquirt.

36.
drausio
26/06/2014 às 11:22
Responder

E ai Moretto ? Beles, cara to fazendo um porg. loko pra TB só to esbarrando no app


pro android tipo esse seu analogico com barras deslizantes, só encontro lixo na net
pra bx, vc poderia me informar onde encontrou esse seu ai?
Meu email é amr_eletrica@hotmail.com, valeu depois te mostro o porg. vai gostar.

emoretto
26/06/2014 às 12:29
Responder

Opa, beleza?
o código desse apk que fiz ta aqui:
https://github.com/emersonmoretto/A2Turbo/tree/master/src/br/eng/moretto/a2turbo/view
Tem lá o analógico com barras deslizantes.

37.
Drausio
27/06/2014 às 10:33
Responder

Moretto me perdoe pela minha ignorância, esse cod é em java? tem alguns ifs elses
fiquei perdido, se for em java coloco eles onde ?, q pergunta em.. Em um edit java e
dentro do Android?
Cara to com um controle de tb eletrico loko nas mãos mas pra por no Android ta
meio fd.
Se poder me dar maaaais essa forcinha fico mui grato, abraços.

https://emoretto.wordpress.com/2011/03/14/projeto­arduino­turbo/ 17/19
22/07/2015 Projeto Arduino Turbo | Emerson's Moretto Tech Blog

38.
East Side Family
23/07/2014 às 17:48
Responder

fala emoretto tranquilo cara ?


então estou com problemas que queria saber passou por ele já, estou lendos os
sensores em pararelo com a injeção original do carro e agora do nada o carro esta
dando umas falhas quando ligo o monitor dos sensores.
tem alguma dica ai parceiro ?

emoretto
24/07/2014 às 11:12
Responder

opa, olha só, eu tive um problema parecido quando ligava o sensor do RPM o
carro falhava e morria.
Mas o problema era simples, era que eu não tinha ligado os 2 negativos juntos
(bateria e arduino).
Tenta ver qual dos sensores que tá dando, sei que esse do RPM é bem
sensível, ex: ligar ele no negativo o carro apaga na hora.

East Side Family


27/02/2015 às 16:24

obrigado emoretto, mais acabei pausando o trbalho eestou reiniciando


agora !, vlw pela dica.

1. No trackbacks yet.

Deixe um comentário

Escreva o seu comentário aqui...

Tuning no PostgreSQL
RSS feed

Posts Recentes
Arduino LCD/Led RPM Gauge
O NoSQL de 1340 consultas por nome
por segundo
RapaNui
Apache Bench + Gnuplot
Tuning no PostgreSQL
Projeto Arduino Turbo

Categorias

Arduino
Benchmark
NoSQL
Opensource
Postgresql
Tuning

Lista de Links
Blog no WordPress.com.
Blog no WordPress.com.

Arquivos

outubro 2011
agosto 2011
julho 2011
março 2011

https://emoretto.wordpress.com/2011/03/14/projeto­arduino­turbo/ 18/19
22/07/2015 Projeto Arduino Turbo | Emerson's Moretto Tech Blog
Meta

Registrar­se
Entrar

Topo
Blog no WordPress.com. O tema INove.

https://emoretto.wordpress.com/2011/03/14/projeto­arduino­turbo/ 19/19

Você também pode gostar