No volante do astra os botões são do tipo resistivo.
Passei o final de semana me matando para ler os controles do volante com o arduino. A mula aqui tava tentando calcular o a resistencia do volante sendo que elas já "estavam" lá! A grosso modo eu estava tentando Achar o R1 sendo que eu precisava era do R2
https://en.wikipedia.org/wiki/Voltage_divider
http://nerdeletrico.blogspot.com.br/2011/04/circuito-divisor-de-tensao.html
Então o ficou mais ou menos assim:
Sendo que os 6 botões aí no caso seria os do volante, e o negativo do arduino ligado ao negativo do carro. Bem rudimentar o código, mas funcionana:
C:
/*
ReadAnalogVoltage
Reads an analog input on pin 0, converts it to voltage, and prints the result to the serial monitor.
Attach the center pin of a potentiometer to pin A0, and the outside pins to +5V and ground.
This example code is in the public domain.
*/
// the setup routine runs once when you press reset:
void setup() {
// initialize serial communication at 9600 bits per second:
Serial.begin(9600);
}
// the loop routine runs over and over again forever:
void loop() {
void calcularResistencia();
}
void calcularResistencia(){
delay(50);
float vIn = 4.71;
int portaVOut = 0; //porta onde estara ligado o terminal VOut do circuito.
int portaZero = analogRead(portaVOut);
float vR2; //não sei
float vR1 = 12100;
float VOut;
VOut = portaZero/1023.0*vIn;
vR2=vR1*(1/((vIn/VOut)-1));
// Mostra a resitência a cada 50ms
Serial.println(vR2);
}
O código está bem rudimentar mas basicamente é isso. O resultado é
3300 (valor default, varia cerca de 50 ohm em caso o carro estiver ligado.
3300
3300
4200 --> OPA apertei o botão volUP
3300
3300
3300
2200 --> OPA apertei o botão source
Agora é so melhorar esse trem, vou precisar também implantar um percentual de erro por que com o carro em funcionamento tem uma pequena diferença na leitura, logo tem que colocar isso no código.
------------------------------
Edit, não é que um maluco já fez pra um pontiac!
http://atomic-cactus.com/2013/03/29...ring-wheel-control-interpreter-using-arduino/
No final meu código vai ficar parecido com o dele, vou até aproveitar o código! A diferença é que ele transformou o arduino em um dispositivo HID, tipo um teclado. Nessa parte não curti pq não daria pra mudar os comandos, se eu quissesse. No caso vou usar um app mesmo de um outro projeto que vi no xda.
http://forum.xda-developers.com/showthread.php?t=2635159
pena que esse código do xda não serviu pra min