ligaled 13; (arduino não devolve nada, só vai ligar o led na porta 13)
Muitos colegas aparecem com esta duvida.A minha resposta é para quê lhe mandar ligaled se o poderias fazer enviando para o arduino apenas 3 bytes : 0x0D 0X6F 0x3B por exemplo.Como o Bubilindo te disse o microcontrolador nao fala como nós.
Se olhares para a ascii table (ja que pelo que dizes queres basear o teu protocolo em códigos ASCII) 0x0d representa 13 em decimal, 0x6F representa o carácter 'o' de on e para carácter terminador o 0x3B que equivale a ';'
Assim passando esses 3 bytes apenas consegues ligar e desligar o led 13, ou outros pinos, manipulando os byte.(para desligar podias usar o carácter que representa um ´f´
Repara que isto e muito mais fácil de lidar e é mais eficiente do que mandares ligaled13;
Do lado do c++ envias os comandos hex e do lado do arduino reconstroes a instruçao.Do lado do arduino a coisa é fácil de se fazer com uns cast ...
Idealmente devias ter um carácter também para marcar o inicio do comando ...