Keyboard encoder

Oá a todos desde Portugal

Estou a realizar um projeto em que preciso de um arduino uno a ligado por usb a um pc a funcionar como se fosse um teclado da seguinte maneira:
O arduino vai ter 5 chaves (na primeira fase)e iremos dar nome a essas chaves
1- subir
2- descer
3- esquerda
4- direita
5- enter
A chave 1, subir, vai fazer com que o arduino envie para o pc o correspondente em ASCII das letras, A,B,C,D, …X,Y,Z,a,b,c,…0,1,2,3,4,5,6,7,8,9,“ponto”, “espaço”. isto é maisculas, minusculas, algarismos, pomto e espaço.
A chave 2, descer, faz o mesmo mas de forma inversa, isto é começa em “espaço”, “ponto” 9,8,7, etc
A chave 3, vai fazer com que salte para o carácter seguinte
A chave 4 , esquerda, vai fazer com que o carácter pule para a esquerda
A chave 5, envia o caráter " enter" para o pc
Ao pressionar simultaneamente 2 ou mais chaves o arduino não deve enviar nada.

Alguém conhece algum codigo que realize isso

Obrigado