Go Down

Topic: Arduino + Tacômetro (Read 6900 times) previous topic - next topic

almamater

Olá.

Venho perguntar se alguem sabe como ligar e enviar sinais de um Arduino para um tacômetro:



Em tempos fiz um circuito com um PIC18F2550 e funciona bem. Ele apenas tem estes fios:

Vermelho: Para ligar aos 12v (+)
Preto: Para ligar ao Ground (-)
Verde: Para receber o sinal do circuito/aplicação/arduino
Branco: Para ligar aos 12v (associado a um Led extra de 'shift indicator')

A minha questão é apenas saber se podemos ligar o fio verde directamente num pino do arduino e que tipo de sinais podemos enviar.. PWM?

Se alguém souber.. Obrigado!!

bubulindo

O PIC que falas é semelhante a um arduino... que componentes meteste nesse circuito?

12V queima ambos os chips (AVR e PIC).

O programa que usaste no PIC também serve (conceptualmente) no Arduino. É só adaptar as funções... até deve ser mais simples no Arduino.

Duvido que funcione com PWM... pelo que li, esses dispositivos têm ligado a eles um sensor de rotações do eixo e isso é um sinal modulado em frequência e não em duty cycle como o PWM.

Tens o esquema do circuito que montaste com a PIC?
This... is a hobby.

almamater

Sim, meti na minha página o esquema que usei: https://sites.google.com/site/grcbyte/electronica/tachometer-cpu

O problema é que agora não tenho a aplicação nem o ficheiro Hex, porque o site de onde os tirei está indisponível (já mandei um mail ao autor para ver se me envia mas não sei se responde).

Lembrei-me por isso se utilizar um arduino que penso que seja mais fácil, o tacômetro funciona com 12V, por isso tem mesmo de ser ligado aos 12V. O fio verde é apenas para receber uns impulsos mas nessa parte é que tenho as minhas dúvidas..

HugoPT

Quote
Em tempos fiz um circuito com um PIC18F2550 e funciona bem

Quote
Venho perguntar se alguem sabe como ligar e enviar sinais de um Arduino para um tacômetro:

Em que ficamos, apenas soldaste as coisas na placa com o PIC ja programado ou tu é que escreveste o codigo?
Se tiveres o codigo podes adapta-lo como o Bubulindo sugere para o arduino.
Se nao tens o codigo fonte entao tens de tentar "escutar" o passa nesse fio de sinal, se é PWM, frequencia, nivel de sinal ...
Um osciloscopio pode te dar essa resposta se nao tiveres a documentaçao tecnica dele.
Debian,Mint,Ubuntu
Arduino Mega 2560
Arduino Nano
Arduino Duemilanove
MAC OS Montain Lion
Raspberry PI Model B

HugoPT

Numa breve busca parece que um tacometro analogico conta os impulsos nesse cabo verde.
Aqui esta um esquema usando o famoso 555 em que na entrada de trigger o fio verde é ligado para assim contar as rotaçoes.

http://www.electronica-pt.com/index.php/content/view/229/
Debian,Mint,Ubuntu
Arduino Mega 2560
Arduino Nano
Arduino Duemilanove
MAC OS Montain Lion
Raspberry PI Model B

almamater

:) Eu não fiz o código, apenas programei o PIC e soldei as coisas sim. A aplicação e o HEX tirei de um site há uns anos.


bubulindo

Eu experimentaria o circuito que o Hugo meteu aqui.

Acho muito estranho essa ligação directa com os 5V de alimentação da PIC a um dispositivo alimentado a 12V... no entanto, os 12V podem ser apenas por facilidade (as baterias dos carros são de 12V) e para fornecer potência para mexer o ponteiro (que não será por aí fora...).

Se funcionou assim, eu diria que funciona com o Arduino...

Experimenta algo assim para o código:

Code: [Select]

void setup() {

pinMode(PINO_SAIDA, OUTPUT);
digitalWrite(PINO_SAIDA, LOW);
}

unsigned int freq = 1;
unsigned int counts = 0;

void loop() {

digitalWrite(PINO_SAIDA, HIGH);
delay(freq);
digitalWrite(PINO_SAIDA, LOW);
delay(freq);

if (++ counts >= 65000) {
    i++;
    counts = 0;
    }
}


