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
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
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
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
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