Ok, gracias a todos por sus valiosos aportes. Pero he descubierto la respuesta a mi pregunta. Se encuentra en el algoritmo utilizado para escanear.
El algoritmo que estaba usando (como he citado anteriormente también) se ilumina ÚNICAMENTE & SOLO 1 LED a la vez (durante algunos microsegundos), luego lo apaga y enciende el siguiente. así que en este caso necesito calcular la resistencia de acuerdo con solo 1 led. en mi caso, utilizando una fuente de alimentación de 5 V de Arduino Pins, una caída de 2V a través del LED, una clasificación de corriente de 20 mA, R resulta ser exactamente de 150 ohmios.
La desventaja puede ser un poco más tenue de los LED en comparación con el otro método, pero está compensado por el hecho de que podemos proporcionar 20 mA de corriente al LED en lugar de X (X = 40mA / Nº de LED por fila).
El otro método, por supuesto, comprende encender todos los LED en una sola fila o columna a la vez, con un retraso de algunos microsegundos, luego apagarlos y pasar a la siguiente fila / columna. Por lo tanto, tenemos que limitar la corriente a X, ya que Arduino no puede proporcionar más de 40 mA por pin. Creo que en el caso de una matriz de 8x8 o 9x9, tendré incluso LED más tenues usando esta técnica en comparación con la primera.
Del mismo modo, puede haber un caso en el que se puedan activar varias filas / columnas al mismo tiempo. (depende del tipo de imagen que desee mostrar). En ese caso, uno debe considerar no solo la restricción de 40 mA por pin, sino también la restricción de 200 mA para todos los pines considerados colectivamente.
El 1r algo es el mejor para mis necesidades. Como puede mostrar CUALQUIER imagen con buenos niveles de brillo.
Los expertos pueden rectificar si hay algo incorrecto en mi teoría.