Isto vai criar uma onda com uma frequência variável e dará para teres uma ideia das frequências a que o velocímetro responde.
A variável counts está lá para te dar algum tempo entre cada frequência... se bem que talvez seja necessário aumentar isso para ver o que se está a passar.

Tens um osciloscópio aí à beira?
This... is a hobby.

almamater

O tacômetro só liga ao Arduino através do fio de 'pulse', independentemente de estar ligado aos 12V acho que não interfere com o Arduino, pois deve ser a mesma coisa do que com o PIC.
Vou testar ligá-lo com o fio verde num pino do Arduino e usar o código referido (que agradeço desde já) para gerar a onda com frequência, penso que quanto mais impulsos forem enviados mais a agulha sobe, se calhar meto um potenciometro para ver o valor máximo ou assim.

osciloscópio não tenho não..

Obrigado!

HugoPT

#8
Jan 22, 2013, 01:16 pm Last Edit: Jan 22, 2013, 01:20 pm by HugoPT Reason: 1
Code: [Select]
if (++ counts >= 65000) {
   i++;
   counts = 0;
   }

Podes explicar melhor o que este if pretende fazer nao estou a entende-lo no que pode afectar a onda final  :smiley-eek-blue:
a var i nao foi declarada por isso deve dar erro na compilaçao, mas supondo que a avaliaçao do if ocorre passados 65000 ciclos incrementada por ++ counts o que irá executar??
Debian,Mint,Ubuntu
Arduino Mega 2560
Arduino Nano
Arduino Duemilanove
MAC OS Montain Lion
Raspberry PI Model B

bubulindo


O tacômetro só liga ao Arduino através do fio de 'pulse', independentemente de estar ligado aos 12V acho que não interfere com o Arduino, pois deve ser a mesma coisa do que com o PIC.
Vou testar ligá-lo com o fio verde num pino do Arduino e usar o código referido (que agradeço desde já) para gerar a onda com frequência, penso que quanto mais impulsos forem enviados mais a agulha sobe, se calhar meto um potenciometro para ver o valor máximo ou assim.


O GND tem de ligar a algum lado para dar uma referência ao pulse, não?


Code: [Select]
if (++ counts >= 65000) {
    i++;
    counts = 0;
    }

Podes explicar melhor o que este if pretende fazer nao estou a entende-lo no que pode afectar a onda final  :smiley-eek-blue:
a var i nao foi declarada por isso deve dar erro na compilaçao, mas supondo que a avaliaçao do if ocorre passados 65000 ciclos incrementada por ++ counts o que irá executar??

O i é para substituir por freq. LOL

Basicamente esse pedaço de código serve garantir que a mesma onda corre durante 65000 vezes, depois incrementa freq, a frequência da onda diminui e volta a correr 65000 vezes até incrementar de novo. Isto dará para ter uma ideia da frequência de pulsos que o velocimetro usa.

Se não houvesse esse pedaço de código e apenas incrementasse a variável freq, cada frequência só era visível por um ciclo... isso ia ser um pouco difícil de visualizar, acho. LOL
This... is a hobby.

HugoPT

agora sim faz sentido a tua explicaçao. :smiley-mr-green:
Debian,Mint,Ubuntu
Arduino Mega 2560
Arduino Nano
Arduino Duemilanove
MAC OS Montain Lion
Raspberry PI Model B

almamater


O GND tem de ligar a algum lado para dar uma referência ao pulse, não?


Ah sim.. tenho que ligar o Grnd do Arduino ao Grnd da fonte do Tacômetro..

bubulindo

Já agora, só por curiosidade, porque é que vais ligar isso a um Arduino e não a um sensor de rotações?

É para fazer uma brincadeira? :)
This... is a hobby.

almamater

sim é para brincadeira :)

Inicialmente foi para mostrar a utilização do CPU e seria para implementar numa caixa de PC (gosto de modding) mas de facto nunca o usei e lembrei-me ontem de o tirar da caixa e como agora tenho o Arduino pensei em usá-lo mas sem nenhum projecto para já em mente :)




HugoPT

O efeito deve ser interessante.Ja agora como estas a pensar ler a utilizaçao do CPU e depois envia-la atraves do arduino?
Debian,Mint,Ubuntu
Arduino Mega 2560
Arduino Nano
Arduino Duemilanove
MAC OS Montain Lion
Raspberry PI Model B

Go Up