-
        

Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 11

Thema: mit bascom PWM an RN-Control

  1. #1

    mit bascom PWM an RN-Control

    Anzeige

    Hallo

    Ich möchte gerne bei meinem RN-Control beim Anschluss Motoren ein pulsweiten moduliertes Signal von 0 Volt bis Akkuspannung 12 Volt ausgeben. Ich brauche momentan Bascom.
    Ich hab schon viel nach so einem Thema in diesem Forum gesucht aber nichts gefunden, kennt sich jemand von euch aus? Kann mir jemand einen Link zu einem solchen Thema schreiben?

    Ich verstehe wie ich die vier Ausgänge ein und ausschalten kann. Also 12 Volt, 0 Volt und -12 Volt zwischen zwei dieser vier Schraubklemmen.
    Ich habe aber keine Ahnung, wie ich z.B. ein Signal von 5 Volt bekomme. Ich habe die Timer-Auflösung auf 10 Bit gesetzt.
    Aber wenn ich nun mit
    "Compare A Pwm = Clear Down"
    "Pwm1a = 1023" auf
    "Pwm1a = 1" setze komme ich nur auf 9,24 Volt runter und wenn ich
    "Pwm1a = 0" setze springt es gleich runter auf 0 Volt.

    Ich habe schon die Hilfe im Bascom gelesen, die RN-Wissen-Seite "Bascom und PWM" aber ich verstehe nicht, warum das Signal an den Ausgängen nicht tiefer als 9 Volt geht....

    Ich hoffe Ihr könnt mir helfen.
    mit besten Grüssen

    Vior

  2. #2
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    08.09.2007
    Ort
    Berlin
    Alter
    24
    Beiträge
    1.544
    Hallo Vior,

    ich benütze immer folgenden code bei meinem RN-Control:

    Code:
    $regfile = "m32def.dat"
    $crystal = 16000000
    $framesize = 32
    $hwstack = 32
    $swstack = 32
    
    
    Config Portb.0 = Output
    Config Portb.1 = Output
    Config Portc.6 = Output
    Config Portc.7 = Output
    Config Portd.4 = Output
    Config Portd.5 = Output
    Portb.0 = 1
    Portb.1 = 0
    Portc.6 = 0
    Portc.7 = 1
    
    Config Timer1 = Pwm , Pwm = 10 , Compare A Pwm = Clear Down , Compare B Pwm = Clear Down , Prescale = 8
    Pwm1a = 512                                                 'von 0 bis 1023
    Pwm1b = 512                                                 'von 0 bis 1023
    
    
    Enable Interrupts
    
    
    Do
    
    !nop
    
    Loop
    
    End
    probier ihn doch bitte mal aus und sag mir, ob es funktioniert.
    Vielleicht wäre es auch sinnvoll, wenn du deinen ganzen Code hier reinstellen würdest, nicht nur so einen kleinen Ausschnitt.

    Gruß
    Chris

  3. #3
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    30.12.2008
    Ort
    Essen
    Alter
    58
    Beiträge
    324

    PWM

    Hallo !!
    PWM bedeutet : Pulsweitenmodulation
    D.h. wenn du PWM programmierst , wird immer ein Rechtecksignal der angelegten Spannung ausgegeben .
    Das einzige was du bei PWM änderst, sind die Ein- bzw. Ausschaltzeiten des Rechtecksignals.
    Natürlich kannst Du durch eine nachgeschaltete Elektronik daraus eine entsprechende Spannung erzeugen (Kondensator , Transistor u.s.w).
    Im RN-Wissen ist alles ausführlich beschrieben.

    MfG

    Roland

  4. #4
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    08.01.2006
    Beiträge
    4.556

    Re: mit bascom PWM an RN-Control

    Zitat Zitat von Vior
    Hallo


    Aber wenn ich nun mit
    "Compare A Pwm = Clear Down"
    "Pwm1a = 1023" auf
    "Pwm1a = 1" setze komme ich nur auf 9,24 Volt runter und wenn ich
    "Pwm1a = 0" setze springt es gleich runter auf 0 Volt.

    Ich habe schon die Hilfe im Bascom gelesen, die RN-Wissen-Seite "Bascom und PWM" aber ich verstehe nicht, warum das Signal an den Ausgängen nicht tiefer als 9 Volt geht....

    Ich hoffe Ihr könnt mir helfen.
    mit besten Grüssen

    Vior
    Moin Moin.

    pwm1a=1023 enspricht volle Sopannung, hier 12V
    Pwm1a = 0 entspricht dann halt 0V

    1024 / 5 = 204,8 = ~ 205

    Pwm1a = 205 sollten dann ~ 5 V ergeben

    Das ist eine Gepulste Spannung, wenn Du das mit einem
    Multimeter messen willst solltest Du einen Elco ~ 10µ
    parallel schalten.

    Gruß Richard

  5. #5
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    16.02.2006
    Beiträge
    1.112

    Re: mit bascom PWM an RN-Control

    Zitat Zitat von Richard
    pwm1a=1023 enspricht volle Sopannung, hier 12V
    Pwm1a = 0 entspricht dann halt 0V

    1024 / 5 = 204,8 = ~ 205

    Pwm1a = 205 sollten dann ~ 5 V ergeben
    Es tut hier nicht wirklich was zur Sache, weil am Ausgang eh ein Rechteck rauskommt, aber deine Rechnung ist so nicht korrekt.
    Wenn 1023 12V entsprechen und du teilst die durch 5, dann musst du auch die 12V durch 5 teilen, was also 2,4V ergibt. Sonst würde ja
    1024 / 1 = 1024 und sollte dann 1V ergeben (ist aber 12V).
    5V würde bei 1024/12*5 ~ 427 erreicht.

  6. #6
    Ich hab den Code per RS232 rübergeladen und getestet, bei den Ausgängen messe ich aber eine Spannung von 11 Volt obwohl es ja eigentlich 6 Volt sein müssten...

    Mein Code sieht so aus, ich hab jedoch nur das eine Paar Ausgänge eingeschaltet und die auch nur auf Knopfdruck pulsweitenmoduliert.
    Code:
    $regfile = "m32def.dat"
    $framesize = 32
    $swstack = 32
    $hwstack = 32
    
    
    $crystal = 16000000                                         'Quarzfrequenz
    $baud = 9600
    
    Config Adc = Single , Prescaler = Auto                      'Für Tastenabfrage und Spannungsmessung
    Config Pina.7 = Input                                       'Für Tastenabfrage
    Porta.7 = 1                                                 'Pullup Widerstand ein
    
    
    Config Portc.7 = Output
    Portd.7 = 0
    Config Portc.4 = Output
    Portc.4 = 0
    
    
    Config Portb.0 = Output
    Portb.0 = 1
    Config Portb.1 = Output
    Portb.1 = 0
    Config Portd.6 = Output
    Portd.6 = 1
    
    
    Config Timer1 = Pwm , Pwm = 10 , Compare A Pwm = Clear Down , Compare B Pwm = Clear Down
    Pwm1a = 1023
    Pwm1b = 1023
    Tccr1b = Tccr1b Or &H02
    
    
    Do
       Start Adc
       Dim Ws As Word
       Ws = Getadc(7)
       If Ws > 400 And Ws < 450 Then
             Portc.7 = 0
          Else
             Portc.7 = 1
          End If
       If Ws > 330 And Ws < 380 Then
             Portc.4 = 0
          Else
             Portc.4 = 1
          End If
       If Ws > 260 And Ws < 305 Then
             Portb.0 = 0
             Portb.1 = 1
          Else
             Portb.0 = 1
             Portb.1 = 0
          End If
       If Ws > 180 And Ws < 220 Then
             Pwm1a = 5
          Else
             Pwm1a = 1023
          End If
    Loop
    End
    Ich dachte mir auch das ich nun je nach dem, was ich für "Pwm1a" einsetze, sich auch die Spannung am Ausgang A linear ändert, aber genau das funktioniert nicht.

    Auf dem einen Taster habe ich noch die Funktion, das die Spannung ihr Vorzeichen ändert und auf zwei weiteren, das je eine LED leuchtet, solange der Taster gedrückt ist. Das funktioniert alles, so wie ich mir das vorstelle, aber das mit der PWM leider nicht...

    Ich hoffe ihr könnt mir helfen.

    mit besten Grüssen

    Vior

  7. #7
    Erfahrener Benutzer Roboter Genie Avatar von Bammel
    Registriert seit
    11.12.2004
    Ort
    Bremen
    Alter
    30
    Beiträge
    1.400
    aber bei dir im code ist doch kein wert zu sehen der dir die 6 volt ausgibt. müsste theoretisch der pwm1a wert von 512 sein.

    du hast bei dir im code entweder volle leistung 12volt oder fast keine etwas um 0volt herum.

    es können auch bei einbem treiber-ic spannungen abfallen. beim L298 habe ich mal gelesen das das 3 volt sein sollen.

  8. #8
    In dem Beispiel-Code den ich geschrieben habe, habe ich pwm1a auf 5 gesetzt, solange ich den Taster 4 gedrückt habe. Bei diesem Wert von 5 müsste ich ja theoretisch eine Spannung von fast 0 Volt messen. Aber ich messe 9.3 Volt, was für mich einfach keinen Sinn macht (die Akkuspannung beträgt 12Volt, was ja 1024 entsprechen würde, also 5 etwa 12/200 Volt)...
    Ich habe keine Ahnung, was ich falsch mache und wäre wirklich sehr froh, wenn mir jemand von euch helfen könnte. Ist etwas an meinem Code falsch? oder könnte das auch am RN-Control liegen? Ich habe es vor 5 Tagen erst bekommen. Sollte ich mein Problem auch mal im RN-Control-Forum posten? Oder könnte es daran liegen, das ich nur zu hohe Spannungen messe, weil ich noch keinen Verbraucher (Motor, Lampe) angeschlossen habe?

    gruss
    Vior

  9. #9
    Erfahrener Benutzer Roboter Genie Avatar von Bammel
    Registriert seit
    11.12.2004
    Ort
    Bremen
    Alter
    30
    Beiträge
    1.400
    ich habe leider kein RN-Control sonst würde ich das mal für dich prüfen. ich hba zwar nen eigenen motortreiber hier aber da sind die L298 drauf. und meinen roboter demontieren möchte ich dafür auch sehr ungern.

  10. #10
    Klar, kein problem.

    Ich habe erst gerade angefangen mit Microcontrollern und der Programmierung. Und als ich das RN-Control erhalten habe, da war das Beispiel-Programm/Test-Programm schon drauf. Da gibt es ja auch den Motorentest. Der beschleunigt die Motoren einmal von 0 Volt bis zur Akkuspannung und bremst sie anschliessend wieder bis auf 0 Volt ab.

    Bei meinen Ausgängen messe ich aber eine Spannung, die nach dem Tastesrücken von 0 V sofort auf 9 V springt, sich dann kontinuierlich bis auf 11.5 V erhöht und dann wieder kontinuierlich bis auf 9 V abfällt und dann wieder direkt auf 0 V springt. Das verstehe ich einfach nicht..

    woran könnte das liegen?

    gruss
    Vior

Seite 1 von 2 12 LetzteLetzte

Berechtigungen

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