Herzlich Willkommen im einzigen (deutschsprachigem) Picaxe-Forum.

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


pulsin und TX

#1 von Naubaddi , 24.11.2019 21:48

Hi,

kann es sein das pulsin und TX nicht zusammen funktionieren?

Was ich vor habe ist mit pulsin eine RC-Kanal abzufragen um dann einen Befehl an das DFPlayer Mini Modul zu senden.

Was funktioniert ist den Befehl zum DFPlayer Mini Modul zu senden wenn eine Taste gedrückt wird:

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
 
; picaxe08m2 ;	automatische Compilerauswahl für mein Skript
; Dateiname: Test Musik OK.axe
; Funktion: DFPlayer Mini mit dem 08M2 einstellen und Musik zufällig abspielen (mit Pause-Taste)
; Datum: Start 11.02.2016, Stand 24.11.2019
;
; PICAXE 08M2 Alle Pin Funktionen (C.0 nur Ausgang, C.3 nur Eingang)
;
; +---v---+
; +V |1 8| 0V
; RxD/I C.5 |2 7| C.0 O/TxD/hserout/DAC
; Touch/ADC/O/I C.4 |3 6| C.1 I/O/ADC/Touch/hserin/SRI/hi2c/scl
; I C.3 |4 5| C.2 I/O/ADC/Touch/pwm/tune/SRQ/hi2c sda
; +-------+
;
; w0=b0+b1, w1=b2+b3, w2=b4+b5, w3=b6+b7, w4=b8+b9...
;
Symbol TX = C.1 ; Ausgang, Befehl und Sollwert zum DFPlayer senden
Symbol Signal = pinC.4 ; Eingang, auf ein Signal warten
Symbol BAUD_FREQ = M8 ; Frequenz setzen
Symbol BAUD = T9600_8 ; Geschwindigkeit setzen
Symbol cmd = b0 ; Befehl für den DFPlayer
Symbol arg = w1 ; Sollwert für den DFPlayer
Symbol arg.lb = b2 ; low Byte von arg
Symbol arg.hb = b3 ; high Byte von arg
Symbol ein = b4 ; Musik ein/aus
;
ein = 0 ; Pause ein/aus
high TX ; den Ausgang TX auf high setzen für Leerlauf
SetFreq BAUD_FREQ ; Frequenz einstellen
pause 1000 ; eine Pause für die Initialisierung
;
cmd = $09 : arg = $0002 : gosub senden ; mikroSD Karte auswählen
pause 4000 ; eine Pause um den Inhalt der SD-Karte einzulesen
;
cmd = $06 : arg = $0011 : gosub senden ; Lautstärke einstellen (0 - 1E)
pause 1000 ; eine Pause um die Lautstärke einzustellen
;
cmd = $18 ; Musik-Dateien zufällig abspielen
arg = $0000 : gosub senden ; Sollwert auf normal setzen
pause 1000 ; eine Pause um den Befehl zu verarbeiten
;
DFPlayer: ; Hauptschleife
if Signal = 1 then ; wenn es ein Signal gibt
if ein = 0 then ; und die Musik aus ist
ein = 1 ; Pause ein merken
cmd = $0D ; die Pause ausschalten
arg = $0000 : gosub senden ; Sollwert auf normal setzen
else ; sonst
ein = 0 ; Pause aus merken
cmd = $0E ; die Pause einschalten
arg = $0000 : gosub senden ; Sollwert auf normal setzen
endif ; Ende von: ein
do ; Warteschleife
pause 100 ; x Millisekunden Pause
loop until Signal = 0 ; die Warteschleife verlassen wenn das Signal aus ist
endif ; Ende von: Signal
pause 100 ; x Millisekunden Pause
goto DFPlayer ; zu DFPlayer: springen
;
senden: ; Befehl und Sollwert zum DFPlayer senden
SerOut TX, BAUD, ( $7E , $FF , $06 , cmd , $00 , arg.hb , arg.lb , $EF )
return ; zurück springen
;
 
 



