- Labornetzteil AliExpress         
Ergebnis 1 bis 6 von 6

Thema: AT90S2313 + DS1820 + Lüfter = Brauche Hilfe

  1. #1
    Neuer Benutzer Öfters hier
    Registriert seit
    13.03.2005
    Ort
    Treuen
    Alter
    43
    Beiträge
    16

    AT90S2313 + DS1820 + Lüfter = Brauche Hilfe

    Anzeige

    Powerstation Test
    Hallo an Alle!
    Brauch jetzt doch fremde Hilfe. Komme alleine nicht weiter…
    Ich habe einen AT90S2313, ein DS1820, ein LCD, nen PC Lüfter und benutze Bascom.
    Durch gefundene Code-Schnipsel funktioniert bei mir die Temperatur Ausgabe des DS1820 auf dem LCD. Das leider auch schon alles was geht…
    Ich möchte aber noch den Lüfter zur Temperatur regeln. Daran beiße ich mir einfach die Zähne aus! Ich weiß, dass es mit (Software) PWM realisierbar ist. Nur ich bekomme es einfach nicht zum Laufen. Schon gar nicht, dass sich der Lüfter bei steigender Temperatur auch schneller dreht.
    Hab schon tagelang das Netz durchsucht aber nichts Brauchbares gefunden. Ich finde nur Beispiele für größere Atmel Typen. Da weiß ich nie was ich alles weg lassen muss.
    Ich beschäftige mich erst seit kurzen mit Mikrocontrollern. Bin also absoluter Neuling.
    Kann mir da jemand evt. ein wenig helfen?

  2. #2
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    12.11.2004
    Ort
    Erlenbach
    Beiträge
    126
    Hallo,

    irgendwie gibt es da unterschiedliche, welche die sich regeln lassen und welche die sich nicht regeln lassen.

    Schau mal hier:
    Viele Grüße
    Michael

  3. #3
    Neuer Benutzer Öfters hier
    Registriert seit
    13.03.2005
    Ort
    Treuen
    Alter
    43
    Beiträge
    16
    Hardware seitig funktioniert alles. Mein Problem ist die Software. Da weiß ich nicht mehr weiter… Aber Danke erstmal!!

  4. #4
    Neuer Benutzer Öfters hier
    Registriert seit
    13.03.2005
    Ort
    Treuen
    Alter
    43
    Beiträge
    16
    Kann mir da keiner weiter helfen?
    Nicht mal ein Lösungsansatz? Oder geht das gar nicht?
    Bräuchte nur ein Beispiel wie man die Drehgeschwindigkeit des Lüfters mit der Ausgabe des DS1820 verändert.
    Hatte es mal so versucht:

    Dim Ds1820 As Word

    Stufe01:
    If Ds1820 >= 20 Then
    Portb.1 = 1
    Waitms 1 ‘An
    Portb.1 = 0
    Waitus 1 ‘Aus
    Goto Stufe01

    Einen kleinen Teilerfolg hatte ich damit aber bei mehreren Stufen scheiterte es wieder. Vor allem stört die Zeit die benötigt wird um die Temperatur auszulesen und auf dem LCD anzuzeigen. Dadurch wird das Verhältnis An zu Aus in der Schleife beeinflusst.

    Versteht einer was ich meine?

  5. #5
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    06.11.2004
    Beiträge
    1.693
    Wie die Temp über ein INT ausgelesen? In der Schleife wird sie ja nicht ausgelesen und kann das Verhältnis ja nicht beeinflussen.

    Mit An/Auszeiten von 1ms und 1us bewegst du dich ja im kH-Bereich. Ich denke das ist viel zu schnell (zumindest für ein Lüfter). Probier mal 100ms Aus und 200/300ms An.

    Und warum keine Hardware-PWM?

  6. #6
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    29.01.2004
    Beiträge
    2.441
    Versteht einer was ich meine?
    In deinem ersten Beitrag meine ich verstanden zu haben, dass du die Drehzahl über PWM regulieren willst.
    Den Code für die Drehzahlsteuerung eines Motors über PWM findest du z.B. hier im Forum in den Beispielprogrammen zu den Roboternetzboards.

    Vor allem stört die Zeit die benötigt wird um die Temperatur auszulesen und auf dem LCD anzuzeigen.
    Du solltest das Einlesen und die Ausgabe auf das LCD auch nicht unbedingt in derselben Schleife vornehmen, die den Motor ein- und ausschaltest.

    Ich würde den Motor entweder über PWM ansteuern oder wenigstens über einen Timer schalten. Z.B. ungefähr so:


    Code:
    Config Timer0 = Timer , Prescale = 256
    On Timer0 Timer_irq
    
    Dim A as Byte
    Dim B as Byte
    
    Enable Timer0
    Enable Interrupts
    
    do
    
    ' Temperatur lesen
    ' Temperatur auf LCD ausgeben
    
       SELECT CASE  Temperatur
          CASE 20 : B = 20
          CASE 30 : B = 40 
          CASE 40 : B = 60
       END SELECT
    loop
    
    Timer_irq:
      
       If A = 1 then Motor ein
       If A = B then Motor aus
       A = A + 1
    Das sind natürlich nur zusammenkopierte Code-Fragmente ein lauffähiges Programm musst du da selber draus machen.

    Lies dir aber erst mal den folgenden Thread durch:
    https://www.roboternetz.de/phpBB2/viewtopic.php?t=7923

Berechtigungen

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

Solar Speicher und Akkus Tests