Il est question ici de la “Liaison HF par modules 433MHz“ de la page oueb de l’incontournable Electromag1 alias MGU @ :
Ce montage me semble avoir un gros potentiel … il m'intéresse personnellement pour réaliser une télécommande par combinaison de boutons , ainsi avec 5 boutons on pourrait déjà commander une quinzaine d'ordres différents, et plus avec 6 boutons ... etc. Pour aller plus loin, rien n’empêcherait de mettre en œuvre les touches sensitives développées par MGU @ :
Suite à mes tests sur table, je constate par exemple : si on a les boutons A B C D E, correspondant aux ports C.0, C.1, etc .…
Côté émetteur, si appuis sur A b2 = 1, sur B b2 = 2, sur A+B b2= 3, etc… au repos b2=0 (%00000)
Par contre mystérieusement (à mon niveau) :
Côté récepteur, si appuis sur A b2 = 30, sur B b2 = 29, sur A+B b2= 28, etc… au repos b2=31 (%11111)
Pourquoi cette inversion et éventuellement comment retourner la bonne valeur ? Bon d’accord, côté récepteur il suffit de connaitre le bon code et enchainer les tests conditionnels qui vont bien.
Je constate également que le rôle du poussoir sur le port B.2, ne semble avoir aucune influence sur l’état de b2 en réception ? C’est pourquoi dans le montage que je propose, je réserve les ports B à un autre usage.
Concrètement mon besoin est simple : tant qu’on appuie sur des boutons, on émet. Si relâchement, on envoie b2 = 0, et ceci au moins 2 fois comme dans l’exemple de MGU. Ainsi l’émission en 433 MHz n’est pas permanente, mais juste le temps d’opérer la commande.
Pour quoi faire ? Il s’agit de manœuvrer en manuel un capteur solaire orientable, d’où les commandes de base : Est, Ouest haut et bas, donc ici 4 boutons suffisent. En plus j’ai besoin d’envoyer des ordres du genre : remise à l’heure de l’horloge, reset, réglage du n° de jour, allumage ou non du rétro éclairage de l’afficheur, position tempête, etc ... choses qu’il peu être souhaitable de faire à l’abri. D’où un cinquième bouton E, et même F, un sixième.
En maintenant appuyé le cinquième bouton, le E, et un des quatres premiers, nous avons déjà 4 autres commandes. Bien entendu rien n’empêche d’appuyer sur haut et bas en même temps, etc. etc.
Je vous soumets mon schéma et la façon dont j’ai modifié le code émetteur d’origine pour mes besoins.
Côté récepteur, j’ai un 14M2 dont il me reste le port C.3 disponible, donc à priori on a pas bsoin de le configurer en entrée.
Aux essais la portée est de l’ordre d’une vingtaine de metre à vue, un peu limite en fin de vie des piles.
Les réactions semblent un peu molles, ça cafouille, le bouton A ne fonctionne plus, y a t’il aussi un souci de rebond des inters ? La logique semble pourtant correcte.
Merci d’avance pour votre aide. Bien à vous
-
jnt000

