mikrocontroller.net

Forum: Fahrzeugelektronik Drehzahlmesser Smart 450


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
Autor: pascalts (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Moinsen!

Ich hab hier gerade was auf dem Schreibtisch liegen, wo ich mir nicht 
ganz sicher bin, wie ich damit umgehe. Es ist die Platine eines 
Drehzahlessers eines alten Smart. Auf der Platine ist Licht und ein paar 
andere Sachen die ich identifizieren kann.

Interessiert bin ich an der Elektromechanik des Zeigers. Die ist leider 
vergossen also kann ich nicht mal eben reinschauen. Sie hat aber 4 Pins, 
nenn wir sie A1, A2 sowie B1 und B2. Zwischen den beiden A-Pins kann ich 
einen Widerstand von ca 150 Ohm feststellen, ebenso zwischen B1 und B2. 
Ich tippe daher darauf, dass es sich um Spulen handelt.

Wenn ich nun zwischen A1 und A2 5V Spannung lege (nur kurz zur 
Sicherheit), so bewegt sich der Zeiger nicht, aber er steht fest. 
Selbiges gilt wenn ich zwischen B1 und B2 Spannung anlege.

Wie könnte ich diese Konstellation dazu bewegen, sich zu drehen? Ich 
dachte an einen Schrittmotor, aber die kenne ich nur mit 4 oder mehr 
Spulen... Zwischen A1 und B1 oder A2 und B2 oder in jeglicher anderer 
Konstellation kann ich keinen Widerstand feststellen.

Grüße und dank voraus!

(PS: Ich bin elektonisch Vorgebildet, auf dem Berich fehlt aber 
Erfahrung.)

Autor: Sascha (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Schrittmotor geht auch mit 4 Kabeln, wäre ein Bipolar-Typ. Kannst du ein 
Treiber-IC für den Drehzahlmesser ausmachen?

Ich kenn den Fachbegriff dazu nicht, hab aber mal davon gehört dass es 
Zeigerinstrumente gibt, deren beiden Spulen gleichzeitig bestromt werden 
müssen, wobei die beiden Ströme quasi dem sin/cos-Wert des anzuzeigenden 
Winkels entsprechern müssen.

Autor: STK500-Besitzer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Sascha schrieb:
> Ich kenn den Fachbegriff dazu nicht, hab aber mal davon gehört dass es
> Zeigerinstrumente gibt, deren beiden Spulen gleichzeitig bestromt werden
> müssen, wobei die beiden Ströme quasi dem sin/cos-Wert des anzuzeigenden
> Winkels entsprechern müssen.

Resolver

Autor: STK500-Besitzer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das wird aber ein Schrittmotor sein.

Autor: pascalts (Gast)
Datum:

Bewertung
1 lesenswert
nicht lesenswert
Moin!

Danke euch. Ich hatte zufällig in meiner Grabbelkisten einen ULN2003 
Treiber von Conrad rum liegen. und siehe da: Das Ding lässt sich 
erfolgreich missbrauchen.

Hab schon rausgefunden, dass von ganz links nach ganz rechts 110 
Schritte sind und ich mindestens 3 ms Pause zwischen den Schritten 
brauche, sonst ists dem Zeiger zu schnell.

Danke euch vielmals! Jetzt kann ich damit was anfangen.

Um das Ding wie ein Drehzahlmesser zu nutzen, muss ich ja quasi immer 2 
Werte haben: Alte Dreahzahl, neue Drehzahl. Und um die Differenz muss 
ich das Teil dann nach rechts oder links drehen lassen, oder?

Zum Initialisieren am Besten mal 110 Schritte nach links... kann 
natürlich sein, dass der dann einige Schritte am Begrenzer steht, aber 
das sollten die Spulen überleben, oder?

Grüße!

Autor: pascalts (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Anmerkung: Quellcode
int inA1 = 8; // input 1 of the stepper
int inA2 = 9; // input 2 of the stepper
int inB1 = 10; // input 3 of the stepper
int inB2 = 11; // input 4 of the stepper

int stepDelay = 4; // Delay between steps in milliseconds

void step1() {
  digitalWrite(inA1, LOW);   
  digitalWrite(inA2, HIGH);   
  digitalWrite(inB1, HIGH);   
  digitalWrite(inB2, LOW);   
  delay(stepDelay);
  
}
void step2() {
  digitalWrite(inA1, LOW);   
  digitalWrite(inA2, HIGH);   
  digitalWrite(inB1, LOW);   
  digitalWrite(inB2, HIGH);   
  delay(stepDelay);
}
void step3() {
  digitalWrite(inA1, HIGH);   
  digitalWrite(inA2, LOW);   
  digitalWrite(inB1, LOW);   
  digitalWrite(inB2, HIGH);   
  delay(stepDelay);
}
void step4() {
  digitalWrite(inA1, HIGH);   
  digitalWrite(inA2, LOW);   
  digitalWrite(inB1, HIGH);   
  digitalWrite(inB2, LOW);   
  delay(stepDelay);
}
void stopMotor() {
  digitalWrite(inA1, LOW);   
  digitalWrite(inA2, LOW);   
  digitalWrite(inB1, LOW);   
  digitalWrite(inB2, LOW);   
}

void setup() {                
  pinMode(inA1, OUTPUT);     
  pinMode(inA2, OUTPUT);     
  pinMode(inB1, OUTPUT);     
  pinMode(inB2, OUTPUT);  

  //nach links
  for (int i=0; i<=110; i++){
    step3();
    step2();
    step1();
    step4(); 
  }
}



// the loop routine runs over and over again forever:
void loop() {
  //nach Rechts
  for (int i=0; i<=110; i++){ 
    step1(); 
    step2();
    step3();
    step4();
  }
  stopMotor();
  delay(20);
  //nach links
  for (int i=0; i<=110; i++){
    step3();
    step2();
    step1();
    step4(); 
  }
  
  stopMotor();
  delay(20);
}

Ich nutze einen ATMEGA328p

Anmerkung 2:

110 Schitte ist falsch, 110 * 4 Schritte.

Autor: STK500-Besitzer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
pascalts schrieb:
> 110 Schitte ist falsch, 110 * 4 Schritte.

Nö. Es sind dann 456 Schritte, da Du ja immer 4 Schritte pro 
Schleifendurchlauf machst.

Autor: pascalts (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Du hast natürlich recht - wenn man von 0 bis einschließlich 110 geht 
sind das 112 Steps :-D

Autor: jaksdhkjhec (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.