Mit pulsin funktioniert es nicht:

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
 
; picaxe08m2 ;	automatische Compilerauswahl für mein Skript
; Dateiname: Test Musik nOK.axe
; Funktion: DFPlayer Mini mit dem 08M2 einstellen und Musik zufällig abspielen (mit Pause-Taste)
; Datum: Start 11.02.2016, Stand 24.11.2019
;
; PICAXE 08M2 Alle Pin Funktionen (C.0 nur Ausgang, C.3 nur Eingang)
;
; +---v---+
; +V |1 8| 0V
; RxD/I C.5 |2 7| C.0 O/TxD/hserout/DAC
; Touch/ADC/O/I C.4 |3 6| C.1 I/O/ADC/Touch/hserin/SRI/hi2c/scl
; I C.3 |4 5| C.2 I/O/ADC/Touch/pwm/tune/SRQ/hi2c sda
; +-------+
;
; w0=b0+b1, w1=b2+b3, w2=b4+b5, w3=b6+b7, w4=b8+b9...
;
Symbol TX = C.1 ; Ausgang, Befehl und Sollwert zum DFPlayer senden
; Symbol Signal = pinC.4 ; Eingang, auf ein Signal warten
Symbol BAUD_FREQ = M8 ; Frequenz setzen
Symbol BAUD = T9600_8 ; Geschwindigkeit setzen
Symbol cmd = b0 ; Befehl für den DFPlayer
Symbol arg = w1 ; Sollwert für den DFPlayer
Symbol arg.lb = b2 ; low Byte von arg
Symbol arg.hb = b3 ; high Byte von arg
Symbol ein = b4 ; Musik ein/aus
;
symbol RC_Kanal = C.3 ; Eingang für einen Kanal vom Empfänger
symbol RC_Signal = w3 ; das Signal vom Empfänger, links > Mitte + xy, Mitte = X, rechts < Mitte - xy (75-225)
symbol Mitte = b8 ; die Mittelstellung
symbol xy = b9 ; Schaltpunkt plus/Minus von der Mittelstellung
symbol dumm = b10 ; eine Variable für alles Mögliche
xy = 30 ; Schaltpunkt plus/Minus von der Mittelstellung
;
ein = 0 ; Pause ein/aus
high TX ; den Ausgang TX auf high setzen für Leerlauf
SetFreq BAUD_FREQ ; Frequenz einstellen
pause 1000 ; eine Pause für die Initialisierung
;
cmd = $09 : arg = $0002 : gosub senden ; mikroSD Karte auswählen
pause 4000 ; eine Pause um den Inhalt der SD-Karte einzulesen
;
cmd = $06 : arg = $0011 : gosub senden ; Lautstärke einstellen (0 - 1E)
pause 1000 ; eine Pause um die Lautstärke einzustellen
;
cmd = $18 ; Musik-Dateien zufällig abspielen
arg = $0000 : gosub senden ; Sollwert auf normal setzen
pause 1000 ; eine Pause um den Befehl zu verarbeiten
;
pulsin RC_Kanal, 1, Mitte ; die Mittelstellung übernehmen (ca. 150)
;
DFPlayer: ; Hauptschleife
pulsin RC_Kanal, 1, RC_Signal ; RC Signal übernehmen
dumm = Mitte + xy ; Mittelstellung + xy für Musik ein/aus
;
if RC_Signal > dumm then ; gibt es ein RC Signal für Musik ein/aus?
if ein = 0 then ; und die Musik aus ist
ein = 1 ; Pause ein merken
cmd = $0D ; die Pause ausschalten
arg = $0000 : gosub senden ; Sollwert auf normal setzen
else ; sonst
ein = 0 ; Pause aus merken
cmd = $0E ; die Pause einschalten
arg = $0000 : gosub senden ; Sollwert auf normal setzen
endif ; Ende von: ein
do ; Warteschleife
pulsin RC_Kanal, 1, RC_Signal ; RC Signal übernehmen
loop until RC_Signal < dumm ; Ende von: do (Warteschleife)
endif ; Ende von: RC_Signal
;
goto DFPlayer ; zu DFPlayer: springen
;
senden: ; Befehl und Sollwert zum DFPlayer senden
SerOut TX, BAUD, ( $7E , $FF , $06 , cmd , $00 , arg.hb , arg.lb , $EF )
return ; zurück springen
;
 
 



