LusoRobótica - Robótica em Português
Robótica => Discussão geral sobre robótica => Tópico iniciado por: nvoltex em 22 de Outubro de 2013, 16:58
-
Ora boas,
Eu precisava de ler alguns comandos em hexadecimal introduzidos na consola do arduino.
Alguém sabe como o fazer?
EDIT: Esqueci-me de um facto importante: quero ler apenas comandos com dois caracteres, ou seja: entre 00 e FF.
-
Vê os métodos do Serial, nomeadamento o Read e Available (não me lembro se são capitalizados).
Depois podes fazer leitura de 2 caracteres seguidos, podes ter uma variável de estado que diz se estás à espera do 1º ou do 2º caracter, e aí quando tiveres lido o 2º caracter executas o comando.
-
Para enviares valores entre 0x00 e 0xFF só precisas de 1 byte e não de 2. Tem em conta que um "char" é um byte. Portanto, a diferença em termos de codigo do Arduino será em ler apenas 1 byte em vez de 2, e depois descodificar esse byte (switch case) para fazer qq coisa.
-
O problema está em que eu quero usar o valor lido em hex para definir o duty cycle de um sinal PWM. Eu já consegui arranjar uma forma de armazenar o que vem do serial monitor (usando uma combinação das funções que Njay falou). Mas tive de armazenar o valor numa string. Como posso tornar este falar num valor de input do analogWrite? Btw, pelo que parace o analogWrite lê o valor em hex, portanto isso não seria um problema.
-
Para converter podes usar a strtol (#include <stdlib.h>).