Pages: [1]   Go Down
Author Topic: roues codeuses - arduino mega  (Read 637 times)
0 Members and 1 Guest are viewing this topic.
Oise
Offline Offline
Full Member
***
Karma: 0
Posts: 114
The Truth is elsewhere
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

bonjour à tous
Comment faire pour lire une info binaire (codage binaire 4 bits, roues codeuses ou autres ) sur un port digital et effectuer une sortie binaire ( afficheurs codés sur 4 bits ou leds )
car j'avoue planer un peu sur ce type de materiel (arduino mega )
ayant utilisé d'autres matos ,j'ai franchement des difficultés au niveau prog ( toute une éducation à refaire  ;D ;D ;D ;D )
comme je sais qu'il y a des maitriseurs ,j'espere avoir des réponses .j'essaye d'avoir un maximum d'infos pour me lancer dans 2 ou 3 projets.
merci à l'avance ,cordialement
William
Logged

Oise
Offline Offline
Full Member
***
Karma: 0
Posts: 114
The Truth is elsewhere
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

re-bonjour
Pas de chance ,aucune réponse, pas grave  :'(
j'ai trouvé cette solution ,(ça fonctionne )mais certainement pas la meilleur, voici ce que j'ai fait.

int val;

void setup()
{
// definition des ports pour codeur en entree
pinMode(8, INPUT);
pinMode(9, INPUT);
pinMode(10,INPUT);
pinMode(11,INPUT);

// definition des ports pour aff en sortie
pinMode(32, OUTPUT);
pinMode(33, OUTPUT);
pinMode(34, OUTPUT);
pinMode(35, OUTPUT);

}
void loop()
{
 int y;
for (y=0; y<4; y++)
{
val=digitalRead(y+8);
digitalWrite(y+32, val);
}
}

ce qui m'embete un peu ,c'est que je n'arrive pas à mettre la valeur binaire (digitalread) pour m'en servir avec ( switch-case ) ,
exemple :
si roue = 0 (execution programme x) si roue= D (exec prog n ) etc...

avez-vous une solution car je patoge  :-/ :-[
cordialement
William
Logged

0
Offline Offline
Full Member
***
Karma: 0
Posts: 145
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

pour avoir une valeur numérique de la roue il faut faire un décalage.
En supposant que pin8 soit le poid fort et pin11 le poids faible
Code:
int val;

void setup()
{
// definition des ports pour codeur en entree
pinMode(8, INPUT);
pinMode(9, INPUT);
pinMode(10,INPUT);
pinMode(11,INPUT);

// definition des ports pour aff en sortie
pinMode(32, OUTPUT);
pinMode(33, OUTPUT);
pinMode(34, OUTPUT);
pinMode(35, OUTPUT);

}
void loop()
{
    val=digitalRead(8);
    val << 1;
    val+=digitalRead(9);
    val << 1;
    val+=digitalRead(10);
    val << 1;
    val+=digitalRead(11);
}
Attention se code est pour te donner le principe je ne l'ai pas testé. Si tu ne le comprends pas cherche des tutoriels sur le décalage des bits.Sinon dis le  smiley-razz
Logged

Oise
Offline Offline
Full Member
***
Karma: 0
Posts: 114
The Truth is elsewhere
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

bonsoir OLIV4945
désolé pour le retard (probleme fournisseur d'acces) bref.
j'ai essayé ton bout de prog ,en mettant Serial.println(val); hélas ( que 0 ou 1 ) merci d'avoir répondu ,j'avais essayé un truc dans le meme genre ,avec le mm resultat.
comme tu es plus balaise que moi tu va certainement trouver le bugg .
cordialement
William  smiley-wink smiley-wink

Logged

Pages: [1]   Go Up
Jump to: