Ir ao conteúdo
  • Cadastre-se

Rodrigo Nogy

Membro Júnior
  • Posts

    9
  • Cadastrado em

  • Última visita

  1. Obrigado pela atenção, pessoal. Consegui resolver o problema. Era no firmware. A String e o caractere , necessitavam de serem chamadas por funções criadas em blocos a parte, caso contrário, ocorre o "delay" nos acionamentos. O acionamento do led, diretamente no looping principal, por comparação de caracteres junto a chamada das funções de leitura serial para habilitar o controle dos canais PWM, utilizando: Serial.read(); Os três canais pwm, funcionando normais sendo chamados por funções criadas com base as funções seriais: while (Serial.available()), e comparadas por: if(readString.length()>0), nos demais blocos fora do "void loop".
  2. Interessante Alexandre. Irei ver este exemplo. Obrigado. Te falo o que consegui. Sigo geralmente esta lógica do "Switch Case". Mas como te disse, se eu utilizar a leitura do caractere "Serial.read ();" dentro do loop, não funcionará.
  3. Duemilanove, informei errado. Perdão. Quis dizer, que se colocar este pino como saída, ele não entra em estado alto ao enviar o caractere. Estou pesquisando como devo aplicar melhor estes dados.
  4. Testei os comandos de outro app, enviando caractere. Mas não achei nenhum que faça o aplicação que estou necessitando. Como disse, o comando para o pwm e o de acionamento digital, funcionam sem problemas "separados"
  5. Estou enviando via bluetooth com o apk que criei. Como citei, enviando caracteres comuns, os botões acionam e suas respectivas saídas digitais. A parte da String android que ativa o pwm deste canal. Também, funciona normal, se não associar com o outro comando serial. if (Serial.available()>0) { android = Serial.readString(); if(android.startsWith("pwm1")) { android.replace("pwm1",""); analogWrite(pwm1,android.toInt()); delay(20); Serial.println(android); } } O esquema de ligação de hardware, estou somente usando o módulo HC-05.
  6. String android; int pwm1=9; int led13=13; void setup() { Serial.begin(9600); pinMode(pwm1,OUTPUT); //pinMode(led13,OUTPUT);//Se eu declara-lo, não ativará a decisão void loop() { //Serial.print(":"); //delay(500); if (Serial.available()>0){ android = Serial.readString(); if(android.startsWith("pwm1")){ android.replace("pwm1",""); analogWrite(pwm1,android.toInt()); delay(20); Serial.println(android); } }//fim loop void serialEvent() { while (Serial.available()) { char CharSerialRX = (char)Serial.read(); delay(10); if (CharSerialRX =='A'){ digitalWrite(led13,HIGH); } if (CharSerialRX =='D'){ digitalWrite(led13,LOW); } Serial.print("Recebido: "); Serial.print(CharSerialRX); } } Testando noto: que os dados não se alinham, acontecendo alguns erros de caracteres no envio. adicionado 5 minutos depois É a primeira vez que faço troca de dados deste formato. Pelo visto terei "organizar o buffer".
  7. Mudei a função que estava utilizando, agora estou usando: void serialEvent(). o curiosos que se eu declarar o pino 13 como OUTPUT, não aciona. Novo_Teste.txt
  8. Então, Alexandre. Primeiramente, obrigado pela atenção. Estou usando o Arduino Due com o microcontrolador Atmega328P. Comecei a testar aqui, consegui fazer funcionar, porém, está lento.
  9. int pwm1 = 9; int led13 = 13; String android; char x; void setup(){ Serial.begin(9600); pinMode(pwm1,OUTPUT); pinMode(led13,OUTPUT); } void loop{ if(Serial.available()>0){ android = Serial.readString(); x = Serial.read(); if (x=='A'){ digitalWrite(led13, HIGH); // Não aciona quando envio o caractere 'A' } if(android.startsWith("pwm1")){ android.replace("pwm1",""); analogWrite(pwm1,android.toInt()); Serial.println(android); delay(100); }//if android }//fim serial Serial.available }//fim loop Olá pessoal. Estou com dificuldades para entender e executar um comando digital utilizando um caractere. Vou postar apenas uma parte na qual percebo o erro: o programa envia um string para a porta pwm. O controle pwm está funcionando, mas quando adiciono a função Serial.read(), o programa para de responder até o pwm. Testei o programa a parte enviando dois caracteres um para ligar e deligar o led 13, e está funcionando. O problema é quando envio aplico junto ao controle do pwm via serial. Agradeço desde já quem puder me ajudar.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!