Grüßle, Naubaddi

Naubaddi  
Naubaddi
Beiträge: 288
Registriert am: 29.01.2019


RE: pulsin und TX

#2 von Naubaddi , 04.12.2019 09:40

Hi,

es hat mich total genervt das bei zufälliger Wiedergabe immer das erste Lied abgespielt wird, anscheinend mag die PICAXE meine Idee nicht.

Habe das Problem in so weit gelöst das es jetzt Taster im Cocpit gibt, 1x Hupe, 1x nächstes Lied und 1x vorheriges Lied. Die Tasteneinheit wurde aus einem Stück Lochraster-Platine, 4x 1mm Streifen von einem Masseband, 4 kleine Nägel und grüne Kabelisolierung gebastelt. Die Kabel wurden über kleine Stecker an Buchsen die direkt an den DFPlayer angelötet wurden angeschlossen, das Teil soll ja so gut wie möglich wieder zerlegt werden können.





Grüßle, Naubaddi

Naubaddi  
Naubaddi
Beiträge: 288
Registriert am: 29.01.2019


RE: pulsin und TX

#3 von BoomBoomMagic , 04.12.2019 10:32

coole Idee ;-)


*** Die Picaxe muß nicht alles können , es reicht wenn sie sagt wo's lang geht ***

 
BoomBoomMagic
Beiträge: 879
Registriert am: 24.01.2019


RE: pulsin und TX

#4 von Joe Patroni , 04.12.2019 16:03

Die Hupe gehört ins Lenkrad!


------------------------------------------------
Danke und Gruß
Joe

 
Joe Patroni
Beiträge: 334
Registriert am: 28.01.2019


RE: pulsin und TX

#5 von Naubaddi , 04.12.2019 19:40

Hi,

Danke für die Blumen BBM.
Schöner wäre es wenn die PICAXE das machen würde, da finde ich anscheinend nicht den passenden Weg. Im Moment wird über das RC-Modul über einen Optokoppler das DFPlayer-Modul mit der PICAXE eingeschaltet, die Musik wird dann zufällig abgespielt aber immer das selbe Lied zuerst . Am DFPLayer kann man dann das nächste Lied anwählen (9 an 10) und gut ist, es wird dann weiterhin zufällig weiter Musik abgespielt. Nur im Programm bekomme ich das nicht hin .

Das momentane Programm für zufällige Musik sieht so aus:

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
 
