Montage d'un chenillard avec picaxe

electrique5

Senior Member
Bonjour
je souhaiterais avoir de plus amples informations pour réaliser un chenillard avec un effet K2000 voir vidéo ...
http://www.youtube.com/watch?v=g5UujCR02Fk

pour la programmation je pense pas que ca va me poser souci mais c'est le montage en faite je vois pas comment controler 16 LED avec un seul microcontroleur
si vous avez un schéma comment je pourrais réaliser ce genre de montage.
je possède actuellement les picaxe suivant :
8M2 x 1
16F684 x2
14M2 x2
20M2 x2

Je vous remercie par avance
 

PieM

Senior Member
Bonjour,

Commander 16 leds avec un démultiplexeur 4 vers 16 est chose courante, mais ne permet l'allumage que d'une led à la fois. A moins de jouer sur le persistance rétinienne, je ne vois pas beaucoup de solution.
Au mieux il faudrait se limiter à 15 leds en utilisant toutes les sortie du 20M2
 

electrique5

Senior Member
merci pour votre réponse mais j'ai un peu de mal a comprendre vous dite 15 leds avec un 20M2 avec une led par sortie mais ce dernier possède que 8 sorties je vois pas comment mettre 15 Leds avec seulement 8 sorties
voici une capture d'écran de logicator le logiciel que j'utilise pour la programmation des picaxe vous constaterez que sur cette interface ont peu activer seulement que 8 sorties.
Désolé j'utilise depuis peu les picaxes j'essaie de comprendre leurs fonctionnement.
Merci

Sans titre.JPG
 

PieM

Senior Member
Non sur le 20 M2 les entrées/sorties sont configurables...

Si Logicator ne permet pas de définir les entrées sorties sur la gamme M2, c'est un autre problème . Mais désolé, je n'utilise pas ce mode de programmation.
 

electrique5

Senior Member
merci pour votre réponse effectivement logicator permet pas de faire ce genre de manipulation par contre il possède une fonction basic pour écrire du code manuellement.
je n'ai pas trouver de code basic pour activer une entrée comme sortie mise a part ceci - let dirsB = %11110000
est- ce que cette fonction est valide sur un 20M2 car j'ai tester et cela ne fonctionne pas
avez-vous un petit code qui permettrait d'alimenter une led sur une entrée du picaxe 20M2 a partir de la je vais essayer de comprendre le fonctionnement puis de faire une réalisation car actuellement je suis complètement bloquer.
je vous remercie par avance.
 

PieM

Senior Member
Bonjour,

l'instruction let dirsB = %11110000 définit ce qui est en sortie, ou ce qui est en entrée sur le port B, mais pas les état high ou low.
pour activer une ou plusieurs sortie à l'état haut, il faut utiliser outpinsB = %01010000 par exemple , qui mettra les sorties 4 et 6 à l'état haut et les autres à l'état bas..
sinon il est possible d'activer chaque sortie par la commande high B.4 ou low B.2 par exemple.

Je crois qu'utiliser un flowchart pour ce genre d'exercice, va conduire à écrire des instructions basic dans des rectangles et un programme un peu usine à gaz. :rolleyes:

Il vous faut bien définir dès le début quelles séquences vous souhaitez obtenir dans l'allumage des leds, sous forme d'un tableau par exemple.
 

fuse

Senior Member
Bonjour,

J'ai écris un petit tuto sur l'utilisation des sorties avec un Picaxe. Le tuto ne correspond pas tout à fait au problème mais donne des indications (voir page 4 par exemple)...
View attachment multileds_Picaxe.pdf
Attention, le mode Multiled n'autorise pas un allumage de toutes les diodes Led en même temps (remarque effectuée par PieM concernant le multiplexage...)

Avec Logicator, la commande Dirs s'écrit avec une commande BASIC, et le positionnement des sorties par la commande Outputs (mais limité au port de sortie du 20M2).

Cordialement
 

electrique5

Senior Member
bonjour désolé du retard pour vous remercier
j'ai bien réussi grace a votre aide tous fonctionne comme je le voulais.

juste une dernière petite question concernant le temps de pause le chenillard fonctionne grace a des high et low mais entre les 2
je met un temps de pause 100ms, pour aller plus vite 80ms ou plus lent 500ms bref pour régler le temps de pause je me suis servis d'un potentiomètre

La lecture de la position du potentiomètre fonctionne le souci c'est que cette lecture est comprise en 0 et 255
le problème c'est donnée sont trop grande pour etre importé comme temps de pause
j'avais pensé a mettre les valeurs dans des variables pour le temps de pause
si potentiomètre lit 50 on met 0.5 dans une variable et me servir de cette variable a tous les temps de pause
le souci impossible de mettre 0.5 ni 0,5 dans une variable car apparament il n'accepte que des chiffres rond
avez vous une idée pour résoudre ce problème ?

Merci par avance
 

PieM

Senior Member
juste une dernière petite question concernant le temps de pause le chenillard fonctionne grace a des high et low mais entre les 2
je met un temps de pause 100ms, pour aller plus vite 80ms ou plus lent 500ms bref pour régler le temps de pause je me suis servis d'un potentiomètre

La lecture de la position du potentiomètre fonctionne le souci c'est que cette lecture est comprise en 0 et 255

Bonjour,

l' instruction readadc renvoie effectivement une valeur comprise entre 0 et 255.
Votre tempo semble être entre 80 et 500ms ? pourquoi alors vouloir 0.5 dans une variable, puisque la tempo est exprimée en ms :confused:

Vous ne confondez pas l'instruction wait (à éviter) au lieu de pause par hasard ?

Si la variable analogique est par exemple b1 (entre 0 et 255) il faut la transformer en une valeur entre 0 et supérieure à 500. Donc utiliser une variable word.

Ecrire w10 = 2*b1 par exemple

et votre valeur de pause sera w10 , variant entre 0 et 510.

Vous pourriez également lire votre potentiomètre avec un readadc10 qui renvoie une valeur entre 0 et 1023 dans une variable word.

readadc10 pinx, w10

pause w10 entraîne une pause entre 0 et 1 seconde.

Eventuellement, donnez votre programme pour expliciter d'autre choses...
 
Top