Como escrever String na porta serial do arduino ? [RESOLVIDO]

1. Como escrever String na porta serial do arduino ? [RESOLVIDO]

Rodrigo F
rodrigorfot

(usa Ubuntu)

Enviado em 01/03/2014 - 23:01h

Ola galara.
Sou novo em arduino.
Estou com essa duvida, como escrever uma string na porta serial do arduino. Tipo assim, eu queria escrever uma palavra na porta serial e se essa palavra for a que estiver definida dentro do codigo, algo seja executado. seria + ou - assim :
if (string1 == string2) {faça isso ... ...}

No caso a string1 seria a que esta sendo digitada na porta serial que sera comparada com a que ja esta definida dentro do codigo.
Alguem poderia me ajudar ?



  


2. MELHOR RESPOSTA

João Victor
vikitor566

(usa Fedora)

Enviado em 02/03/2014 - 18:47h

Evite postar muitas vezes prefira editar as postagens. E no caso o codigo poste dentro das tags [c o d e ][/c o d e](sem espaços)

O código abaixo serve de exemplo, a porta Serial do Arduino fornece os dados byte a byte então você precisa de um meio que junte os dados em uma variavel, o código abaixo usa apenas uma letra pra tomar uma ação.

Nas opções do Serial monitor defina como Nova-linha e 9600 velocidade


char letra; // Cria uma variavel que recebe apenas uma letra
void setup()
{
Serial.begin(9600); // Inicia a comunicaçao
}

void loop() {
if (Serial.available()){ // Se houve dados na Serial
letra = Serial.read(); // A variavel grava o que houver na serial
if(letra == 'c') // Se a letra gravada na variavel for igual a c
Serial.println("Programando"); // Escreva Programamando
}

}


Tente estudar um pouco de lógica de programação vai ajudar muito para entender os códigos.

3. Re: Como escrever String na porta serial do arduino ? [RESOLVIDO]

Perfil removido
removido

(usa Nenhuma)

Enviado em 01/03/2014 - 23:16h

No linux, basta escrever para os arquivos de dispositivos encontrados na pasta /dev.


4. Re: Como escrever String na porta serial do arduino ? [RESOLVIDO]

mrxrobot
mrxrobot

(usa Slackware)

Enviado em 02/03/2014 - 00:29h

Olá amigo.
Desde já parabéns pelo interesse em arduino.

O arduino possui uma estrutura bem simples similar a linguagem C.
Notei que sua dúvia é sobre enviar uma string a porta serial.
Para enviar algum dado a porta serial faça assim :

1º crie a função void setup() e a função void loop().


void setup()
{
Serial.begin(9600); // Essa parte do código ativa a porta serial :-)
}

void loop()
{
Serial.println("Ola mundo"); // Envia a string "Ola mundo" para a porta serial.
}

2º vamos ao que interessa !

Agora começa a parte interessante.
Para execucar algum bloco de código em razão de algum dado da porta serial podemos fazer da seguinte maneira:

char string; // variavel do tipo CHAR com o nome string

void setup()
{
Serial.begin(9600); // Essa parte do código ativa a porta serial :-)
}

void loop()
{
string = ("Ola mundo"); // Envia a string "Ola mundo" para a porta serial.
Serial.println(string);
if (string == "Ola mundo")
{
Serial.println(":-)"); // Envia a porta serial o conteudo entre " "
}
else
{
Serial.println(":-(");
}
}




5. Re: Como escrever String na porta serial do arduino ? [RESOLVIDO]

Rodrigo F
rodrigorfot

(usa Ubuntu)

Enviado em 02/03/2014 - 00:42h

Ola marcos.
Obrigado por esta me ajudando.
Entao, copiei o seu cod. afim de ver o efeito, porem nao compila, exibindo a seguinte msg.:
ISO C++ forbids comparison between pointer and integer.
Parece que esta dizendo: 'proibido fazer comparação entre ponteiro e inteiro.'
Nao sei se conseguir falar corretamente o que quero, mas é algo como escrever la no monitor serial uma palavra(digitando) e comparar o que foi digitado com a string pre definida dentro do codigo, em alguma variavel.


6. Re: Como escrever String na porta serial do arduino ? [RESOLVIDO]

João Victor
vikitor566

(usa Fedora)

Enviado em 02/03/2014 - 02:13h

Tente da seguinte forma


void setup() {
Serial.begin(9600);

}

void loop() {
String usuario = "Batman";
String nome = Serial.readString();
if(nome == usuario){
Serial.print("Bem vindo");
Serial.println(nome);
}

}






7. Re: Como escrever String na porta serial do arduino ? [RESOLVIDO]

mrxrobot
mrxrobot

(usa Slackware)

Enviado em 02/03/2014 - 13:19h

Acho que a respota do vikitor566 alcançou o que você deseja de forma mais simples.
Copie e cole o código no IDE do arduino e poste o que aconteceu:-)




8. Re: Como escrever String na porta serial do arduino ? [RESOLVIDO]

Rodrigo F
rodrigorfot

(usa Ubuntu)

Enviado em 02/03/2014 - 13:58h

Boa tarde pessoal.
Obrigado ai vikitor566 pela força cara.
Mas entao, seguindo o que vc me orientou o compilador me da a seguinte msg de erro: error: ‘Serial.HardwareSerial::read’ does not have class type




9. Re: Como escrever String na porta serial do arduino ? [RESOLVIDO]

Rodrigo F
rodrigorfot

(usa Ubuntu)

Enviado em 02/03/2014 - 13:59h

Mas agora acredito que ta mais facil pra mim receber ajuda de vcs, por que eu vi que vc entendeu exatamente o que estou querendo fazer, porem acredito que pelo fato de eu ser novo em programação e arduino as vezes tenho dificuldade de demonstrar o que quero.




10. Re: Como escrever String na porta serial do arduino ? [RESOLVIDO]

João Victor
vikitor566

(usa Fedora)

Enviado em 02/03/2014 - 14:51h

Apesar de ser muito simples usar o Arduino as vezes trabalhar com C é complicado o código acima faz a leitura apartir de uma função
Serial.readString  
não sei se ela está disponível em todas as versões da IDE eu uso a 1.5.5. Talvez dessa maneira funcione:


char nome[32];
void setup() {
Serial.begin(9600);

}

void loop() {
String usuario = "Batman";
if(Serial.available() > 0){
int index = 0;
int numChar = Serial.available();
while(numChar--){
nome[index++] = Serial.read();
delay(100);
}
if(String(nome) == usuario){
Serial.print("Bem vindo");
Serial.println(nome);
}

}
}



11. Re: Como escrever String na porta serial do arduino ? [RESOLVIDO]

Rodrigo F
rodrigorfot

(usa Ubuntu)

Enviado em 02/03/2014 - 16:16h

Pois é vikitor, eu uso aqui uma v 1.0
o codigo que me passou foi compilado, porém digitando a palavra na serial nada é impresso. Estou a 3 dias quebrando a cabeça pra tentar conseguir isso, mas ate agora sem sucesso! Mas de qlq forma oq me alegra é esta tendo essa atençao e ajuda que vc e outros vem me dando.


12. Re: Como escrever String na porta serial do arduino ? [RESOLVIDO]

Rodrigo F
rodrigorfot

(usa Ubuntu)

Enviado em 02/03/2014 - 16:41h

Esse é o cod. que vinha tentando trabalhar:

char c;
void setup()
{ Serial.begin(9600);}
void loop() {

String usr = "chave";
if (Serial.available()){
c = Serial.read();
if(String(usr) == c)
Serial.println("Programando");

delay(500);
}}



01 02



Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts