Herzlich Willkommen im einzigen (deutschsprachigem) Picaxe-Forum.

Der Ursprung dieses Forum reicht bis in das Jahr 2008 zurück

Foren Suche

  • ZeitproblemDatum11.02.2020 00:36
    Foren-Beitrag von BoomBoomMagic im Thema Zeitproblem

    gibts da auch ein Video zu ??
    Sieht mir so ganz und garnicht ansatzweise nach einem PWM aus ...

  • ZeitproblemDatum10.02.2020 19:48
    Foren-Beitrag von BoomBoomMagic im Thema Zeitproblem

    im Simulator läufts .....

  • ZeitproblemDatum10.02.2020 19:21
    Foren-Beitrag von BoomBoomMagic im Thema Zeitproblem

    wenn 's denn jetzt so läuft ? ;-)

  • ZeitproblemDatum10.02.2020 19:09
    Foren-Beitrag von BoomBoomMagic im Thema Zeitproblem

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
     

    #picaxe 08M2
     
    let dirsc=%00010111
     
    symbol LED1 = pinc.0
    symbol LED2 = pinc.1
    symbol LED3 = pinc.2
    symbol LED4 = pinc.4
    symbol Zaehler=W2

    do
    '--------------------
    Zaehler=1
    LED2=1
    do

    for W1=0 to 400
    if Zaehler=W1 then
    LED1=1
    endif
    next W1
    LED1=0
    Zaehler=Zaehler+4

    if Zaehler>=400 then
    exit
    end if

    loop

    '----------------------
    Zaehler=1
    LED3=1
    do

    for W1=0 to 400
    if Zaehler =W1 then
    LED2=1
    end if
    next W1
    LED2=0

    Zaehler=Zaehler+4
    if Zaehler>=400 then
    exit
    end if

    loop

    '----------------------
    Zaehler=1
    LED4=1
    do

    for W1=0 to 400
    if Zaehler =W1 then
    LED3=1
    end if
    next W1
    LED3=0

    Zaehler=Zaehler+4
    if Zaehler>=400 then
    exit
    end if

    loop

    '----------------------
    Zaehler=1
    LED1=1
    do

    for W1=0 to 400
    if Zaehler =W1 then
    LED4=1
    end if
    next W1
    LED4=0

    Zaehler=Zaehler+4
    if Zaehler>=400 then
    exit
    end if

    loop
    '----------------------


    loop
    end
     
     

  • ZeitproblemDatum10.02.2020 18:56
    Foren-Beitrag von BoomBoomMagic im Thema Zeitproblem

    Hallo karlsson ,

    hab zwar kein Picaxe Board just zur Hand , aber da man das nur 1:1 kopieren brauch , kann ich den Text auch grad für dich kopieren

  • So ein PICAXE kann schon was ;-)Datum10.02.2020 12:37

    . . . .wenn da jetzt noch nen Schaltplan bei wäre ...

  • ZeitproblemDatum10.02.2020 11:34
    Foren-Beitrag von BoomBoomMagic im Thema Zeitproblem

    Obwohl diese RC Bastelei so garnicht mein Thema ist ( mir fehlt die Herrausforderung dabei ) ,
    hab ich mich noch mal kurz mit dem Rundumlicht beschäftigt.

    Karlsson , wir hatten das Thema ja schon bereits damals mit dem Leuchtturm , weißt noch ?

    Da Du ja sowieso einen extra Chip nehmen willst .....
    Ich fand das bei dem Rundumlicht etwas unnatürlich wenn da nur abwechselnd 4 Leds angehen.
    Drum habe ich ein wenig SOFT-PWM eingebracht , so das wenn die nächste LED leuchtet ,
    die vorherige langsam abdimmt. ( schlieren Effekt )

    Ich hab das allerdings für einen Atmel gemacht , weil ich grad kein Picaxe Board angeschlossen habe ,
    aber Naubaddi kann das sicher just für die Picaxe ummodeln , gelle ;-)


    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
     

    $regfile = "m8def.dat"
    $crystal = 8000000
    $hwstack = 50
    $swstack = 50
    $framesize = 50
     
    config portc.1=output
    config portc.2=output
    config portc.3=output
    config portc.4=output
     
    LED1 alias portc.1
    LED2 alias portc.2
    LED3 alias portc.3
    LED4 alias portc.4
     
    dim W as word
    dim Zaehler as word
     

    do
    '--------------------
    Zaehler=1
    LED2=1
    do
     
    for W=0 to 400
    if Zaehler=W then
    LED1=1
    endif
    next W
    LED1=0
    Zaehler=Zaehler+4
     
    if Zaehler>=400 then
    exit do
    end if
     
    loop
     
    '----------------------
    Zaehler=1
    LED3=1
    do
     
    for W=0 to 400
    if Zaehler =W then
    LED2=1
    end if
    next W
    LED2=0
     
    Zaehler=Zaehler+4
    if Zaehler>=400 then
    exit do
    end if
     
    loop
     
    '----------------------
    Zaehler=1
    LED4=1
    do
     
    for W=0 to 400
    if Zaehler =W then
    LED3=1
    end if
    next W
    LED3=0
     
    Zaehler=Zaehler+4
    if Zaehler>=400 then
    exit do
    end if
     
    loop
     
    '----------------------
    Zaehler=1
    LED1=1
    do
     
    for W=0 to 400
    if Zaehler =W then
    LED4=1
    end if
    next W
    LED4=0
     
    Zaehler=Zaehler+4
    if Zaehler>=400 then
    exit do
    end if
     
    loop
    '----------------------
    loop
    end
     
     



    Die Geschwindigkeit kann über :
    Zaehler=Zaehler+4
    eingestellt werden , je nachdem wie schnell der Zaehler hoch zählen soll.

    Die Gesamtgeschwindigkeit hängt hier von ab :
    for W=0 to 400



  • So ein PICAXE kann schon was ;-)Datum10.02.2020 00:05

    ### das ist mir ehrlich gesagt zu viel Text :-( , gibts da auch ne komprimierte Version von :-) ####


    Die Picaxe kann sicherlich schon was , 10 Schalter gleichzeitig an und aus ...
    aber :

    pulsin
    pulsout
    ADC
    Servo
    Timer1
    Timer2
    Display
    InfraRot

    alles zusammen ist da dann schon Science Fiction ,
    während der Atmega noch am überlegen is dafür wach zu werden oder das eher im Tiefschlaf zu erledigt ;-)
    Welchen "Hund" willste auch schon mit 250Khz Taktfrequenz "von der Roste" holen ;-)
    Dennoch kann er ein paar langsame Routinen schon hinbekommen .

  • ZeitproblemDatum09.02.2020 18:17
    Foren-Beitrag von BoomBoomMagic im Thema Zeitproblem

    Du sollst Dir hier weder einen anderen Stil angewöhnen , noch Deine Eselsbrücken missen.

    Nur etwas ....pfff....wie sag ich's jetzt am besten ..... sinniger ?!

    Beispiel :

    If Variable xxx = 1 then
    Variable nnn =5
    endif

    If Variable nnn =5 then
    ' mach was ...
    endif



    Diese doppelt gemoppelt ....... kann einen schon bissel kirre machen


    Natürlich kann eine Picaxe einen Bereich Abfragen.
    Das ist nicht das Problem.
    Das Problem sind die erweiterten Abfragen mit zusätzlichen Operatoren : OR , XOR , AND , XAND

    Du meinst z.B.

    If Käsekuchen <100 OR Käsekuchen >150 then

    wenn der aber des so interpretiert

    If Käsekuche < 100 or Käsekuchen >150 then

    is ja etwas völlig anderes ...
    Man kann so eine Picaxe ( die weder Fliesskomma , noch Text kann ) nicht mit anderen echten Mikrocontroller oder gar
    einer PC Programmiersprache auf eine Stufe setzen.

  • ZeitproblemDatum09.02.2020 17:29
    Foren-Beitrag von BoomBoomMagic im Thema Zeitproblem

    ich finde das unabhängig vom Programmieren so aber viel übersichtlicher

    Man erkennt sofort die wesentlichen Funktionen um was es hier geht, wird nicht zwischen unnötiges Setzen von Variablen oder gleichen abgelenkt.

    Man kann es jetzt noch unwesentlich verkürzen , aber das tut schon fast nix mehr zur Sache .

    ich trau der Picaxe nicht ,...........
    wenn ich eine Operation habe wie :


    If Gänseblümchen = frisch OR Gänseblümchen = HELL then ....


    mache ich das lieber getrennt oder anders , das das eindeutiger wird für den Chip.



    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
     

    ; picaxe14m2 ; automatische Compilerauswahl für gedit
    ;
    pause 1000 ; eine Pause für die RC-Elektrik
    ;
    symbol RC_Signal = b0 ; das Signal vom Empfänger
    symbol Blinker = b1 ; Blinker links ein/aus
    symbol Rundumlicht = b3 ; Rundumlicht 4 LEDs
    ;
    Main:
    ;
    pulsin C.4, 1, RC_Signal ; RC-Signal vom Fahrtregler abfragen (Bremslicht)
    Select case RC_Signal
    case 144 to 156
    high c.0
    else
    low c.0
    end select
    ;-------------------------
    ;
    pulsin C.3, 1, RC_Signal ; RC-Signal vom Lenkservo abfragen (Blinker)
    if RC_Signal < 143 then
    Blinker = 1 ; Links
    elseif RC_Signal > 157 then
    Blinker = 2 ; Rechts
    else
    Blinker = 0
    low C.1
    low C.2
    endif
    ;------------------------
    ;
    pulsin B.5, 1, RC_Signal ; RC-Signal vom ??? abfragen (Rundumlicht)
    select case RC_Signal
    case 144 to 156
    Rundumlicht =0
    else
    Rundumlicht =1
    end select
    ;
    goto Main
    ;
    ;
    start1: ; Multitask für die Blinker
    if Blinker = 1 then
    high C.1 : pause 99
    low C.1 : pause 99
    elseif Blinker=2 then
    high C.2 : pause 99
    low C.2 : pause 99
    endif
    goto start1
    ;
    ;
    start2: ; Multitask für das Rundumlicht
    if Rundumlicht = 1 then
    low b.4 : high b.1 : pause 99
    low b.1 : high b.2 : pause 99
    low b.2 : high b.3 : pause 99
    low b.3 : high b.4 : pause 99
    else
    low b.1 ,b.2 , b.3, b.4
    endif
    goto start2
    ;
     
     

  • ZeitproblemDatum09.02.2020 13:19
    Foren-Beitrag von BoomBoomMagic im Thema Zeitproblem

    Ich hab nicht gesagt das das RC-Signal popelig ist , sondern die Funktion , die es zu programmieren gilt.

    Wobei das unabhängig von der Schwierigkeit oder dem Timing ist.

    Ich hatte mir den Spaß gemacht und mal Deinen Code bissel ... mh .... "entlastet" und nur das wesentliche gelassen ,
    jo , da war das schon übersichtlicher mit 10 Sätzen ca.
    Da hab ich dann auch langsam den Sinn des Codes verstanden , vorher sah ich nur Text ...Text ...Text ...

    aber wie gesagt , ich hab so überhaupt nix mit sowas am Hut , ist überhaupt nicht mein Interessensgebiet, insofern würd ich sagen ,
    mach das weiterhin so wie Du es gewohnt bist .

  • ZeitproblemDatum09.02.2020 11:46
    Foren-Beitrag von BoomBoomMagic im Thema Zeitproblem

    Moin Leutz ,

    also , .... ich will mich da nicht reinhängen , aber .... mir sind die Codes alle zu Ballasthaltig , zu Schwerlastig
    Vielleicht denk ich zu logisch ......



    Ich habe doch nur EINE simple popelige Schleife , nämlich : was ist das Servosignal (pulsin)
    Mehr interessiert mich doch erstmal überhaupt nicht .

    Dann , je nach dem , ob Blinker links oder Blinker rechts oder Warnblinker setze ich passende Variablen.

    Die entsprechenden Blinkfunktionen stehen in verschiedenen Task und werden über die entsprechenden Variablen aktiviert.
    fertig !

    If .... IF .... IF ... IF .... Variable A= , Variable B = , Variable C= , Variable D = , Variabel e= , ...... Übersichtlich geht echt anders meiner Meinung nach

  • ZeitproblemDatum08.02.2020 11:13
    Foren-Beitrag von BoomBoomMagic im Thema Zeitproblem

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
     

    dirsb=%00111110
    dirsc=%00000011

    high c.1 'Bremlicht an


    start:
    'Bremslicht

    count C.4, 300,b0 'Radsensor
    if b0 > 0 then
    low c.1
    else
    high c.1
    endif
     
    goto start
     

     

    start1:
    'Blinker

    pulsin C.3,1,b1 'Servosignal
     
    if b1>160 then
    pulsout b.5,60000
    pause 600
    elseif b1<140 then
    pulsout c.0,60000
    pause 600
    endif

    goto start1
     

     

    start2:
    'Rundumkennleuchte


    if pinc.2 = 1 then

    pulsout b.1,7000
    pause 70
    pulsout b.2,7000
    pause 70
    pulsout b.3,7000
    pause 70
    pulsout b.4,7000
    pause 70

    endif

    goto start2
     
     

  • ZeitproblemDatum08.02.2020 09:45
    Foren-Beitrag von BoomBoomMagic im Thema Zeitproblem

    Hallo Karlsson ,

    ich denke auch , wenn Du jeder Funktion einen Task spendest , könnte das mit ner Picaxe besser gehen.
    So arbeitest du ja nur alles nacheinander ab , bis auf das Rundlicht.

    Naubaddi's Code ist mir leider viiiiiiiiiiel zu lang , will doch nicht erst die Bibel lesen für 2-3 Funktionen ,
    da steig ich nicht wirklich durch was da passieren soll oder kann oder tut ...
    aber scheint ja zu funktionieren

  • PWM als Signal nutzenDatum08.02.2020 09:35
    Foren-Beitrag von BoomBoomMagic im Thema PWM als Signal nutzen

    schade.

    Aber nen bissel viel Magnete
    Hätten da nicht 2 oder max. 4 dicke ausgereicht ?

  • Nr.6 lebt ...Datum04.02.2020 14:13
    Foren-Beitrag von BoomBoomMagic im Thema Nr.6 lebt ...

    Hier noch nen Vorschlag ...

  • Kleine Spielerei mit Servo ...Datum04.02.2020 10:49

    Hallo Naubaddi ,

    ich kann mir eigentlich nicht vorstellen das es der Drehencoder selbst ist ..
    je nach Encoder hat der nen Ring mit 15,20,30,40 Kontakten , auf dem ein weiterer geschliffen wird .
    Na gut, fast wie nen Poti , könnte vll. doch sein .... aber Encoder gibts wie Sand am Meer
    Der wäre für 3€ austauschbar - falls man noch Radio haben will im Auto.

    Sinn macht weder Poti , noch Encoder mit Servo , das ist klar , sind halt dumme Spielereien
    Wobei , wenn ich den Decoder an meinen Arm befestige , bewegt sich nen Servo 1:1 mit z.B.

  • Kleine Spielerei mit Servo ...Datum04.02.2020 00:15
    Thema von BoomBoomMagic im Forum Little small Talk

    Heute habe ich mal den Spaß gemacht und einen Servo mittel Drehencoder laufen lassen.
    Zusätzlich wird wie bekannt das Ganze auf einem alphanumerischen Display (16x2) angezeigt und
    über PinC.4+5 die Drehrichtung als Impuls detektiert.



    Wen's interessiert , hier der einfache Code dazu :

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
     

    $regfile = "m8def.dat"
    $crystal = 8000000
    $hwstack = 40
    $swstack = 40
    $framesize = 40
     

    Config Lcdpin = Pin , Db4 = Portd.4 , Db5 = Portd.5 , Db6 = Portd.6 , Db7 = Portd.7 , E = Portd.2 , Rs = Portd.3
    Config Lcd = 16 * 2
    cls
    cursor off
     
    Config Servos = 1 , Servo1 = Portb.1 , Reload = 10
     

    Config Portc.1 = Input
    Config Portc.2 = Input
    config portb = output
    Config Portc.4 = output
    Config Portc.5 = output
     
    dim Merken as byte
    Dim Result As Byte
     
    merken=30
    Portc.1 = 1
    Portc.2 = 1
    locate 1 , 1
    lcd "aktueller Wert :"
    locate 2 , 1
    lcd Merken ; " "
     
    Enable Interrupts
     
    Do
    Result = Encoder(pinc.1 , Pinc.2 , Links , Rechts , 0)
    Loop
    End
     

    Links:
    pulseout portc , 5 , 1000
    decr merken
    if merken<30 then
    merken=30
    endif
    Servo(1) =merken
    locate 2 , 1
    lcd Merken ; " "
    Return
     

    Rechts:
    pulseout portc , 4 , 1000
    incr merken
    if merken>150 then
    merken=150
    endif
    Servo(1) =merken
    locate 2 , 1
    lcd Merken ; " "
    Return
     
     




    Und wozu jetzt das Ganze bitte schön ...?


    öhm .... weil er's kann ?!

  • mh ... na wenn denn dann schon sinnlose Übungen machst , dann mach doch mal die Herausforderung Drehencoder anstatt Poti und Servo ;-)
    .... könnte man ja mal gebrauchen ....

  • Jetzt muß ich doch mal dumm frägen ...

    Du hast einen Servo-Empfänger ( da kann man jetzt schön einen Servo dran hängen )

    liest das Siganl aus mit nem Atmega ( o-kay) und gibts das dann einem Servo ???

    Wieso nicht gleich den Servo an dem Empfänger ??

Inhalte des Mitglieds BoomBoomMagic
Beiträge: 879
Ort: Bielefeld
Geschlecht: männlich
Picaxe Editor 5.5.5 Download
Update auf Picaxe Editor 5.5.6 Download
Picaxe Editor 6.x.x.x Download
Manual1.pdf        -      Grundwissen Download
Manual2.pdf        -      Befehle Download
Manual3.pdf        -      Beispiele Download


Press [Backspace] for back to Menu


Counter
Xobor Forum Software ©Xobor.de | Forum erstellen
Datenschutz