;picaxe08m2 ;	automatische Compilerauswahl für mein Skript
; Dateiname: 08M2 DFPlayer Mini.axe
; Funktion: DFPlayer Mini mit dem 08M2 einstellen und Musik zufällig abspielen (mit Pause-Taste)
; Datum: Start 11.02.2016, Stand 08.10.2019
; Von: Naubaddi
;
; PICAXE 08M2 Alle Pin Funktionen (C.0 nur Ausgang, C.3 nur Eingang)
;
; +---v---+
; +V |1 8| 0V
; RxD/I C.5 |2 7| C.0 O/TxD/hserout/DAC
; Touch/ADC/O/I C.4 |3 6| C.1 I/O/ADC/Touch/hserin/SRI/hi2c/scl
; I C.3 |4 5| C.2 I/O/ADC/Touch/pwm/tune/SRQ/hi2c sda
; +-------+
;
Symbol TX = C.4 ; Ausgang, Befehl und Sollwert zum DFPlayer senden
Symbol RX = C.2 ; Eingang, Daten vom DFPlayer empfangen
Symbol BUSY_PIN = pinC.1 ; Eingang, ist der DFPlayer beschäftigt?
Symbol Signal = pinC.3 ; Eingang, auf ein Signal warten
Symbol BAUD_FREQ = M8 ; Frequenz setzen
Symbol BAUD = T9600_8 ; Geschwindigkeit setzen
Symbol cmd = b0 ; Befehl für den DFPlayer
Symbol arg = w1 ; Sollwert für den DFPlayer
Symbol arg.lb = b2 ; low Byte von arg
Symbol arg.hb = b3 ; high Byte von arg
Symbol ein = b4 ; Musik ein/aus
;
ein = 0 ; Pause ein/aus
high TX ; den Ausgang TX auf high setzen für Leerlauf
SetFreq BAUD_FREQ ; Frequenz einstellen
pause 1000 ; eine Pause für die Initialisierung
;
cmd = $09 : arg = $0002 : gosub senden ; mikroSD Karte auswählen
pause 4000 ; eine Pause um den Inhalt der SD-Karte einzulesen
;
cmd = $06 : arg = $0011 : gosub senden ; Lautstärke einstellen (0 - 1E)
pause 1000 ; eine Pause um die Lautstärke einzustellen
;
cmd = $18 ; Musik-Dateien zufällig abspielen
arg = $0000 : gosub senden ; Sollwert auf normal setzen
pause 1000 ; eine Pause um den Befehl zu verarbeiten
 
DFPlayer: ; Hauptschleife
if Signal = 1 then ; wenn es ein Signal gibt
if ein = 0 then ; und die Musik aus ist
ein = 1 ; Pause ein merken
cmd = $0D ; die Pause ausschalten
arg = $0000 : gosub senden ; Sollwert auf normal setzen
else ; sonst
ein = 0 ; Pause aus merken
cmd = $0E ; die Pause einschalten
arg = $0000 : gosub senden ; Sollwert auf normal setzen
endif ; Ende von: ein
do ; Warteschleife
pause 100 ; x Millisekunden Pause
loop until Signal = 0 ; die Warteschleife verlassen wenn das Signal aus ist
endif ; Ende von: Signal
pause 100 ; x Millisekunden Pause
goto DFPlayer ; zu DFPlayer: springen
;
senden: ; Befehl und Sollwert zum DFPlayer senden
SerOut TX, BAUD, ( $7E , $FF , $06 , cmd , $00 , arg.hb , arg.lb , $EF )
return ; zurück springen
;
 



Nö, nicht bei Spaßfahrzeugen die wenig wiegen sollen, ist bei unserem 1:1 Sommerfahrzeug auch so:



Grüßle, Naubaddi

Naubaddi  
Naubaddi
Beiträge: 288
Registriert am: 29.01.2019


RE: pulsin und TX

#6 von BoomBoomMagic , 05.12.2019 19:12

Möchtest Du eine halbwegs "echte" Zufallszahl , dann nehme diese Berechnung :
(Sie stammt von damals zur Anzeige/Berechnung eines Würfels vom Projekt von ELU )


RANDOM w0
w1 = w0 // 6 + 1



je nachdem wie die Zufallsspanne ist
1-6 => w1 = w0 // 6+1
1-10 => w1 = w0 // 10+1
1-9 = > w1 = w0 // 9+1


*** Die Picaxe muß nicht alles können , es reicht wenn sie sagt wo's lang geht ***

 
BoomBoomMagic
Beiträge: 879
Registriert am: 24.01.2019


RE: pulsin und TX

#7 von Naubaddi , 06.12.2019 10:47

Hi,

dann müsste doch auch der Busy-Pin ausgewertet werden und der ist auf der Platine nicht mit der PICAXE verbunden. Bei obigem Programm sind Busy Pin und RX noch für eine Testplatine enthalten, habe sie jetzt entfernt weil sie bei der DFPLayer-PICAXE Platine nicht angeschlossen sind.
Macht nix, habe das Programm nochmal verändert und die Pause aktiviert (Signal ist jetzt pinC.1), solange das MF1 eingeschaltet ist kommt nun nicht mehr jedes mal das erste Lied .

