instruction readadc et pratique

Pererobert

New Member
Bonjour. J'essaie depuis deux jours de mettre en pratique le petit programme suivant :

main: read 0, b1
if b1<75 tehn light 1
if b1< 175 then light 2
goto light3

light1 :
high 1
low 2
low 3
goto main

light2:
low 1
high 2
low 3
goto main

light3:
low 1
low 2
high 3
goto main

Rien de bien compliqué à première vue. Mais j'ai quelques questions concernant la tension de référence. Dans la littérature on crée un pont entre le + et le - en insérant une résistance fixe de 4,7 K et un potentiomètre de 10 K. La partie mobile du potentiomètre est raccordée sur l'entrée "analogue pin 0" ! Pourriez-vous me dire à quelle pin cela correspond sur un Picaxe 08 , un 08M et un 08M2. Selon les sources j'ai des entrées différentes ! Certaines éliminent le 08 comme n'ayant pas d'entrée analogique et d'autres disent le contraire ! J'ai essayé mais les résultats sont peu probants. Quel valeur dois-je mettre dans l'instruction
"readadc ?, b1" Le ? est-ce le numéro de la pin sur laquelle se trouve la tension de référence. S'ils existent deux entrées analogique y-a-t-il une prioritaire ? La tension de référence est-elle valable sur toutes les sorties du Picaxe comme par exemple le Picaxe 18 avec possibilités d'allumer séparément 7 Leds ? Quelle précision peut-on attendre entre deux valeurs c'est-à-dire peut-on fixer des valeurs de 20 en 20 par exemple ?
Désoler pour ce flot de questions mais plus je cherche et plus je m'interroge :)
 

PieM

Senior Member
Désoler pour ce flot de questions mais plus je cherche et plus je m'interroge :)
Bonjour, beaucoup de questions en effet ...

tout d'abord, lire une tension analogique se fait par l'instruction readadc (sur 8 bits) ou readadc10 (sur 10 bits), et non read.
dans votre cas mettre un potentiomètre de 10k et une résistance talon de 4.7 k ne pourra vous faire varier la mesure que sur 2/3 de l'échelle totale.
Si votre résistance est reliée à +5V, la valeur maxi obtenue ne dépassera jamais 170 avec une instruction readadc. La résistance talon n'est pas nécessaire.
sinon modifiez la valeur dans votre test.

Sur un 08 , la seule entrée analogique est la 1
sur un 08M, ou sur un 08M2, ce sont les entrées 1,2,et 4 . (voir manuel 1 page 27)

donc un racordement sur 0 n'a pas de sens.

d'autre part la 3 sur un picaxe 08 ne peut pas être une sortie. donc high 3 ou low3 ne peut rien donner.

Donc reliez le curseur de votre potentiomètre à 1 et vos led à 4 , à 2, et à 0.

La particularité est que vous allez relier la sortie Serial Out à une led . Donc lors du chargement du programme, celle ci va clignoter, ce qui est tout à fait normal.

Sauf sur un M2, la tension de référence avec un Picaxe 08 ne peut être que la tension d'alimentation du Picaxe. Et elle est la même pour toutes les entrées ana qui sont indépendantes l'une de l'autre.

Votre programme deviens :

Code:
main: 
[INDENT]readadc 1, b1
if b1<75 then light 1
if b1< 175 then light 2
goto light3[/INDENT]

light1 :
[INDENT]high 4
low 2
low 0[/INDENT]
goto main

light2:
[INDENT]low 4
high 2
low 0[/INDENT]
goto main

light3:
[INDENT]low 4
low 2
high 0[/INDENT]
goto main
 

Pererobert

New Member
Grand merci pour votre réponse. J'ai bien mis readadc et non read sur mon programme, c'est une erreur de copie. Si j'ai bien compris un potentiomètre de 10K est suffisant. Pour le raccordement sur un 08 je suppose que l'entrée analogique 1 est bien la pin numéro 6 du circuit (désolé pour cette question qui semble bête mais pourquoi Picaxe n'a pas gardé le même numéro pour indiqué et la Pin et la Sortie).
Si j'utilise un Picaxe 18 une seule tension de référence permettrait de commander une Led (via transistor) sur chaque sortie.
 

PieM

Senior Member
Pour le raccordement sur un 08 je suppose que l'entrée analogique 1 est bien la pin numéro 6 du circuit .
Si vous regardez le manuel :confused:, http://www.picaxe.com/Getting-Started/PICAXE-Manuals/ vous voyez que la sortie 1 est la pin 6, la seule indiquée ADC.

Si j'utilise un Picaxe 18 une seule tension de référence permettrait de commander une Led (via transistor) sur chaque sortie.
Oui, mais il n'y a pas besoin d'un transistor pour commander une led ! Je vous assure, lisez les manuels ! à ce niveau, tout est clairement expliqué ...
 

Pererobert

New Member
Merci. Je viens d'essayer et sa fonctionne parfaitement. Je m'étonne juste du peu de latitude du système car les écarts entre les sorties ne sont que de quelques millivolts mais ça fonctionne parfaitement. J'ai prévu des transistors pour alimenter des relais. Je sais qu'il faut lire les manuels mais ceux-ci manquent cruellement d'exemples sous formes de schémas. Les textes sont parfois fort abstraits pour des non électroniciens. Je suis chimiste et à 70 ans j'essaie d'aller à l'essentiel :)
 
Top