- fchao-Sinus-Wechselrichter AliExpress         
Seite 4 von 5 ErsteErste ... 2345 LetzteLetzte
Ergebnis 31 bis 40 von 47

Thema: Frage zum Pulsein Befehl

  1. #31
    RN-Premium User Fleißiges Mitglied
    Registriert seit
    19.05.2012
    Ort
    Sigmaringen
    Beiträge
    169
    Anzeige

    Powerstation Test
    Also... ich hab damit heut auch nochmal etwas ausprobiert...
    bin hjetzt eher etwas verwirrt...
    Der Pulsein liefert mir seltsamerweise jetzt nurnoch werte 11 bis 18.
    Theoretisch sollte es aber das 10-fache sein.
    jedenfalls hab ich behelfsmässig die umrechnung der Geschwindigkeitswerte geändert.

    Geschwindigkeit = Geschwindigkeit * 10
    Geschwindigkeit = Geschwindigkeit - 110
    Geschwindigkeit_single = Geschwindigkeit * 1.75
    Geschwindigkeit = Geschwindigkeit_single

    Select Case Geschwindigkeit
    Case Is >= 255 : Geschwindigkeit = 255
    Case Is <= 25 : Geschwindigkeit = 0
    Dafür muss die Single-Variable noch oben eingefügt werden... die hab ich benutzt um Dezimal zu rechnen.

    Meinst du die Pwm Eingänge vom Motortreiber?
    Ja die PWM-Signale und die Motor-Ports, die direkt aus deinem RN-Control kommen.
    Dazu reicht ein multimeter.
    das PWM-Signal zeigt (wenns funktioniert) die Spannungsänderung an.
    Das Multi misst nämlich Effektivspannung (Durchschnittswert) und die Steigt mit einem höheren PWM-Wert

    Versuchen könntest du mal anstadt das RC-Signal auszulesen... vieleicht kontrollhalber
    die motoren direkt ein/auszuschalten mit verschiedenen Geschwindigkeiten.
    Also testen, ob hardwareseitig alles funktioniert.

    Wenn schon keine Konsole hast fürs Fehlersuchen... hast evtl ein LCD, was du anschliessen könntest ?
    JAAAA... Microchips kann man essen... aber der Geschmack ist furchtbar.

  2. #32
    Erfahrener Benutzer Roboter Genie Avatar von HeXPloreR
    Registriert seit
    08.07.2008
    Ort
    Soltau - Niedersachsen
    Alter
    46
    Beiträge
    1.369
    Hallo,

    @ Der Einsteiger: Bist du Dir sicher das Du überhaupt ein Signal einliesst?
    - Quarzfrequenz wirklich die beschriebenen 16MHz(waren doch 16??)
    - KEIN PinD.2 und .3 als input
    - ggf Pullup für die Eingänge dazu

    Viel Erfolg

    EDIT: ach sehe grade das hatte ich ja schon als erste Anwort mal geschrieben...umgesetzt?
    Geändert von HeXPloreR (12.01.2013 um 23:05 Uhr)

  3. #33
    RN-Premium User Fleißiges Mitglied
    Registriert seit
    19.05.2012
    Ort
    Sigmaringen
    Beiträge
    169
    Zitat Zitat von JoeM1978 Beitrag anzeigen
    Also... ich hab damit heut auch nochmal etwas ausprobiert...
    bin hjetzt eher etwas verwirrt...
    Der Pulsein liefert mir seltsamerweise jetzt nurnoch werte 11 bis 18.
    Die Verwirrung hat sich aufgelöst, nachdem ich rausfinden musste, das meine Fuse-Bits nicht gestimmt haben.
    Der lief auf 1Mhz anstadt den erwarteten 8MHz.

    Hab dann diese "behelfsmässige Rechnerei wieder rausgenommen... und alles paletti.
    JAAAA... Microchips kann man essen... aber der Geschmack ist furchtbar.

  4. #34
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    21.05.2012
    Beiträge
    511
    vieleicht kontrollhalber
    die motoren direkt ein/auszuschalten mit verschiedenen Geschwindigkeiten.
    Also testen, ob hardwareseitig alles funktioniert.
    funktioniert.
    Messen mit dem Multimeter mache ich noch.
    Wenn schon keine Konsole hast fürs Fehlersuchen... hast evtl ein LCD, was du anschliessen könntest ?
    Wie du meinem Thema Frage zum rs...... jetzt entnehmen kannst habe ich wieder rs232. Ein LCD habe ich auch ,sonst hätte ich ja gar nicht die ganzen Werte ermitteln können.

    @ Der Einsteiger: Bist du Dir sicher das Du überhaupt ein Signal einliesst?
    siehe einen Quote weiter oben in diesem Kommentar.
    - Quarzfrequenz wirklich die beschriebenen 16MHz(waren doch 16??)
    - KEIN PinD.2 und .3 als input
    Ja
    - ggf Pullup für die Eingänge dazu
    Brauche ich nicht.Das empfangen funktioniert ,aber irgend was anderes funktioniert nicht.
    Hab dann diese "behelfsmässige Rechnerei wieder rausgenommen... und alles paletti.
    Das ist gut zu wissen ,dass es daran lag.

  5. #35
    RN-Premium User Fleißiges Mitglied
    Registriert seit
    19.05.2012
    Ort
    Sigmaringen
    Beiträge
    169
    Na dann lass dir mal werte vom Empfänger anzeigen und auch, was für PWM-Wert vom Timer rauskommt.

    Dabei bin ich grad am überlegen... Wenn du 16MHz Takt hast mit Prescale=8 kommt 2MHz raus... nicht wie bei mir 1MHz.

    Also Zählt der Timer doppelt so schnell ?
    JAAAA... Microchips kann man essen... aber der Geschmack ist furchtbar.

  6. #36
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    21.05.2012
    Beiträge
    511
    und auch, was für PWM-Wert vom Timer rauskommt.
    Wie denn ??
    Also Zählt der Timer doppelt so schnell ?
    Kann schon sein.

  7. #37
    RN-Premium User Fleißiges Mitglied
    Registriert seit
    19.05.2012
    Ort
    Sigmaringen
    Beiträge
    169
    mhm... du hattest den timer1 glaub auf pwm=10 ? ... dann hat der ne auflösung bis 1024.
    dann ist er also die meiste zeit über den angegebenen 255...
    entweder das anpassen oder einfach auf 8bit stellen.

    nur um missverständnisse auszumärzen
    JAAAA... Microchips kann man essen... aber der Geschmack ist furchtbar.

  8. #38
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    21.05.2012
    Beiträge
    511
    Hallo ,hab jetzt noch mal das Programm geladen von dir geladen :
    Code:
    $regfile = "m32def.dat"
    $crystal = 16000000
    $baud = 9600
    $hwstack = 32
    $swstack = 32
    $framesize = 32
    
    Config Portd.7 = Output
    Config Pind.2 = Input                                       ' Signal 1(a) vom RC-Empfänger
    Config Pind.3 = Input                                       ' Signal 2(b) vom RC-Empfänger
    Config Portc.6 = Output                                     'Motor links
    Config Portc.7 = Output                                     'Motor links
    Config Portb.0 = Output                                     'Motor rechts
    Config Portb.1 = Output                                     'Motor rechts
    Config Portd.4 = Output                                     'PWM links
    Config Portd.5 = Output                                     'PWM rechts
    
    Config Timer1 = Pwm , Pwm = 10 , Compare A Pwm = Clear Up , Compare B Pwm = Clear Up , Prescale = 8
    
    Dim Rckanal_a As Word
    Dim Rckanal_b As Word
    
    Dim Motor As Byte                                           ' 1=Motor1 / 2=Motor2 /...
    Dim Drehrichtung As Byte                                    ' 0= Bremsen / 1=links / 2=rechts
    Drehrichtung = 1                                            ' Drehrichtung >>>jetzt manuell auf Links gestellt <<<
    Dim Geschwindigkeit As Word                                 ' Motorgeschwindigkeit
    Geschwindigkeit = 0                                         ' Motorgeschwindigkeit anfangs auf 0
    
    Declare Sub Motorsteuerung(byval Motor As Byte , Byval Drehrichtung As Byte , Byval Geschwindigkeit As Word)
    
    Sound Portd.7 , 400 , 450
    Sound Portd.7 , 400 , 250
    Sound Portd.7 , 400 , 450
    Wait 2
    
    Do
       ' Wert vom RC-Empfänger abfragen und weitergeben
       Pulsein Rckanal_a , Pind , 2 , 1                         ' Wert vom Kanal 1...Motor 1.
       Motor = 1
       Geschwindigkeit = Rckanal_a
       Call Motorsteuerung(motor , Drehrichtung , Geschwindigkeit)       'Daten an Subroutine/Motorsteuerung übergeben
       ' Subroutine hat Motor bearbeitet... weiter zum nächsten
    
       ' Wert vom RC-Empfänger abfragen und weitergeben
       Pulsein Rckanal_b , Pind , 3 , 1                         ' Wert vom Kanal 2...Motor 2.
       Motor = 2
       Geschwindigkeit = Rckanal_b
       Call Motorsteuerung(motor , Drehrichtung , Geschwindigkeit)       'Daten an Subroutine/Motorsteuerung übergeben
       ' Subroutine hat Motor bearbeitet... weiter zum nächsten
    
    Loop
    
    End
    
    
    Sub Motorsteuerung(byval Motor As Byte , Byval Drehrichtung As Byte , Byval Geschwindigkeit As Word)
    
       Geschwindigkeit = Geschwindigkeit - 85                   'Wenn der Wert vom RC-Kanal etwa 90 bis 210 beträgt ...
       Geschwindigkeit = Geschwindigkeit * 2                    ' ... grob umrechnen um innerhalb 0 bis 255 zu sein fürs PWM-Signal
    
       Select Case Geschwindigkeit                              ' sicherstellen, das keine Falschen Werte durchkommen
       Case Is >= 255 : Geschwindigkeit = 600                   ' maximalwert 255
       Case Is <= 15 : Geschwindigkeit = 0                      ' Untere Schwelle, das der Motor auch wirklich still stehen kann
    
       End Select
    
          Select Case Motor                                     ' Welcher Motor soll gesteuert werden ?
          Case 1 : Select Case Drehrichtung                     ' wenn Motor1, in welche richtung soll er drehen ?
                   Case 0 : Portc.6 = 0                         ' Ports für Drehrichtung setzen
                            Portc.7 = 0
                   Case 1 : Portc.6 = 1
                            Portc.7 = 0
                   Case 2 : Portc.6 = 0
                            Portc.7 = 1
                   Case Else
                   Print "Fehler1-Drehrichtung"                 ' bei ungültigen Werten fehler anzeigen
                   End Select
                   Pwm1a = Geschwindigkeit                      ' Geschwindigkeit Motor 1 regeln
          Case 2 : Select Case Drehrichtung                     ' wenn Motor2, in welche richtung soll er drehen ?
                   Case 0 : Portb.0 = 0                         ' Ports für Drehrichtung setzen
                            Portb.1 = 0
                   Case 1 : Portb.0 = 1
                            Portb.1 = 0
                   Case 2 : Portb.0 = 0
                            Portb.1 = 1
                   Case Else
                   Print "Fehler2-Drehrichtung"                 ' bei ungültigen Werten fehler anzeigen
                   End Select
                   Pwm1b = Geschwindigkeit                      ' Geschwindigkeit Motor 2 regeln
          Case Else
          Print "Fehler-Motor"                                  ' bei ungültigen Werten fehler anzeigen
          End Select
    
       Print "->Motor=" ; Motor ; " ->Richtung=" ; Drehrichtung ; " ->Geschwindigkeit=" ; Geschwindigkeit       'Werte anzeigen als Kontrolle
    End Sub
    Und habe bei beiden Motoren nacheinander mal beim Ausgang des L293D ein Multimeter angeschlossen. Bei Mittelstellung zeigt es 1,6V ,bei dem einen Ausschlag 2,2V und beim anderen Ausschlag 0,97 V an . Ist das nicht ganz Falsch ??Sollte nicht bei beiden Endausschlägen ein höherer Wert herauskommen ???

    Die Serielle Auswertung hat nur ganz oft :Motor 1 Richtung 1 Geschwindigkeit ca.130
    und Motor 2 Richtung 1 Geschwindigkeit 138 angezeigt.

    Kannst du damit was anfangen ?????

  9. #39
    RN-Premium User Fleißiges Mitglied
    Registriert seit
    19.05.2012
    Ort
    Sigmaringen
    Beiträge
    169
    dann würd ich mal sagen... wenn der Ausgangswert (also Geschwindigkeit) sich kaum von den 130 wegbewegt....

    zurückrechnen... (130/2)+85=150

    und 150 wäre genau der wert, der für die mittelstellung der Funke zu erwarten wäre...

    Was für ne fernsteuerung hast du ? Funktioniert die richtig ??

    Ich würde mal behaupten, das deine Funke oder der Empfänger nicht korrekt arbeiten...
    Kann man evtl die Wege der Servos einstellen oder sogar anzeigen lassen ?

    Nachtrag:
    Wenn ich direkt den Wert abfrage, der von PulseIn geliefert wird....

    Meine Funke bringt bei Einstellung > "100% Servoweg" Ergebnisse von : 110<>150<>190
    und bei Einstellung > " "150% Servoweg" Ergebnisse von : 90<>150<>210
    Geändert von JoeM1978 (13.01.2013 um 15:06 Uhr)
    JAAAA... Microchips kann man essen... aber der Geschmack ist furchtbar.

  10. #40
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    21.05.2012
    Beiträge
    511
    Was für ne fernsteuerung hast du ? Funktioniert die richtig ??
    Ja, funktioniert richtig ,da ich ja sonst keine sinnvollen Ergebnisse herausbekommen würde.
    Kann man evtl die Wege der Servos einstellen oder sogar anzeigen lassen ?
    Nein.
    Meine Funke bringt bei Einstellung > "100% Servoweg" Ergebnisse von : 110<>150<>190
    Meine auch in etwa.

    Ich habe jetzt mal den Ausprobiert :
    Code:
    $regfile = "m32def.dat"
    $crystal = 16000000
    $baud = 9600
    $hwstack = 32
    $swstack = 32
    $framesize = 32
    
    Config Portd.7 = Output
    Config Pind.2 = Input                                       ' Signal 1(a) vom RC-Empfänger
    Config Pind.3 = Input                                       ' Signal 2(b) vom RC-Empfänger
    Config Portc.6 = Output                                     'Motor links
    Config Portc.7 = Output                                     'Motor links
    Config Portb.0 = Output                                     'Motor rechts
    Config Portb.1 = Output                                     'Motor rechts
    Config Portd.4 = Output                                     'PWM links
    Config Portd.5 = Output                                     'PWM rechts
    
    Config Timer1 = Pwm , Pwm = 10 , Compare A Pwm = Clear Up , Compare B Pwm = Clear Up , Prescale = 8
    
    Dim Rckanal_a As Word
    Dim Rckanal_b As Word
    
    Dim Motor As Byte                                           ' 1=Motor1 / 2=Motor2 /...
    Dim Drehrichtung As Byte                                    ' 0= Bremsen / 1=links / 2=rechts
    Drehrichtung = 1                                            ' Drehrichtung >>>jetzt manuell auf Links gestellt <<<
    Dim Geschwindigkeit As Word                                 ' Motorgeschwindigkeit
    Geschwindigkeit = 0                                         ' Motorgeschwindigkeit anfangs auf 0
    
    Declare Sub Motorsteuerung(byval Motor As Byte , Byval Drehrichtung As Byte , Byval Geschwindigkeit As Word)
    
    Sound Portd.7 , 400 , 450
    Sound Portd.7 , 400 , 250
    Sound Portd.7 , 400 , 450
    Wait 2
    
    Do
       ' Wert vom RC-Empfänger abfragen und weitergeben
       Pulsein Rckanal_a , Pind , 2 , 1                         ' Wert vom Kanal 1...Motor 1.
       Motor = 1
       Geschwindigkeit = Rckanal_a
       Call Motorsteuerung(motor , Drehrichtung , Geschwindigkeit)       'Daten an Subroutine/Motorsteuerung übergeben
       ' Subroutine hat Motor bearbeitet... weiter zum nächsten
    
       ' Wert vom RC-Empfänger abfragen und weitergeben
       Pulsein Rckanal_b , Pind , 3 , 1                         ' Wert vom Kanal 2...Motor 2.
       Motor = 2
       Geschwindigkeit = Rckanal_b
       Call Motorsteuerung(motor , Drehrichtung , Geschwindigkeit)       'Daten an Subroutine/Motorsteuerung übergeben
       ' Subroutine hat Motor bearbeitet... weiter zum nächsten
    
    Loop
    
    End
    
    
    Sub Motorsteuerung(byval Motor As Byte , Byval Drehrichtung As Byte , Byval Geschwindigkeit As Word)
    
       Select Case Geschwindigkeit
           Case 90 To 140
           Geschwindigkeit = 600
           Drehrichtung = 1
    
           Case 160 To 200
           Geschwindigkeit = 500
           Drehrichtung = 2
    
           Case Else
           Geschwindigkeit = 0
           Drehrichtung = 0
    
       End Select
    
          Select Case Motor                                     ' Welcher Motor soll gesteuert werden ?
          Case 1 : Select Case Drehrichtung                     ' wenn Motor1, in welche richtung soll er drehen ?
                   Case 0 : Portc.6 = 0                         ' Ports für Drehrichtung setzen
                            Portc.7 = 0
                   Case 1 : Portc.6 = 1
                            Portc.7 = 0
                   Case 2 : Portc.6 = 0
                            Portc.7 = 1
                   Case Else
                   Print "Fehler1-Drehrichtung"                 ' bei ungültigen Werten fehler anzeigen
                   End Select
                   Pwm1a = Geschwindigkeit
                   Print "Geschwindigkeit1:_" ; Geschwindigkeit ' Geschwindigkeit Motor 1 regeln
          Case 2 : Select Case Drehrichtung                     ' wenn Motor2, in welche richtung soll er drehen ?
                   Case 0 : Portb.0 = 0                         ' Ports für Drehrichtung setzen
                            Portb.1 = 0
                   Case 1 : Portb.0 = 1
                            Portb.1 = 0
                   Case 2 : Portb.0 = 0
                            Portb.1 = 1
                   Case Else
                   Print "Fehler2-Drehrichtung"                 ' bei ungültigen Werten fehler anzeigen
                   End Select
                   Pwm1b = Geschwindigkeit
                   Print "Geschwindigkeit2:_" ; Geschwindigkeit ' Geschwindigkeit Motor 2 regeln
          Case Else
          Print "Fehler-Motor"                                  ' bei ungültigen Werten fehler anzeigen
          End Select
          Print "Geschwindigkeit:_" ;
    End Sub
    Und bekomme keine Fehlermeldung ,doch es läuft nix.Selbst das Summen hat aufgehört. Ich bekomme nur Werte von der Geschwindigkeit je nach Knüppelstellungen angezeigt.

    Es funktioniert einfach nicht zusammen. Denn getrennt funktioniert alles.

Seite 4 von 5 ErsteErste ... 2345 LetzteLetzte

Ähnliche Themen

  1. Frage zum Bascom "Sound"-Befehl
    Von DirkP im Forum Allgemeines zum Thema Roboter / Modellbau
    Antworten: 4
    Letzter Beitrag: 06.04.2012, 14:07
  2. Wert berechnen Pulsein-Befehl
    Von RAM im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 3
    Letzter Beitrag: 24.01.2011, 18:05
  3. Arbeiten mit dem PULSEIN-Befehl
    Von Powell im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 0
    Letzter Beitrag: 02.07.2007, 16:14
  4. Frage zum Befehl "readmagcard" bzw. abbruch des pr
    Von sephi23 im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 2
    Letzter Beitrag: 29.06.2006, 09:20
  5. Frage zum Befehl outp!
    Von Decca im Forum C - Programmierung (GCC u.a.)
    Antworten: 7
    Letzter Beitrag: 03.03.2005, 14:52

Berechtigungen

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

fchao-Sinus-Wechselrichter AliExpress