Der Stromlaufplan:


Mit Pause an Stelle von ein/aus:

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
 
; picaxe08m2 ;	automatische Compilerauswahl für mein Skript
; Dateiname: 08M2 DFPlayer Mini.axe
; Funktion: DFPlayer Mini mit dem 08M2 einstellen und Musik zufällig abspielen (mit Pause nicht ein/aus)
; Datum: Start 11.02.2016, Stand 08.10.2019
; Von: Naubaddi
;
; PICAXE 08M2 Alle Pin Funktionen (C.0 nur Ausgang, C.3 nur Eingang)
;
; +---v---+
; +V |1 8| 0V
; RxD/I C.5 |2 7| C.0 O/TxD/hserout/DAC
; Touch/ADC/O/I C.4 |3 6| C.1 I/O/ADC/Touch/hserin/SRI/hi2c/scl
; I C.3 |4 5| C.2 I/O/ADC/Touch/pwm/tune/SRQ/hi2c sda
; +-------+
;
Symbol TX = C.4 ; Ausgang, Befehl und Sollwert zum DFPlayer senden
Symbol Signal = pinC.1 ; Eingang, auf ein Signal warten
Symbol BAUD_FREQ = M8 ; Frequenz setzen
Symbol BAUD = T9600_8 ; Geschwindigkeit setzen
Symbol cmd = b0 ; Befehl für den DFPlayer
Symbol arg = w1 ; Sollwert für den DFPlayer
Symbol arg.lb = b2 ; low Byte von arg
Symbol arg.hb = b3 ; high Byte von arg
Symbol ein = b4 ; Pause ein/aus 0 = ein, 1 = aus
;
high TX ; den Ausgang TX auf high setzen für Leerlauf
SetFreq BAUD_FREQ ; Frequenz einstellen
pause 1000 ; eine Pause für die Initialisierung
;
cmd = $09 : arg = $0002 : gosub senden ; mikroSD Karte auswählen
pause 4000 ; eine Pause um den Inhalt der SD-Karte einzulesen
;
cmd = $06 : arg = $0018 : gosub senden ; Lautstärke einstellen (0 - 1E)
pause 1000 ; eine Pause um die Lautstärke einzustellen
;
cmd = $18 ; Musik-Dateien zufällig abspielen
arg = $0000 : gosub senden ; Sollwert auf normal setzen
pause 1000 ; eine Pause um den Befehl zu verarbeiten
;
ein = 0 ; Pause ein merken
cmd = $0E ; die Pause einschalten
arg = $0000 : gosub senden ; Sollwert auf normal setzen
pause 1000 ; eine Pause um den Befehl zu verarbeiten
;
DFPlayer: ; Hauptschleife
if Signal = 1 then ; wenn es ein Signal gibt
if ein = 0 then ; und die Musik aus ist
ein = 1 ; Pause aus merken
cmd = $0D ; die Pause ausschalten
arg = $0000 : gosub senden ; Sollwert auf normal setzen
else ; sonst
ein = 0 ; Pause ein merken
cmd = $0E ; die Pause einschalten
arg = $0000 : gosub senden ; Sollwert auf normal setzen
endif ; Ende von: ein
do ; Warteschleife
pause 100 ; x Millisekunden Pause
loop until Signal = 0 ; die Warteschleife verlassen wenn das Signal aus ist
endif ; Ende von: Signal
pause 100 ; x Millisekunden Pause
goto DFPlayer ; zu DFPlayer: springen
;
senden: ; Befehl und Sollwert zum DFPlayer senden
SerOut TX, BAUD, ( $7E , $FF , $06 , cmd , $00 , arg.hb , arg.lb , $EF )
return ; zurück springen
;
 



Grüßle, Naubaddi


Naubaddi  
Naubaddi
Beiträge: 288
Registriert am: 29.01.2019

zuletzt bearbeitet 06.12.2019 | Top

   

Kabelratte und sein Kampf mit dem Bahnübergang
Mousepad als ProgrammEditor

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