++++++++++++++++++++++++++++++++
01 'origine : Emetteur WL102-341 433MHz source MM 19/05/2023
02 'Documents/PICAXE Editor/PICaxe proj/PIAX clavier_TS/clavier_seriel_Emet03.bas"
03 'Emetteur :
04 '142 est un identifiant reconnu par le recepteur pour securiser la transmission (necessaire)
05 'cinq boutons poussoirs sur les entrees C + 3 possibles sur les B
06 'L'emetteur est alimente par B.2
07 'envoi de b2 en cas de modification de la configuration des boutons, tant que maintenu tel que
08 'envoi de b2 = 0 au repos et attente en cas de modification de la configuration des boutons
09 'les entrees B.5, B.4, B.3 ne sont pas exploitees
10
11 #picaxe 14M2
12 #no_data
13 pullup %1111100111000 'pullup sur C.0 a C.4 et B.5, B.4, B.3
14 dirsB = %000111 'B.5, B.4, B.3 en entree les autres en sorties
15
16 DO 'boucle principale
17 b1 = pinsC 'etat des entrees C
18 if b1 <> 0 then 'si different de repos
19 b2 = pinsC 'il y a modif sur au moins une entree C
20 gosub emission 'SF emission
21 else 'sinon repos
22 b2 = 0
23 gosub emission 'SF emission
24 do 'boucle attente modif entrees
25 b1 = pinsC 'etat des entrees
26 loop while b1 = b2 'boucle tant que non modif
27 endif
28 LOOP
29
30 '********** SOUS FONCTIONS ***************************
31 emission:
32 high B.2 'alimentation emetteur
33 pause 100
34 rfout B.1,(142,b2,b2,b2,b2,b2,b2,b2)
35 pause 100
36 rfout B.1,(142,b2,b2,b2,b2,b2,b2,b2) 'on double, au cas ou...
37 low B.2 'coupure alim emetteur
38 return
39
++++++++++++++++++++++++++++++++
01 'Recepteur WL101-241 433MHz, source MM
02 'identifiant envoi emetteur: b1=142, par securite
03 #picaxe 14M2
04 #no_data
05 ' dirsB =%111111 'B.0 a B5 en sortie (pour fonctionnement pinsB)
06 'inputtype %10000000000000 'pin C.4 en bascule de schmidt pour 5V si <1V=0 si>4V=1
07 inputtype %0100000000000 'pin C.3 en bascule de schmidt pour 5V si <1V=0 si>4V=1
08 DO
09 gosub reception:
10 'etc.
11 'etc.
12 LOOP
13
14 '****** SOUS-FONCTIONS ******************
15 reception:
16 rfin C.3,b1,b2,b2,b2,b2,b2,b2,b2 'lecture de la trame emetteur
17 if b1=142 AND b2 <> 31 then 'si identifiant 142 reconnu ET b2 hors repos alors
18 goto teleCdes: 'appel SF Cdes
19 endif
20 debug
21 return
22 teleCdes:
23 ' pinsB = b2 'position des inters emetteurs
24 do while b2 = 30 'faire tant que
25 high C.1 'retour moteur EST
26 gosub reception 'attente relachement
27 loop 'reboucle
28 low C.1 'raz
29 do while b2 = 29 '
30 high C.2 'faire moteur OUEST
31 gosub reception 'attente relachement
32 loop
33 low C.2
34 debug
35 return
Les picaxes et les liaisons HF
Picaxes et liaisons HF 433MHz, codage Manchester, récepteur super réaction, récepteur superhétérodyne, transmission radio de paramètres, transmission HF 433 MHz
electromag1.wifeo.com
Ce montage me semble avoir un gros potentiel … il m'intéresse personnellement pour réaliser une télécommande par combinaison de boutons , ainsi avec 5 boutons on pourrait déjà commander une quinzaine d'ordres différents, et plus avec 6 boutons ... etc. Pour aller plus loin, rien n’empêcherait de mettre en œuvre les touches sensitives développées par MGU @ :
Touches sensitives capacitives et picaxes
Test de la commande TOUCH 16 sur picaxe, réglage, calibration
electromag1.wifeo.com
Suite à mes tests sur table, je constate par exemple : si on a les boutons A B C D E, correspondant aux ports C.0, C.1, etc .…
Côté émetteur, si appuis sur A b2 = 1, sur B b2 = 2, sur A+B b2= 3, etc… au repos b2=0 (%00000)
Par contre mystérieusement (à mon niveau) :
Côté récepteur, si appuis sur A b2 = 30, sur B b2 = 29, sur A+B b2= 28, etc… au repos b2=31 (%11111)
Pourquoi cette inversion et éventuellement comment retourner la bonne valeur ? Bon d’accord, côté récepteur il suffit de connaitre le bon code et enchainer les tests conditionnels qui vont bien.
Je constate également que le rôle du poussoir sur le port B.2, ne semble avoir aucune influence sur l’état de b2 en réception ? C’est pourquoi dans le montage que je propose, je réserve les ports B à un autre usage.
Concrètement mon besoin est simple : tant qu’on appuie sur des boutons, on émet. Si relâchement, on envoie b2 = 0, et ceci au moins 2 fois comme dans l’exemple de MGU. Ainsi l’émission en 433 MHz n’est pas permanente, mais juste le temps d’opérer la commande.
Pour quoi faire ? Il s’agit de manœuvrer en manuel un capteur solaire orientable, d’où les commandes de base : Est, Ouest haut et bas, donc ici 4 boutons suffisent. En plus j’ai besoin d’envoyer des ordres du genre : remise à l’heure de l’horloge, reset, réglage du n° de jour, allumage ou non du rétro éclairage de l’afficheur, position tempête, etc ... choses qu’il peu être souhaitable de faire à l’abri. D’où un cinquième bouton E, et même F, un sixième.
En maintenant appuyé le cinquième bouton, le E, et un des quatres premiers, nous avons déjà 4 autres commandes. Bien entendu rien n’empêche d’appuyer sur haut et bas en même temps, etc. etc.
Je vous soumets mon schéma et la façon dont j’ai modifié le code émetteur d’origine pour mes besoins.
Côté récepteur, j’ai un 14M2 dont il me reste le port C.3 disponible, donc à priori on a pas bsoin de le configurer en entrée.
Aux essais la portée est de l’ordre d’une vingtaine de metre à vue, un peu limite en fin de vie des piles.
Les réactions semblent un peu molles, ça cafouille, le bouton A ne fonctionne plus, y a t’il aussi un souci de rebond des inters ? La logique semble pourtant correcte.
Merci d’avance pour votre aide. Bien à vous
-
jnt000

