He estado trabajando con s uno de los sensores IR de línea de sparkfun (Q113). Cuenta con 3 puertos a vcc, tierra y señal. Como sé, una forma de descubrir si el objeto es negro o blanco es a través del reflejo de la luz. Y tiene un capacitor dentro del sensor, y tenemos que cargarlo a través del fpga y si detecta el color negro, el capacitor se descarga. Ahora tengo que declarar un puerto en fpga como entrada y salida y descubrir qué tiempo tardó en descargar y determinar el movimiento del cuerpo hacia adelante o hacia atrás. mi pregunta es cómo calcular la velocidad de descarga del condensador para avanzar o retroceder y cómo escribir el código para la entrada bidireccional. Estoy usando el puerto Ja1 de fpga (BASYS 2) código ..
module top(
input mclk, // The standard clock
input direction, // Direction of io, 1 = set output, 0 = read input
input data_in, // Data to send out when direction is 1
output data_out, // Result of input pin when direction is 0
inout Ja1 // The i/o port to send data through
);
reg [7:0] a;
reg [7:0] b;
assign Ja1 = direction ? a : 1'bz;
assign data_out = b;
always @ (posedge mclk)
begin
b <= Ja1;
a <= data_in;
end
endmodule