Hi Zusammen, habe wohl zu lange nicht mehr in die Tasten gehauen Jedenfalls komme ich nicht mehr weiter und brauche mal eure hilfe Betreffend:
Widerstandskaskade auswerten von lenkradfernbedienung Strom Messen.
Die Strom erkennung läuft gut, also ausreichend genau, (Nachgemessen mit Voltmeter).
Ich schaffe es nur eine led mit diesem code zu aktivieren!
hier mal der code:
if (analogRead(analogPin)*REF_VOLTAGE/PIN_STEPS <= 2.65 ) { //2. Vorwerts.2.2-2.8
digitalWrite(BTLFB_vorwerts, HIGH);
delay(3000);
digitalWrite(BTLFB_vorwerts, LOW);
delay(1000);}
mit <= oder >= macht die Variable was Sie soll.
mit == macht sie gar nichts... auch wen ich den ganzen möglichen Volt bereich reinschreibe 2.65 2.64 2.63 usw. oder einzelne Variablen mit einem grossen abdeckungsbereich der Spannung schreibe.
Mache ich eine Variable mit "oder", 2.50||2.51||2.52||2.53||2.54||2.55||2.56||2.57||2.58||2.59||2.60||2.61||2.62||2.63||2.64||2.65||2.66||2.67||2.68||2.69||2.70||2.71||2.72||2.73||2.74||2.75||2.76||2.77
Leuchtet die Led abfolge nonstop, ohne das Volt level anliegt. ohne tasten druck.
Das währe der Spannungsbereich eines Tasters der LFB, gross abgedeckt und liegt weit weg vom nächsten Taster Spannung der LFB.
Wie schaffe ich es, dass ich eine kleinere auflösung der Volt erreiche?
anstatt 2.56V nur noch 2.5.. 2.6.. 2.7 V. Das würde es doch vereinfachen? Ich weiss nicht wie ich eine Variable mit einem Spannungsbereich von 2.50 V bis 2.77 V schreibe/Formulieren soll..???
Da sind 6 Taster an der Auto Lenkrad Fernbedienung die ich auf einer Widerstandskaskaden Leitung auslesen möchte , die Spannung und Widerstandswerte kenne ich, diese dienen zur Steuerung eines vorhandenen BT5.0 audio Tel Steuerung für den Radio. Die 5v Digitalen ausgänge gehen dann direkt auf die taster in der vorhandenen BT Steuerung (gekauftes gerät) Hardware mässig geht alles.. gemessen getestet.. es liegt nur noch am code.. und einigen Tests.
Kann mir ja demnad bitte Helfen oder Tipps geben
So versuche ich das ganze.. ein Beispiel:
int analogPin = A0; // Achtung Max. 5V Input GMLFB Resistiv Leitung.
int val = 0; // Variable, die den gelesenen Wert speichert
#define REF_VOLTAGE 4.7 // 4.7V @ USB Port. Immer Messen! Stromversorgung vom Arduino.
#define PIN_STEPS 1024.0 // @ Analog Pin A0
#define BTLFB_vorwerts 2 // D2.
#define BTLFB_rueckwerts 3 // D3.
#define BTLFB_Vol_up 4 // D4.
#define BTLFB_Vol_down 5 // D5.
#define BTLFB_mfb 6 // D6.
void setup(){
pinMode(BTLFB_vorwerts, OUTPUT); //2. 2,5V ->>
pinMode(BTLFB_rueckwerts, OUTPUT); //3. 3.1V <<-
pinMode(BTLFB_Vol_up, OUTPUT); //4. 1.3V -
pinMode(BTLFB_Vol_down, OUTPUT); //5. 0.8V +
pinMode(BTLFB_mfb, OUTPUT); //6. 1.9V "0"=Source
pinMode(GMLFB_Relais_Switch, OUTPUT); //7. 3.7V "=>" Radiospeicher
Serial.begin(9600);
}
void loop(){
val = analogRead(analogPin); // Pin einlesen
Serial.print("Opel WK LFB = ");
Serial.print(analogRead(analogPin)*REF_VOLTAGE/PIN_STEPS); // Umrechnung von GMLFB Volt * Ref. Volt / Pin steps Analog 1024.0
Serial.println(" V");
// delay(200);
if (analogRead(analogPin)*REF_VOLTAGE/PIN_STEPS <= 2.65 ) { //2. Vorwerts. 2-2.8V
digitalWrite(BTLFB_vorwerts, HIGH);
delay(3000);
digitalWrite(BTLFB_vorwerts, LOW);
delay(1000);}
}
Die Spannungswerte stimmen bei Tastendruck sehr genau im Serialmonitor und direkt an dem Analogen eingangs pin gemessen mit Voltmeter, vlt 0,03V Abweichung.