Hola a todos,tengo que hacer un codigo que me permita saber, partiendo de cualquier posicion de la secuencia que recibo desde un contador binario en forma aleatoria,si la cuenta es ascendente o descendente y poner una salida a 0 o 1 para manejar un driver de stepper CW-CCW
Deberías haber leido un poco las normas y luego como esta organizado el foro para saber que esto es una consulta que debió ir en otra sección.
Será movido tu hilo a Software.
Los números representan su equivalente decimal. Estan expresados en binario de 4 bits pero tienen también una forma decimal que va según tu los has presentado de 0 a 15 o en hexadecimal 0 a F
Entonces lo unico que debes hacer es convertir esas 4 entradas a formato decimal y luego comparar el valor actual con el anterior. Si es mayor avanza si es menor retrocede
traduzco
ABCD serán 4 entradas
supongamos que asignas A al pin2, B al 3, C al 4, y D al 5
luego lees sus valores y lo pasas a formato decimal de este modo
bool A, B, C, D;
A = digitalRead(pinA); // donde pinA = 2 definido previamente
B = digitalRead(pinB);
C = digitalRead(pinC);
D = digitalRead(pinD);
byte = valor = A<<3+B<<2+C<<1+D; // esto hace que cada valor de tu table se convierta en el número decimal correspondiente
luego si tomas otra variable que llamas valorAnt o sea el valor Anterior y los comparas veras que al restarlos te da un número positivo o negativo.
if (valor > valorAnt)
digitalWrite(SalidaPin, HIGH);
if (valor < valorant)
digitalWrite(SalidaPin, LOW);
valorAnt = valor;
ahi tienes mas o menos como hacerlo. El resto te lo dejo a ti.