Adaptation télécommande radio portail 1 canal pour ajouter la commande lampadaire

Ecureuil64

New Member
Bonjour,
Je lance mon premier petit projet pour m'initier à la programmation Picaxe.
But: adapter la télécommande de portail existante (en 433mHZ) pour lui ajouter la commande d'un lampadaire.
Je garde en place cette télécommande et agit sur le codage et le décodage pour les commandes du portail ou du lampadaire.
Le lampadaire sera dépendant de la lumière du jour.
Le récepteur n'a qu'une sortie et j'agirai sur le nombre de décodage dans un temps donné, sachant qu'une variable codage différenciera le portail du lampadaire
L'émetteur possédera un poussoir supplémentaire qui permettra la modification du codage pour la cde du lampadaire.
Une variable du codage est donc la seule chose que je modifie sur le TX et RX.
J'ai presque fini le programme et il me manquerai une fonction que je ne trouve pas: "tant que ... alors attendre"
Merci de vos éclairages
 

MGU

Senior Member
Bonjour,

Pour la fonction qui manque, peut être un

Do loop while (condition)

La boucle tourne en rond tant que la condition est vérifiée.
Pour attendre l'appui d'un poussoir par exemple..

MM
 

Ecureuil64

New Member
rebonjour à tous
voilà la 1ère mouture de mon programme TX.
voir si amélioration possible
Code:
#PICAXE 08M2
'ecureuil64
'
'TX 433mHZ cde portail et la lumière
'version 2014-07-25-2b 

'######################################################################################
'				Programme principal
'######################################################################################				

main:

if pin3=1 then portail
if pin4=1 then lumiere

goto main

'############### 	Sous-Programme portail #######################

portail:
sound 2,(120,10,80,10,120,10)
	high C.2			'alimente TX 433
	do
	pause 100			'100 ms pour stabiliser le TX
	if pin3=0 then exit	'pas d'action si poussoir reste appuié
	loop 
	high C.1			'code initial cde portail on
	pause 1000			'maintien 1 seconde
	low C.1			'code initial cde portail off
	low C.2			'coupe TX				
goto tempo


'###############  Sous-Programme lumiere: ######################
		
lumiere:
sound 2, (100,10,120,10,100,10)
	high C.2			'alimente TX		
	pause 100		
	high C.0			'lampadaire 	
	pause 1000		
	low C.0
	low C.2			'coupe TX
	do
	if pin4=0 then exit	'pas d'action si poussoir reste appuié
	loop		
	
goto tempo

'*********** tempo avant autre action *********
tempo:
pause 2000			'tempo blocage 2 secondes et bip autorisant action
sound 2, (50,100)
goto main

end
 

Ecureuil64

New Member
suite du message précédant:
voilà la 1ière mouture de mon programme RX.
voir si amélioration possible
Code:
#PICAXE 08M2
'ecureuil64
'
'RX 433mHZ cde portail et la lumière
'version 2014-07-29-2c

'######################################################################################
'				Programme principal
'######################################################################################				

'C.0	cde portail
'C.1	cde lumière
'C.2	changement de codage
'C.3	info décodeur
'C.4	LDR
symbol luz = b1				'variable état va et vient lumière
symbol newcod = b2

'************   programme principal   *******************************
luz=0
main:
	low C.2				'codage initial
	if pinC.4=1 then gosub set1 	'lit ldr  voir faire un readadc

	if pinC.3=0 then goto main	'lit le decodeur
	do loop while pinC.3=1		'attendre la fin du decodage
	high C.2				'change codage RX
	for b3=1 to 200			'boucle le temps de recevoir nouveau code
	if pinC.3=1 then gosub bascule'a-t-on reçu le nouveau code
	next b3	
	gosub cdeportail
	goto main
'************  sous-programme portail  *****************
cdeportail:						'sinon suite pour cde portail
	pause 100
	low C.2				'revient au codage initial
	high C.0				'cde portail on
	pause 400
	low C.0				'cde portail off
	return	

'************ sous-programme pour lumière  *************
bascule:					'action va et vient du lampadaire
do loop while pinC.3=1				 
luz=luz+1
	if luz=1 then set2
	gosub set1	
goto main

set1: 
low C.1					'eteint lumière					
let luz=0
return

