Obtención de la respuesta de circuitos combinacionales con Arduino

2
1 Obtención de la respuesta de circuitos combi- nacionales con Arduino El objetivo de este script es conseguir la tabla de verdad de un circuito combinacional (en este caso un 7442) de forma experimental y medir el tiempo que se tarda en hacerlo con Arduino. La señal de entrada, para el 7442, es de 4 bits y la salida 10 bits. datasheet del dispositivo estudiado: http:// pdf.datasheetcatalog.com/datasheets/50/231802_DS.pdf Alonso Guerrero Llorente [email protected] 29/04/2015 a = arduino(); % inicializo el arduino % Señales de entrada al combinacional (salida del Arduino) matrix_input = [0 0 0 0; 0 0 0 1; 0 0 1 0; 0 0 1 1; 0 1 0 0; 0 1 0 1; 0 1 1 0; 0 1 1 1; 1 0 0 0; 1 0 0 1]; % para el 7442 no tiene interés introducir un número mayor matrix_output = zeros(10,10); % defino las dimensiones de la matriz de salida tic % inicio el reloj for i = 1:length(matrix_input) % Señal de entrada del combinacional (salida/escritura del Arduino) input = matrix_input(i,:); writeDigitalPin(a, 8, input(1) ); writeDigitalPin(a, 9, input(2) ); writeDigitalPin(a, 10, input(3) ); writeDigitalPin(a, 11, input(4) ); % Señal de salida del combinacional (lectura/entrada del Arduino) matrix_output(i,1) = readDigitalPin(a, 22); matrix_output(i,2) = readDigitalPin(a, 23); matrix_output(i,3) = readDigitalPin(a, 24); matrix_output(i,4) = readDigitalPin(a, 25); matrix_output(i,5) = readDigitalPin(a, 26); matrix_output(i,6) = readDigitalPin(a, 27); matrix_output(i,7) = readDigitalPin(a, 28); matrix_output(i,8) = readDigitalPin(a, 29); matrix_output(i,9) = readDigitalPin(a, 30); matrix_output(i,10) = readDigitalPin(a, 31); pause(0.001) end

description

El objetivo de este script es conseguir la tabla de verdad de un circuito combinacional (en este caso un7442) de forma experimental y medir el tiempo que se tarda en hacerlo con Arduino.La señal de entrada, para el 7442, es de 4 bits y la salida 10 bits.

Transcript of Obtención de la respuesta de circuitos combinacionales con Arduino

  • 1Obtencin de la respuesta de circuitos combi-nacionales con Arduino

    El objetivo de este script es conseguir la tabla de verdad de un circuito combinacional (en este caso un7442) de forma experimental y medir el tiempo que se tarda en hacerlo con Arduino.La seal de entrada, para el 7442, es de 4 bits y la salida 10 bits. datasheet del dispositivo estudiado: http://pdf.datasheetcatalog.com/datasheets/50/231802_DS.pdf

    Alonso Guerrero Llorente [email protected] 29/04/2015

    a = arduino(); % inicializo el arduino

    % Seales de entrada al combinacional (salida del Arduino)matrix_input = [0 0 0 0; 0 0 0 1; 0 0 1 0; 0 0 1 1; 0 1 0 0; 0 1 0 1; 0 1 1 0; 0 1 1 1; 1 0 0 0; 1 0 0 1]; % para el 7442 no tiene inters introducir un nmero mayor

    matrix_output = zeros(10,10); % defino las dimensiones de la matriz de salida

    tic % inicio el relojfor i = 1:length(matrix_input)

    % Seal de entrada del combinacional (salida/escritura del Arduino) input = matrix_input(i,:); writeDigitalPin(a, 8, input(1) ); writeDigitalPin(a, 9, input(2) ); writeDigitalPin(a, 10, input(3) ); writeDigitalPin(a, 11, input(4) );

    % Seal de salida del combinacional (lectura/entrada del Arduino) matrix_output(i,1) = readDigitalPin(a, 22); matrix_output(i,2) = readDigitalPin(a, 23); matrix_output(i,3) = readDigitalPin(a, 24); matrix_output(i,4) = readDigitalPin(a, 25); matrix_output(i,5) = readDigitalPin(a, 26); matrix_output(i,6) = readDigitalPin(a, 27); matrix_output(i,7) = readDigitalPin(a, 28); matrix_output(i,8) = readDigitalPin(a, 29); matrix_output(i,9) = readDigitalPin(a, 30); matrix_output(i,10) = readDigitalPin(a, 31);

    pause(0.001)end

  • 2time = toc % tiempo que tarda en recoger todos los output

    matrix_output % el sistema (matrix_input|matrix_output) sera la tabla de % de verdad

    time =

    4.4624

    matrix_output =

    0 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 0

    Se podra intentar mejorar el resultado definiendo un menor nmero de variables dentro del bucle, peroel tiempo final no se vera afectado notablemente. El cdigo que se ha utilizado finalmente no es el mselegante de los que se ha usado, pero s el que menos tiempo tarda (unas dcimas de segundo de diferenciacon otros cdigos equivalentes, ej: no predefiniendo el tamao de matrix_output).

    Published with MATLAB R2014a

    Obtencin de la respuesta de circuitos combinacionales con Arduino