Question langage basic

Gary Coupeur

Senior Member
Bonjour

Une question:
comment puis-je affecter une valeur à une variable en basic? (exemple: en langage C, a=1 affecte la valeur 1 à la variable a, et if (a==0) permet de tester si le contenu de a vaut 0, sans pour autant lui affecter la valeur .

Quel est l'équivalent en basic? (symbole d'affectation, et symbole d'égalité)

Merci
 

Gary Coupeur

Senior Member
Thank's for the answer.
But comment peut-on affecter une valeur à une variable? (affectation et test ne sont pas la même chose)
Merci
 

Radarman2

Member
Bonjour,
désolé pour la traduction, je suis l'aide de Google.
Je pense que ce que vous voulez est la suivante:
d'affectation: Let b0 = 0, affecte la valeur 0 à la variable de b0
Test: If b0 = 1 then, regarde la valeur de b0 puis effectue autre code
 

PieM

Senior Member
Bonjour Gary,

dis, si tu pratiques le C, tu ne vas pas me dire que le basic du picaxe te pose un problème tout de même !! :D

Affectation : let a = 1 ou plus simplement a= 1

Test : comme te dit Dippy, if a=1
pas de ( ) et de ==
 
Last edited:

Gary Coupeur

Senior Member
merci + télécommande infrarouge

Bonjour

Merci beaucoup RadarMan2 et Piem, vous avez répondu à la question (je ne suis pas très à l'aise avec le basic, sans doute car trop habitué au C, et surtout parce que je ne prend pas le temps d'étudier le langage: je me sers des logigrammes de l'interface programming editor).

Je me prend la tête avec la télécommande infrarouge RAX-TVR010 + carte AXE20.
Je m'aperçois qu'il faut garder la touche enfoncée car il ne semble pas mémoriser la valeur, je vais donc la lui affecter de force!!
 

Gary Coupeur

Senior Member
Avec irin 0, b0 je scrute l'entrée infrarouge 0
quand je fais let b2 = b0, il ne semble pas recopier la valeur de b0 dans b2
but why? Faut-il employer write?
 

westaust55

Moderator
Je pense que vous avez maintenant le concept pour la tâche et l'essai.

Assignment:
LET b0 = 0 ou LET b1 = b2

Examinez:

IF b0 = 0 THEN GOTO/GOSUB {une label}

ou

IF b0 = 0 THEN….
Faites quelque chose
ENDIF

Pour la commande IRIN 0, b0

vérifiera le PICAXE entrent 0 et mettent la réception de données dans b0 variable.

LET b2 = b0 Assignera la valeur de b0 également à b2 lorsque l'instruction est effectuée (pas sans interruption à l'arrière-plan).

Quelle valeur recevez-vous pour b0 ?

Il peut vous valoir signalant vos programmes pour transmettre les données et recevoir les données ainsi nous pouvons aider plus loin.
 

PieM

Senior Member
Bonjour,

dans une fenêtre debug, la valeur de b0 change t-elle ?

Comme dit Westaust, donne le programme utilisé.
 

Gary Coupeur

Senior Member
télécommande IR

Hello and thank's westaust55
Bonjour et merci Piem

My problem is:
irin 0, b0 only doesn't keep the value of the pressed button of the remote control (télécommande).
I'm obliged to keep my finger on the button, and it's boring! ;)
Have you got an idea?

