Piscar com botao sempre pressionado

Já agora também. Eu aconselho vivamente o uso do transístor. Se alguma coisa correr mal, quando usa o transístor e este queima, e basta substituir o transístor queimado por outro novo. Se não tiver o transístor e alguma coisa correr mal quem sofre as consequências é o microcontrolador e é mais caro substituir este que o transístor.
Se faz questão em não usar o transístor, pelo menos, coloque um díodo em anti-paralelo com a bobina do relé.

Boas.
Usando a leitura analógica como foi dito atrás, podes depois usar o map(), que basicamente converte o valor lido numa escala definida por ti.
Podes ver a aplicação no reference do Arduino AQUI