set2:
high C.1					'allume lumière
goto main

end
 

PieM

Senior Member
rebonjour à tous
voilà la 1ère mouture de mon programme TX.
voir si amélioration possible
Attention votre prog ne revient pas au main !!! (les goto !)
Sinon excellent! je ne vois que les améliorations en rouge; attention aux tests sur une entrée. bien préciser le port.
Ne pas hésiter à nommer entrées sorties avec des symboles explicites. plus clair pour tout le monde, y compris vous quand vous reviendrez sur le prog dans 5 ans!
VOIR: http://www.picaxeforum.co.uk/showthread.php?20904-Utilisation-des-symboles-pour-entr%E9es-sorties

Code:
#PICAXE 08M2
'ecureuil64
'
'TX 433mHZ cde portail et la lumière
'version 2014-07-25-2b 

'######################################################################################
'				Programme principal
'######################################################################################				

main:
[COLOR="#FF0000"][B]
if pinC.3=1 then portail    
if pinC.4=1 then lumiere[/B][/COLOR]

goto main

'############### 	Sous-Programme portail #######################

portail:
sound 2,(120,10,80,10,120,10)
	high C.2			'alimente TX 433
	pause 100	'100 ms pour stabiliser le TX
[COLOR="#FF0000"][B]	do WHILE pin3= 1'pas d'action si poussoir reste appuié
	loop [/B][/COLOR]
	high C.1			'code initial cde portail on
	pause 1000			'maintien 1 seconde
	low C.1			'code initial cde portail off
	low C.2			'coupe TX				
goto tempo


'###############  Sous-Programme lumiere: ######################
		
lumiere:
sound 2, (100,10,120,10,100,10)
	high C.2			'alimente TX		
	pause 100		
	high C.0			'lampadaire 	
	pause 1000		
	low C.0
	low C.2			'coupe TX
[COLOR="#FF0000"][B]	do  WHILE pinC.4=1'pas d'action si poussoir reste appuié
	loop		[/B][/COLOR]
	
goto tempo

'*********** tempo avant autre action *********
tempo:
pause 2000			'tempo blocage 2 secondes et bip autorisant action
sound 2, (50,100)
goto main

end
 

PieM

Senior Member
Pour le RX, la variable luz ne sert à rien puisque elle est l'image de la sortie C.1.

de fait le s/prog bascule se limite à :

Code:
'************ sous-programme pour lumière  *************
bascule:					'action va et vient du lampadaire
do loop while pinC.3=1
TOGGLE C.1				 	
goto main
 

Ecureuil64

New Member
Merci de ces conseils, je vais les appliquer et tester.
Quelle différence entre pinC.3 et pin3 comme indiqué en rouge
Ensuite, j'aurai certainement des réajustements de tempo quand j'aurai mis en pratique le montage.
À bientôt.
 

Ecureuil64

New Member
Oups, j'ai été un peu trop pressé de répondre alors qu'effectivement j'avais ma réponse très explicite.
Merci encore
 

dje8269

Senior Member
Bonjour à tous,

La télécommande est elle munie d'un interrupteur général On/Off ? si ce n'est pas le cas , peut qu'il faudrait une fonction "sleep" ( ou autres ca je connais pas celle-ci) pour diminuer la consommation en attente d'un appui ?
 

Ecureuil64

New Member
Bonjour l'équipe,
Non,pas d'interrupteur car la télécommande existante tient 1an sans changer la pile....voir la consommation avec le module picaxe en plus?
Du coup je vais voir cette fonction sleep ce que je peux gagner en autonomie.
merci de l'info
 

jojojo

Senior Member
Sleep n'est pas la solution.
Peut-être Hibernate, mais, il faudrait un schéma, et ce n'est supporté que par les 28X ou 40X.
Une solution hardware, avec diodes Schottcky a déjà été décrite. Là encore, sans le schéma de base ...

Une autre solution purement hardware, avec commande via ADC est aussi possible, mais, un poil plus hard (mais avec une autonomie de plus de 3 ans, en moyenne).
 

PieM

Senior Member
Une solution hardware, avec diodes Schottcky a déjà été décrite.
Pas possible avec ce programme de TX, qui suppose une action au relâchement de BP.
Quelle est la tension de la pile ?
 
Top