Mon problème:
dés que j'effectue une boucle sur l'acquisition de la valeur de la télécommande, il place 0 dans la variable b0 lorsqu'il n'y a pas pression sur le bouton (moi je souhaite qu'il mémorise la valeur de la dernière touche activée).
Donc mon programme ne fonctionne que si je garde la touche de la télécommande enfoncée.
Bien entendu affecter b0 dans une autre variable n'a pas d'intérêt.

Le programme basic (j'active des DEL, mais en réalité je commande des moteurs):
View attachment prog basic télécommande.pdf
Merci d'avance pour votre aide
 

PieM

Senior Member
Bonjour,

La commande irin telle qu'utilisée bloque le programme tout pendant qu'une touche n'est pas enfoncée.
En fait b0 contient bien la valeur de la touche enfoncée, mais reste en attente d'un nouvel appui.

Il faut utiliser : IRIN timeout, address, pin, variable

et donner comme address la suite du programme.

Il vaut mieux utiliser le irin dans un sous programme que l'on appelle éventuellement plusieurs fois dans un gros programme. Et en cas de non réception d'un signal IR, (au bout de timeout) revenir à la suite du programme en cours.
 

Gary Coupeur

Senior Member
Merci PieM, heureusement que tu es là.
Je vais tenter.

A part ça: j'ai l'impression que certains font souvent référence à une sorte de "bible" picaxe, où sont décrites les fonctions par exemple.
Où puis-je trouver ça? (Je pose la question car je suis un feignant qui n'a même pas cherché!)
 

Gary Coupeur

Senior Member
télécommande IR

Bonjour

Télécommande suite:
La commande IRIN timeout, address, pin, variableest bien plus adaptée, mais ça n'est tout de même pas la panacée, car à chaque fois que l'on refait appel à cette fonction, s'il n'y a pas de touche de la télécommande enfoncée, la valeur stockée dans la variable (par exemple b0) est remise à zéro (et c'est très handicapant).

Donc pour se servir de la télécommande, il faut garder les touches enfoncées (je maintiens)
 

Gary Coupeur

Senior Member
Merci Fuse, le pdf est très bien fait, en plus en français.
Je vais regarder de près, et peut-être tester le dernier algorythme (tourner ou reculer en fct de la touche de la télécommande actionnée).

D'après moi ça ne marche pas aussi bien que prévu, mais peut-être que je me plante.
 

fuse

Senior Member
Si j'ai bien compris le problème, la solution suivante est très simple :
;)flow.jpg
Attention, si vous utilisez la télécommande A4, il ne faut pas oublier de la configurer... Et les valeurs des touches ne correspondent pas aux indications chiffrées écrit sur la télécommande.... La valeur 100 (milliseconde) pourra être modifier pour s'adapter à votre programme.
La suite de l'organigramme devra être à la place de ''debug b0''.
Cordialement
 
Last edited:

Gary Coupeur

Senior Member
Well Done Fuse

Un grand merci Fuse, ça marche nickel!

Pour être sur que j'ai bien pigé (je me base sur ton exemple plus haut):
Si je dépasse le timeout sans qu'il y ait appuie sur une touche de la télécommande, alors il n'y a pas stockage de valeur dans b0 car il y a renvoie vers "norecept" (donc comme si l'on sautait une ligne de code afin justement de ne pas stocker 0 dans b0).

Si appuie sur touche: stockage normal de la valeur de la touche de la télécommande dans b0.

C'est ça? (Si toutefois tu comprends mon "basic parlé")
 

fuse

Senior Member
Bonjour,
C'est exactement ça. L'option timeout permet de sortir de la commande irin en se dirigeant vers le sous-programme indiqué (en l’occurrence norecept), comme b0 est modifié uniquement par la commande irin, cette variable garde donc la dernière valeur.:eek:
Encore une fois, je suis impressionné par les possibilités et options possibles de Programming Editor qui est un logiciel très bien pensé...
Attention la commande irin n'est pas accessible sur tous les picaxes
Cordialement
 

Gary Coupeur

Senior Member
Bonjour et merci pour le décryptage

Bon à savoir qu'irin n'est pas accessible par tous les picaxes.
La carte AXE020 n'est certes pas la moins chère, mais elle est complète et surtout particulièrement robuste (je pense aux élèves qui court-circuitent les sorties par exemple - j'ai vu que tu étais prof de techno, ainsi que ton lien qq part vers un robot).

Je me suis monté un "robot" qui évite les obstacles par ultrasons en marche avant, et par contacts (switchs) en marche arrière, pilotable par télécommande.

L'ultrason est un émetteur / récepteur assez fascinant et pédagogique (parallèle avec les chauves-souris).
 
Top