- Akku Tests und Balkonkraftwerk Speicher         
Seite 5 von 8 ErsteErste ... 34567 ... LetzteLetzte
Ergebnis 41 bis 50 von 75

Thema: PWM verwenden als Rücklicht? Bremslicht?

  1. #41
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    05.08.2007
    Ort
    Oberhofen im Inntal (Tirol)
    Alter
    50
    Beiträge
    377
    Anzeige

    Praxistest und DIY Projekte
    Hallo Chris!

    Hier der Schaltplan mit Transistor statt Spannungsteiler:

    Bild hier  

    Und hier das abgeänderte Programm:

    Code:
    $regfile = "attiny13.dat"
    $crystal = 9600000
    $hwstack = 32
    $swstack = 5
    $framesize = 20
    
    
    Const Half_light = 40
    Const Full_light = 255
    
    'PWM-Ausgang
    Pwm_out Alias Portb.0
    Config Portb.0 = Output
    
    'Bremslicht Eingang
    Break_light_in Alias Pinb.4
    Config Pinb.4 = Input
    Portb.4 = 1       'Pullup
    
    'Timer0 als PWM: 9600000 / 64 / 256 / 2 = 292,9 Hz
    Config Timer0 = Pwm , Compare A Pwm = Clear Down , Prescale = 64
    Pwm0a = Half_light
    
    
    Do
       If Break_light_in = 0 Then
          Pwm0a = Full_light
          Waitms 100
          Pwm0a = Half_light
          Waitms 100
       Else
          Pwm0a = Half_light
       End If
    Loop
    
    End
    mfg
    Gerold
    :-)

  2. #42
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    14.06.2007
    Ort
    Leichlingen
    Alter
    36
    Beiträge
    181
    Achso ^^

    Ja okay

    Warum muss der Transistor den so viel aushalten? Sind doch nur 100mA die max fließen? Und ich habe immer noch nicht das verstanden, mit der Verstärkung bei Transistoren! -_-





  3. #43
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    05.08.2007
    Ort
    Oberhofen im Inntal (Tirol)
    Alter
    50
    Beiträge
    377
    Zitat Zitat von Fighter-2
    Warum muss der Transistor den so viel aushalten? Sind doch nur 100mA die max fließen? Und ich habe immer noch nicht das verstanden, mit der Verstärkung bei Transistoren! -_-
    Hallo Chris!

    100 bis 130 mA -- je nach Spannung des Akkus.

    0,130 A * 13,8 V = 1,794 Watt

    Und jetzt zum Thema "Verstärkung des Transistors".

    Wir wissen jetzt, dass von Kollektor nach Emitter 0,130 A fließen müssen. Hätten wir jetzt einen Transistor mit einer Verstärkung von 100 (hfe), dann müsste zwischen Basis und Emitter ein Hundertstel von 0,130 A fließen. Also 0,0013 A. Wenn der Transistor als Schalter arbeiten soll, dann übersteuert man diesen, damit auch wirklich voll durchgeschaltet wird. Man wählt meist den Widerstand so aus, dass zwischen Basis und Emitter drei mal so viel Strom fließt als sein müsste.

    Zwischen Basis und Emitter sollte also 0,0013 A * 3 = 0,0039 A fließen.

    Vom ATtiny13 bekommen wir ca. 5 Volt an die Basis des Transistors geliefert. An einem normalen Transistor fallen 0,7 Volt ab. Diese rechnet man weg.

    R = U/I = (5 - 0,7) V / 0,0039 A = 1102,56 Ohm

    Wenn man für die gleiche Rechnung einen Transistor mit einer Verstärkung von 750 nimmt, dann sieht die Rechnung so aus:

    0,130 A / 750 hfe = 0.000173 A
    0.000173 A * 3 = 0.00052 A
    (5 - 0,7) V / 0.00052 A = 8269.23 Ohm

    Und da ich sowiso den Strom schon mal 3 genommen habe, nehme ich 10.000 Ohm als Basiswiderstand für den Darlington, der eine Verstärkung von rund 750 hat. Durch die Verwendung eines Darlington braucht die Schaltung also weniger Strom.

    http://www.elektronik-kurs.de/online...ile_index.html
    Wähle dort im Dropdown-Feld "Transistor" aus.

    ----

    Zum Ansteuern eines Pins eines ATtiny13 genügt es, wenn 1 µA Strom fließt. Das ist 0,000001 A.

    Der 2N2222 hat einen Verstärkungsfaktor von mindestens 30. Und wir steuern diesen mit 12 Volt an.

    (13,8 - 0,7) V / 0,000001 A = 13.100.000 Ohm

    Aber ich glaube, dass der Transistor bei 13 MOhm nicht mehr reagieren würde. Deshalb bleibe ich dort bei 10 k.


    mfg
    Gerold
    :-)

  4. #44
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    14.06.2007
    Ort
    Leichlingen
    Alter
    36
    Beiträge
    181
    Hey!

    Gut habe das nun verstanden!


    Aber mir ist eine Sache noch unklar!

    "0,130 A * 13,8 V = 1,794 Watt"

    Warum müssen wir den so einen Transistor dafür wählen?

    Wenn am Transistor 0,7V abfallen, ergibt das ändere Wert für mich!

    0,130A x 0,7V = 0,091 Watt


    Oder meinst du, wenn der Transistor hochohmisch ist?

    Dann wäre das auch wiederrum klar ^^





  5. #45
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    05.08.2007
    Ort
    Oberhofen im Inntal (Tirol)
    Alter
    50
    Beiträge
    377
    Zitat Zitat von Fighter-2
    Aber mir ist eine Sache noch unklar!

    "0,130 A * 13,8 V = 1,794 Watt"

    Warum müssen wir den so einen Transistor dafür wählen?

    Wenn am Transistor 0,7V abfallen, ergibt das ändere Wert für mich!

    0,130A x 0,7V = 0,091 Watt
    Hallo Chris!

    Es fallen 0,7 V weg. Das stimmt. Aber der Rest muss durch den Transistor durch. Und dieser Rest wird mit 13,1 Volt durchgedrückt. Was dabei genau mit den 0,7 Volt passieren weiß ich jetzt gar nicht. Deshalb rechne ich lieber mit den vollen 13,8 V als mit 13,1 V.

    (13,8 - 0,7) * 0,130 A = 1,703 Watt

    mfg
    Gerold
    :-)

  6. #46
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    14.06.2007
    Ort
    Leichlingen
    Alter
    36
    Beiträge
    181
    Ja aber die vollen 13,8V fallen doch net an dem ab!

    Ist doch nicht wie ein Wiederstand, der alles in Wärme verballert, oder?

    Oder meinst du, wenn der nicht durchlässig ist?





  7. #47
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    05.08.2007
    Ort
    Oberhofen im Inntal (Tirol)
    Alter
    50
    Beiträge
    377
    Zitat Zitat von Fighter-2
    Ja aber die vollen 13,8V fallen doch net an dem ab! Ist doch nicht wie ein Wiederstand, der alles in Wärme verballert, oder?Oder meinst du, wenn der nicht durchlässig ist?
    Hallo Chris!

    Das kann dir jemand der das gelernt hat sicher beantworten. Vielleicht geht es ja auch nicht darum, wieviel am Transistor abfällt, sondern einfach nur um die Menge die durch muss. Für viel Strom brauche ich ja auch dickere Kabel und für wenig Strom genügen dünnere Kabel. Kleiner Transistor -- großer Transistor. Je mehr Watt durch den Transistor durch müssen, desto größer muss er sein.

    mfg
    Gerold
    :-)

  8. #48
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    05.08.2007
    Ort
    Oberhofen im Inntal (Tirol)
    Alter
    50
    Beiträge
    377
    Hallo Chris!

    Ich habe jetzt ein wenig getestet.

    Der Transistor an PB.4 ist komplet überflüssig. Er ist zu empfindlich und braucht zum störungsfreien Schalten einen zusätzlichen Pulldown-Widerstand. Dann bleibe ich doch lieber bei der Lösung mit dem Spannungsteiler.

    Also hier der aktuelle Schaltplan:

    Bild hier  

    Und hier das neue Programm. Ich habe das Eingangssignal ein wenig entstört. Es wird jetzt drei mal hintereinander das Bremssignal geprüft und nur wenn dieses drei mal hintereinander auf 1 steht, dann gilt das Signal als störungsfrei. Ohne dieses Entstören schaffte ich es dauernd beim Berühren eines Drahtes ein Bremssignal auszulösen. Das ist jetzt nicht mehr.

    Code:
    $regfile = "attiny13.dat"
    $crystal = 9600000
    $hwstack = 32
    $swstack = 5
    $framesize = 20
    
    
    Const Half_light = 40
    Const Full_light = 255
    
    'PWM-Ausgang
    Pwm_out Alias Portb.0
    Config Portb.0 = Output
    
    'Bremslicht Eingang
    Break_light_in Alias Pinb.4
    Config Pinb.4 = Input
    
    'Timer0 als PWM: 9600000 / 64 / 256 / 2 = 292,9 Hz
    Config Timer0 = Pwm , Compare A Pwm = Clear Down , Prescale = 64
    Pwm0a = Half_light
    
    'Watchdog aktivieren
    Config Watchdog = 512
    Start Watchdog
    
    'Rauschfreies Bremssignal
    Declare Function Get_break_signal() As Byte
    
    
    Do
       If Get_break_signal() = 1 Then
          Pwm0a = Full_light
          Waitms 100
          Pwm0a = Half_light
          Waitms 100
       Else
          Pwm0a = Half_light
       End If
    
       Reset Watchdog
    Loop
    
    End
    
    
    Function Get_break_signal() As Byte
       Local Bt As Byte
       For Bt = 1 To 3
          Nop : Nop : nop
          If Break_light_in = 0 Then
             Get_break_signal = 0
             Exit Function
          End If
       Next Bt
       Get_break_signal = 1
    End Function
    Weiters habe ich den Watchdog Timer aktiviert. Falls der ATtiny13 einmal abstürzen sollte, dann wird dieser nach spätestens 512 ms neu gestartet.

    Der µC-Teil der Schaltung funktionerte bei meinen Tests zwischen 7,5 und 13,8 Volt einwandfrei. Allerdings habe ich die 5 V Versorgung nicht nachgebaut. Diese kam vom Labornetzteil und änderte sich nie. Aber bei 7,5 V Eingangsspannung dürfte auch der LM78L05 noch schöne 5 V liefern. Ich hatte beim Test nur eine LED dran hängen. Deshalb kann ich nicht sicher beurteilen, wie die Schaltung funktioniert, wenn man 25 LEDs dran hängen hat. Das auszuprobieren bleibt bei dir hängen.

    Jetzt möchte ich auch noch erklären, weshalb ich nicht auf eine Lösung mit einem ATmega32 eingegangen bin. Mit dieser ATtiny13-Schaltung hast du ein komplett unabhängiges Modul, welches du direkt in die Rückleuchte einbauen kannst. Komplett unabhängig von irgendwelchen anderen Mikrocontrollern und Funktionen. Wenn etwas kaput wird, dann tauscht du es einfach aus. Und wenn das Rücklicht oder das Bremslicht nicht funktionieren, dann weißt du sofort wo du nach einem Fehler zu suchen hast. Das sind in meinen Augen alles Vorteile gegenüber einer Zentralrechner-Strategie. Lieber kleine, überschaubare Module, als einen zentralen "Point of Failure", dessen Funktion kaum mehr durchschaubar ist.

    Und noch etwas: Stecke den ATtiny13 in einen Sockel. Man hat ja nicht immer einen Computer in der Nähe, den man am Renngerät anstecken kann. Dann kann man zumindest den ATtiny13 ausbauen und zum Computer bringen.

    mfg
    Gerold
    :-)


    PS: Die Fuse- und Lock-Bits des ATtiny13 habe ich auf diesen Wert gesetzt:

    Low Fuse: 01111010
    High Fuse: 11111111
    Lockbits: 11111111

    - Serial program downloading (SPI) enabled; [SPIEN=0]
    - Int. RC Osc. 9.6 Mhz; Start-up time: 14 Ck + 64 ms; [CKSEL=10 SUT=10]
    - Brown-out detection disabled; [BODLEVEL=11]
    - Mode 1: No memory lock features enabled

    .

  9. #49
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    14.06.2007
    Ort
    Leichlingen
    Alter
    36
    Beiträge
    181
    Super genial!

    Komme aus den Staunen nicht mehr raus!

    Nur das mit dem Spannungsteiler kommt mir noch etwas komisch vor!

    Am Eingang, vom Controller kommen also 4,3V an bei 12V, wenn ich mich nicht verrechnet habe!

    Aber was ist, wenn die Batt mal extrem unter die 11V kommt?

    Wäre da nicht son 7805 sehr praktisch? Das man die Abfrafe einfach mit dem 7805 macht!?

    Wäre ne Idee von mir! ODer bis wie viel Volt erkennt der Controller noch, das das Bremssingnal da ist?

    Achja was sind die Fuse und Lockbits? Kann damit nichts anfangen!

    LG Chris





  10. #50
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    05.08.2007
    Ort
    Oberhofen im Inntal (Tirol)
    Alter
    50
    Beiträge
    377
    Hallo Chris!

    Zitat Zitat von Fighter-2
    Aber was ist, wenn die Batt mal extrem unter die 11V kommt?
    Ich habe das Labornetzteil bis 7,5 Volt runter geregelt. Also so lange du noch 7,5 Volt in dem Akku hast, funktioniert das Teil. Ob die LEDs dann auch noch leuchten, hängt von den LEDs ab.

    Zitat Zitat von Fighter-2
    Achja was sind die Fuse und Lockbits? :) Kann damit nichts anfangen!
    Dann wird es Zeit, dass du ein Buch liest: http://halvar.at/elektronik/mikrocon..._wie_anfangen/

    https://www.roboternetz.de/wissen/in...r#Die_Fusebits

    mfg
    Gerold
    :-)

Seite 5 von 8 ErsteErste ... 34567 ... LetzteLetzte

Berechtigungen

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

LiFePO4 Speicher Test