++++++++++++++++++++++++++++++++
01 'origine : Emetteur WL102-341 433MHz source MM 19/05/2023
02 'Documents/PICAXE Editor/PICaxe proj/PIAX clavier_TS/clavier_seriel_Emet03.bas"
03 'Emetteur :
04 '142 est un identifiant reconnu par le recepteur pour securiser la transmission (necessaire)
05 'cinq boutons poussoirs sur les entrees C + 3 possibles sur les B
06 'L'emetteur est alimente par B.2
07 'envoi de b2 en cas de modification de la configuration des boutons, tant que maintenu tel que
08 'envoi de b2 = 0 au repos et attente en cas de modification de la configuration des boutons
09 'les entrees B.5, B.4, B.3 ne sont pas exploitees
10
11 #picaxe 14M2
12 #no_data
13 pullup %1111100111000 'pullup sur C.0 a C.4 et B.5, B.4, B.3
14 dirsB = %000111 'B.5, B.4, B.3 en entree les autres en sorties
15
16 DO 'boucle principale
17 b1 = pinsC 'etat des entrees C
18 if b1 <> 0 then 'si different de repos
19 b2 = pinsC 'il y a modif sur au moins une entree C
20 gosub emission 'SF emission
21 else 'sinon repos
22 b2 = 0
23 gosub emission 'SF emission
24 do 'boucle attente modif entrees
25 b1 = pinsC 'etat des entrees
26 loop while b1 = b2 'boucle tant que non modif
27 endif
28 LOOP
29
30 '********** SOUS FONCTIONS ***************************
31 emission:
32 high B.2 'alimentation emetteur
33 pause 100
34 rfout B.1,(142,b2,b2,b2,b2,b2,b2,b2)
35 pause 100
36 rfout B.1,(142,b2,b2,b2,b2,b2,b2,b2) 'on double, au cas ou...
37 low B.2 'coupure alim emetteur
38 return
39
++++++++++++++++++++++++++++++++
01 'Recepteur WL101-241 433MHz, source MM
02 'identifiant envoi emetteur: b1=142, par securite
03 #picaxe 14M2
04 #no_data
05 ' dirsB =%111111 'B.0 a B5 en sortie (pour fonctionnement pinsB)
06 'inputtype %10000000000000 'pin C.4 en bascule de schmidt pour 5V si <1V=0 si>4V=1
07 inputtype %0100000000000 'pin C.3 en bascule de schmidt pour 5V si <1V=0 si>4V=1
08 DO
09 gosub reception:
10 'etc.
11 'etc.
12 LOOP
13
14 '****** SOUS-FONCTIONS ******************
15 reception:
16 rfin C.3,b1,b2,b2,b2,b2,b2,b2,b2 'lecture de la trame emetteur
17 if b1=142 AND b2 <> 31 then 'si identifiant 142 reconnu ET b2 hors repos alors
18 goto teleCdes: 'appel SF Cdes
19 endif
20 debug
21 return
22 teleCdes:
23 ' pinsB = b2 'position des inters emetteurs
24 do while b2 = 30 'faire tant que
25 high C.1 'retour moteur EST
26 gosub reception 'attente relachement
27 loop 'reboucle
28 low C.1 'raz
29 do while b2 = 29 '
30 high C.2 'faire moteur OUEST
31 gosub reception 'attente relachement
32 loop
33 low C.2
34 debug
35 return