Pessoal estou me batendo para uma coisa que deve ser simples. Estou precisando que o arduino sempre leia a ultima linha do monitor serial basicamente serão números parecido com este "27324".

com isso ele faz a comparacao se o número for = 22222 a porta 10 fica HIGH. O que preciso é saber como faço para ele sempre ler a ultima linha do monitor.

Exibições: 82

Responder esta

Respostas a este tópico

Bom dia, 

Não entendi - " ler a ultima linha do monitor"

O que esta conectado na serial do Arduino? Os dados vem de outro dispositivo para o Arduino ?

Qual a sequencia de envio desses dados ? 

De onde vem essas informações? É do próprio Arduíno ou de outro controlador através de Software Serial?

Em que momento essa informação finaliza, para então ser identificada como última linha?

Com todo respeito, está bem ruim sua explicação.

Eu tenho esse Sketch que peguei de uma biblioteca do arduino. Ele capta o nr do do controle retomo de RF e aparece no monitor serial em numero decimal. Então toda vez que eu aperto um botão ele capta o código. Como podem ver não tem nada no void loop, tudo e feito por funções e bibliotecas. Eu tenho uma programação na minha casa com 2 arduinos mega praticamente com todas as portas ocupadas, são 70 reles, dentre outros periféricos, a programação é feita por matriz. Eu quero usar esses códigos para ter a opção no void loop de executar as funções por RF. Exmeplo se eu apertar tal botao RF ele deixa alta tal porta. eu preciso pegar no void loop esse codigo

#include <RemoteReceiver.h>
#include <NewRemoteReceiver.h>
#include <SensorReceiver.h>
#include <InterruptChain.h>




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

// Interrupt -1 to indicate you will call the interrupt handler with InterruptChain
RemoteReceiver::init(-1, 2, showOldCode);

// Again, interrupt -1 to indicate you will call the interrupt handler with InterruptChain
NewRemoteReceiver::init(-1, 2, showNewCode);

// And once more, interrupt -1 to indicate you will call the interrupt handler with InterruptChain
SensorReceiver::init(-1, showTempHumi);

// Set interrupt mode CHANGE, instead of the default LOW.
InterruptChain::setMode(0, CHANGE);

// On interrupt, call the interrupt handlers of remote and sensor receivers
InterruptChain::addInterruptCallback(0, RemoteReceiver::interruptHandler);
InterruptChain::addInterruptCallback(0, NewRemoteReceiver::interruptHandler);
InterruptChain::addInterruptCallback(0, SensorReceiver::interruptHandler);



}

void loop() {

//Serial.println( control);
// You can do other stuff here!
}

// shows the received code sent from an old-style remote switch
void showOldCode(unsigned long receivedCode, unsigned int period) {
// Print the received code.
Serial.println(receivedCode);
control = receivedCode + 1;
}

// Shows the received code sent from an new-style remote switch
void showNewCode(NewRemoteCode receivedCode) {
// Print the received code.
Serial.print("Addr ");
Serial.print(receivedCode.address);

if (receivedCode.groupBit) {
Serial.print(" group");
}
else {
Serial.print(" unit ");
Serial.print(receivedCode.unit);
}

switch (receivedCode.switchType) {
case NewRemoteCode::off:
Serial.print(" off");
break;
case NewRemoteCode::on:
Serial.print(" on");
break;
case NewRemoteCode::dim:
Serial.print(" dim");
Serial.print(receivedCode.dimLevel);
break;
}

if (receivedCode.dimLevelPresent) {
Serial.print(", dim level ");
Serial.print(receivedCode.dimLevel);
}

Serial.print(", period: ");
Serial.print(receivedCode.period);
Serial.println("us.");
}

// Shows the received sensor data
void showTempHumi(byte *data) {
// is data a ThermoHygro-device?
if ((data[3] & 0x1f) == 0x1e) {
// Yes!
byte channel, randomId;
int temp;
byte humidity;

// Decode the data
SensorReceiver::decodeThermoHygro(data, channel, randomId, temp, humidity);

// Print temperature. Note: temp is 10x the actual temperature!
Serial.print("Temperature: ");
Serial.print(temp / 10); // units
Serial.print('.');
Serial.println(temp % 10); // decimal
}
}

Por acaso o número que você quer guardar não é o próprio “receivedCode”?

Sim exatamente, isso eu consegui resolver, ja deu certo, agradeco a todos pela ajuda

Boa tarde AMK,

O nosso amigo José Gustavo Abreu Murta recomendou que você lê-se o link:

http://labdegaragem.com/forum/topics/sugest-o-de-como-postar

mas acredito que você não o leu.

Se tivesse lido teria visto a recomendação de não postar sketch na área de texto do

tópico.

RV

obrigado, realmente nao li, mas obrigado por avisar

RSS

Destaques

Registre-se no
Lab de Garagem
Clicando aqui

Convide um
amigo para fazer
parte

curso gratis de arduino

© 2018   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço