-         

Ergebnis 1 bis 5 von 5

Thema: Ist bestimmt ganz einfach habe aber einen Knoten im Kopf :-)

  1. #1
    Benutzer Stammmitglied
    Registriert seit
    07.03.2008
    Ort
    Bremen
    Alter
    43
    Beiträge
    63

    Ist bestimmt ganz einfach habe aber einen Knoten im Kopf :-)

    Anzeige

    Hallo ,
    nachdem es Jetzt mit der Tastatur und alles geklappt hat .
    Habe ich jetzt ein kleines problem .
    Und komme gerade nicht vorran .

    Also ich möchte Messen wie lange es dauert bis sich eine Welle genau
    einmal gedreht hat .
    Dafür habe ich mir einen Halter gebaut wo 2 Hallsensoren genau 20° auseinander sind .

    Und darüber Dreht sich ein Magnet .
    Jetzt möchte ich das der Timer Startet wenn der Magnet den ersten Sensor Passiert
    und aufhört wenn er am zweiten vorbei kommt.
    Das Start und Stop signal würde von ADC0 und ADC1 kommen .
    Und dann soll er alles auf das Display schreiben.

    DAs ich das Ganze mit den Timern mache ist klar .
    Aber ich kriege es nicht in den Kopf wie das gehen kann.
    Oder wie das Programm aussehen muß.
    Hat da jemand einen vorschlag ?
    Oder eine Programm wo soetwas schon Realisiert wurde ?
    Oder eine Seite wo es anhand eines Beispiels erklärt wird?

    Hab nochmal etwas Überlegt und habe folgende Idee dazu

    Die ganzen Konfigurationen überspringe ich mal .

    DO

    If adc_0 = 10 then
    Start timer1
    end if

    if adc_1 = 10 then
    Stop timer1
    endif

    loop

    Kann das so gehen ?
    Und wo finde ich dann den wert ?



    Gruß
    Holger

  2. #2
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    15.01.2007
    Ort
    Göttingen
    Beiträge
    705
    Das mit den 2 Sensoren hat ein Häkchen:

    So ein Hallsensor schaltet ja schon durch, wenn der Magnet auf eine bestimmte Distanz herankommt (d.h. das Feld stark genug ist). Wenn Deine beiden Sensoren diesbezüglich Streuungen aufweisen, werden die beiden Signale nicht exakt eine 20°-Drehung der Welle reproduzieren.

    Außerdem geht´s auch mit weniger Hardware - ich hab´ gerade eine Drehzahlregelung für eine Segelflug-Modellwinde mit nur einem Hallsensor realisiert. Das Sensor-Signal ist auf einen Interrupt-Eingang gelegt und ein Timer läuft kontinuierlich. In der Interrupt-Routine wird der aktuelle Timer-Stand an eine Variable übergeben und der Timer auf null gesetzt. Je langsamer die Welle dreht, umso weiter kommt der Zähler bis zum nächsten Sensor-Signal - mit etwas Mathematik lässt sich damit aus dieser Variablen die Drehzahl errechnen.

    Klaro?

  3. #3
    Benutzer Stammmitglied
    Registriert seit
    07.03.2008
    Ort
    Bremen
    Alter
    43
    Beiträge
    63
    Hallo ,
    Danke für die Antwort
    Das die Sensoren eine gewisse Streuung haben muß ich leider in Kauf nehmen .
    Es soll mal eine Motosteuerung werden die alle 60°
    auf den nächsten Stator schaltet da ich aber keine
    werte habe wie Lange er für die 60° braucht
    kann ich den Motor leider auch nicht Drehen lassen .
    Mein Gedanke war jetzt diverse male die 20° grad zu
    messen und dann anfangen mich an einen
    wert Herran zu arbeiten .
    Sobald ich den Motor soweit habe das er
    eine komplette umdrehung macht .
    Werde ich die messung umstellen auf nur einen Sensor .
    Und dann bekomme ich ja Werte wie Lange er braucht für 360°.

    Aber wie Gesagt ich Stehe auf dem Schlauch
    wie ich das Realisieren kann .
    Wie sieht denn dein Programm aus ?
    Oder wie kann man das machen .
    Ich muß ja am ende einen Wert haben .
    Mit dem ich Rechnen kann .

    Kann das mit meinem Gedanken nsatz so Funktionieren ?
    Gruß Holger

  4. #4
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    15.01.2007
    Ort
    Göttingen
    Beiträge
    705
    O.k., dann brauchst Du 2 Interrupts. INT0 setzt den Timer auf 0 und startet ihn, INT1 stoppt ihn.

    Die Zeit, die zwischen den beiden Interrupts vergangen ist, errechnet sich aus (Zählerstand Timer * Prescale) / Quarzfrequenz.

    Hast Du denn schon Plan von Timerm & Interrupts??

  5. #5
    Benutzer Stammmitglied
    Registriert seit
    07.03.2008
    Ort
    Bremen
    Alter
    43
    Beiträge
    63
    Hallo ,
    Ja.
    Timer und Interrupts habe ich mir auch schon angeschaut
    Und kleine Sachen mit gemacht .
    Habe auch schon Erfolgreich mit der Pwm gearbeitet .

    Muß aber dazu Sagen das ich erst vor ca. 6 Wochen angefangen habe
    mit dem Programmieren .
    Und dann Stehe ich manchmal auf dem Schlauch wie das so im Zusammenhang geht .

    Ich bin auch sehr bestrebt alles zu verstehen
    was da Passiert wenn der Prozessor etwas macht .
    Bascom macht es einem zwar sehr leicht
    schnell große erfolge zu haben aber man wil ja auch wissen was da
    so alles hintersteht und was da so alles passiert .
    Deswegen komme ich nicht ganz so schnell vorran beim Programmieren.

    Gruß Holger

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •