Inicialmente a ideia era montar um espectrômetro usando o motor rotativo mas devido as dificuldades encontradas mudamos para utilização de um sensor linear ccd da Sony, ILX-554 B.
Pesquisando a fundo sobre os sensores lineares consegui 2 candidatos promissores: o fabuloso Sony ILX 554 B e o Toshiba TCD 1304. Os datasheets são facilmente encontrados e a sensibilidade era surpreendentemente boa especialmente para o caso do ILX-554 B que para faixa de 660nm de comprimento de onda tinha uma sensibilidade mais de 10 vezes maior que o TOSHIBA.
Esses sensores são do tipo Bar code Scanner e são muito utilizados. Por isso podem ser encontrados facilmente por um preço aceitável. Eles podem até ser reaproveitados de leitores de códigos de barra e alguns scanners.
Mas mais importante o ILX-554 B se tornou tão fabuloso pois era relativamente simples. Bastavam dois sinais lógicos (do tipo TTL) um de clock e outro de sincronização. Ambos poderiam (aparentemente) ser implementados facilmente com o PWM do arduino.
O motor de fato funcionou, mas além do trabalho necessário para chegar a esse ponto ele tinha claras desvantagens:
Velocidade de rotação não era exatamente exata;
a intensidade do feixe refletido caia muito sendo necessário um fotodetector muito sensível;
A rapidez do espelho exigia que o fotodetector tivesse uma resposta muito rápida;
era necessária uma fonte de alimentação exclusiva;
Ele vibrava bastante principalmente quando alimentado com 24V
Ao tentar fazer uma medida do espectro de um LED tive os seguintes problemas:
Inicialmente a luz refletida era fraca de mais para o fotodetector
Ao mudar a fonte de luz para um LED de alta potência vimos que a alta velocidade de rotação aliada com um tempo de resposta do fotodetector mascarava a resposta.
Existiam alternativas... Era possível diminuir a impedância de entrada acoplando a saída em 50 Ohms, mas ao fazer isso nosso output sumia (visto que ele tinha uma amplitude de 40mV em 10M Ohms). Tentamos amplificar o sinal com um amplificador operacional, mas não tivemos sucesso também... Isso tudo gerou uma oportunidade de repensar o projeto e após algum tempo de pesquisa achei a alternativa do sensor linear. Esse sensor era comumente empregado em projetos assim e mesmo os produtos do mercado tinham implementado essa solução.
A solução era então utilizar um sensor CCD linear e coletar todo espectro de uma só vez o que me agradou bem mais do que o motor que gira.
(eu planejava encontrar a velocidade usando as sondas hall do próprio dispositivo.
Retirei um motor como o da imagem de uma impressora a laser. Tentei utilizar a placa inteira que já contava com o driver dele. Ele apresentava 4 pinos para controle. Seguindo a polaridade do capacitor grande perto dos pinos achei os pinos de alimentação, um para o ground 0V e outro que aceitava uma variação de 18-24V, sendo que originalmente na placa ele era alimentado com os 24V. Ao testar os outros pinos consegui fazer o motor funcionar com 5V e 0V , mas eu suspeitava que uma dessas entradas seria uma entrada de clock para controlar a velocidade do motor (o que eu explorei depois). Ao variar a voltagem de 18-24V era notável o aumento da velocidade. Mas utilizado 5V o motor se rodava por poucos minutos e depois parava. O que faria sentido se essa fosse na verdade uma entrada de clock.
Depois de muito tempo eu acabei ligando o motor em 1,5V em vez de 5V e ele permaneceu rotacionando continuamente o que concorda com a minha suspeita que essa era uma entrada de clock. Isso funcionou pois deveria fornecer uma tensão média perto de 1,5V. Agora com o motor funcionando continuamente eu parei de me aprofundar nos estudos do motor e passei a desenvolver outras coisas.