Acentuação em SMS

Olá a todos,

Sou novato por aqui e estou com uma dúvida que talvez seja trivial; Estou querendo saber se há uma maneira de colocar acentos (caracteres especiais) no envio de um SMS. No código utilizo a seguinte linha:

if (sms.SendSMS("+5561xxxxxxxx", "Ha nova(s) correspondencia(s) na sua Caixa de Correio!"))

No caso, queria que no SMS enviado, aparecesse a mensagem: Há nova(s) correspondência(s) na sua Caixa de Correio! Quando eu coloco os acentos 'á' e 'ê', só recebo o SMS com a letra H. Utilizo o Arduino UNO e o Shield IComSat v1.1. Se precisarem, posto o código completo.

Agradeço desde já a quem ajudar.

Em teoria é possivel a nao ser que o modem os recuse. Se olhares para a Extended ASCII table esses caracteres são la referidos. O que tens de fazer é partir esse texto em partes e quando queres imprimir o "á" usas o Serial.write(0x??) onde o "0x??" corresponde ao valor em hexadecimal correspondente a letra com acento. Para a letra "á" a instruçao fica Serial.write(0xA0); Para a letra "ê" a instruçao fica Serial.write(0x88); Para veres outros codigos de outros caracteres especiais consulta aqui: http://www.asciitable.com/

O problema pode ter a ver com o uso de extended ascii.

No manual que encontrei na net, não dizia nada lá, mas também não sei exactamente como é que o Arduino faz a translação do código para ascii.

Experimenta enviar esta string:

unsigned char sms[] = {'H', 160};

Isto dará para entender se o problema estará no Arduino ou no IcomSat.

http://www.asciitable.com/ http://en.wikipedia.org/wiki/Extended_ASCII

No entanto, o problema certamente que estará no IcomSat tendo em conta o ponto 1.5 deste manual:

ftp://imall.iteadstudio.com/IM120417009_IComSat/DOC_SIM900_AT%20Command%20Manual_V1.03.pdf

Se mudares o character set do módulo certamente que isso começará a funcionar. Dá uma vista de olhos aqui, sobre uma discussão sobre character sets. http://www.nowsms.com/discus/messages/1/1103.html