Show Posts
Pages: 1 2 [3] 4 5 ... 208
31  International / Portugues / Re: Problema ao Enviar e Receber IR no mesmo Arduino on: April 12, 2014, 12:04:16 am
Não deve ser nada disto... mas consegues evitar que o arduino que recebe os sinais apenas receba o sinal do arduino e não do comando?
32  International / Portugues / Re: Problema ao Enviar e Receber IR no mesmo Arduino on: April 11, 2014, 03:22:55 pm
Então... mas no primeiro código que te passei o Arduino recebeu alguma coisa... ou estou enganado?

33  International / Portugues / Re: Controle Remoto Ar Condicionado on: April 11, 2014, 09:49:11 am
Pesquisa aqui no fórum que existe uma thread acerca disso. Lembro-me que era um Ar condicionado Daikin e era preciso uma pequena alteração.
34  International / Portugues / Re: Sensor PT1000 e Sensor NTC10 on: April 10, 2014, 04:42:37 pm
Sim.
35  International / Portugues / Re: Programação (não conta os dias ) on: April 10, 2014, 10:25:02 am
Engraçado... o teu programa nunca reinicia os minutos e dias e horas do zero... Não achas isso estranho?

O que se passa quando a variável min passa para 60? E para 61... e quando a variável hora passar para 25? Que acontece??

E o que acontece quando a variável dia passar para 32?
36  International / Portugues / Re: Problema ao Enviar e Receber IR no mesmo Arduino on: April 10, 2014, 07:19:20 am
Então sem saber exactamente o que testaste...

Um arduino com o receptor tem o exemplo do IR Receive, correcto? Este será sempre usado em todos os testes.
Antes de fazeres qualquer teste, prova que o hardware está a funcionar.
Para isso faz load do exemplo IR Receive no arduino que recebe e transmite e vê se ele recebe do teu comando.

Se ele receber, faz load do programa para envio e envia para o outro arduino que vai receber. Se tudo isto funcionar, sabes que o teu hardware está bom.

Depois colocas este código no Arduino que recebe e envia:

Code:
#include <IRremote.h>
int RECV_PIN = 12;
IRrecv irrecv(RECV_PIN);
decode_results results;
IRsend irsend;
void setup()
{
  irrecv.enableIRIn();
  Serial.begin(9600);
}

long int decCode = 0;

void loop() {

  if(irrecv.decode(&results)) {
    decCode = results.value;
    Serial.println(decCode, HEX);
    irrecv.resume();
  }

  if (decCode == 0xFF629D) {

    Serial.println("Codigo Recebido");
    Serial.println("Modo de Transmissao");

    for (int i = 0; i < 4; i++) {
      irsend.sendNEC(0xAF518E7, 32);
      Serial.print("Enviado: ");
      Serial.println(i+1);
      delay(50);
    }

    Serial.println("Receptor ativado");
    irrecv.enableIRIn();
    decCode = 0;
  }

}

Vê o que recebes no outro Arduino. Se não funcionar... Tenta isto:


Code:
#include <IRremote.h>
int RECV_PIN = 12;
IRrecv irrecv(RECV_PIN);
decode_results results;
IRsend irsend;
void setup()
{
  irrecv.enableIRIn();
  Serial.begin(9600);

//isto diz como está a configuração antes...
Serial.println("Setup");
Serial.print ("TCCR0A ");
Serial.println(TCCR0A, HEX);
Serial.print ("TCCR0B ");
Serial.println(TCCR0B, HEX);
Serial.print ("TIMSK0 ");
Serial.println(TIMSK0, HEX);

Serial.print ("TCCR2A ");
Serial.println(TCCR2A, HEX);
Serial.print ("TCCR2B ");
Serial.println(TCCR2B, HEX);
Serial.print ("TIMSK2 ");
Serial.println(TIMSK2, HEX);


}

long int decCode = 0;

void loop() {

  if(irrecv.decode(&results)) {
    decCode = results.value;
    Serial.println(decCode, HEX);
Serial.println("Decoded");
Serial.print ("TCCR0A ");
Serial.println(TCCR0A, HEX);
Serial.print ("TCCR0B ");
Serial.println(TCCR0B, HEX);
Serial.print ("TIMSK0 ");
Serial.println(TIMSK0, HEX);

Serial.print ("TCCR2A ");
Serial.println(TCCR2A, HEX);
Serial.print ("TCCR2B ");
Serial.println(TCCR2B, HEX);
Serial.print ("TIMSK2 ");
Serial.println(TIMSK2, HEX);

    irrecv.resume();
Serial.println("Resume");
Serial.print ("TCCR0A ");
Serial.println(TCCR0A, HEX);
Serial.print ("TCCR0B ");
Serial.println(TCCR0B, HEX);
Serial.print ("TIMSK0 ");
Serial.println(TIMSK0, HEX);

Serial.print ("TCCR2A ");
Serial.println(TCCR2A, HEX);
Serial.print ("TCCR2B ");
Serial.println(TCCR2B, HEX);
Serial.print ("TIMSK2 ");
Serial.println(TIMSK2, HEX);

  }

  if (decCode == 0xFF629D) {

    Serial.println("Codigo Recebido");
    Serial.println("Modo de Transmissao");

//    for (int i = 0; i < 4; i++) {
Serial.println("beofre send");
Serial.print ("TCCR0A ");
Serial.println(TCCR0A, HEX);
Serial.print ("TCCR0B ");
Serial.println(TCCR0B, HEX);
Serial.print ("TIMSK0 ");
Serial.println(TIMSK0, HEX);

Serial.print ("TCCR2A ");
Serial.println(TCCR2A, HEX);
Serial.print ("TCCR2B ");
Serial.println(TCCR2B, HEX);
Serial.print ("TIMSK2 ");
Serial.println(TIMSK2, HEX);

      irsend.sendNEC(0xAF518E7, 32);

Serial.println("After send");
Serial.print ("TCCR0A ");
Serial.println(TCCR0A, HEX);
Serial.print ("TCCR0B ");
Serial.println(TCCR0B, HEX);
Serial.print ("TIMSK0 ");
Serial.println(TIMSK0, HEX);

Serial.print ("TCCR2A ");
Serial.println(TCCR2A, HEX);
Serial.print ("TCCR2B ");
Serial.println(TCCR2B, HEX);
Serial.print ("TIMSK2 ");
Serial.println(TIMSK2, HEX);

      Serial.print("Enviado: ");
      Serial.println(i+1);
      delay(50);
//    }

    Serial.println("Receptor ativado");
    irrecv.enableIRIn();
Serial.println("AfterEnable");
Serial.print ("TCCR0A ");
Serial.println(TCCR0A, HEX);
Serial.print ("TCCR0B ");
Serial.println(TCCR0B, HEX);
Serial.print ("TIMSK0 ");
Serial.println(TIMSK0, HEX);

Serial.print ("TCCR2A ");
Serial.println(TCCR2A, HEX);
Serial.print ("TCCR2B ");
Serial.println(TCCR2B, HEX);
Serial.print ("TIMSK2 ");
Serial.println(TIMSK2, HEX);

    decCode = 0;
  }

}
Isto poderá dar alguma pista.... ou pelo menos garantir que não tem nada a ver com a função de enable, etc...
37  International / Portugues / Re: Projeto: Alimentador para Animais de Estimação on: April 10, 2014, 07:11:58 am
Antes de fazerem isto... lembrem-se que os animais são seres vivos. É tudo muito bem ter isto para automatizar uma acção, mas nunca se fiem numa máquina para alimentar animais. No final são eles que sofrem e os responsáveis são vocês!!!
38  International / Portugues / Re: Memória do Mega cheia on: April 10, 2014, 07:03:53 am
De momento não tenho tempo para estar a fazer isso, mas fica uma descrição do que uma função é...

Code:
void func_envia_comando(unsigned int comando) {
     unsigned int comandos[4];
    //faz algo aqui...
    envia_comando(comandos[comando]);
}

dentro do loop...

botao = leBotao(); //isto retorna um valor de o a 3...

func_envia_comando(botao);

Isto é o que o teu programa não está a fazer...

Nota que tu podes ter matrizes... ou seja:
Code:
unsigned int comandos[23][20];//23 variáveis de 20 posições...

Depois apenas tens de ligar o valor que te é enviado pelo OSC com o indice da matriz que criei agora.
No entanto, isto não vai reduzir o tamanho da RAM... que neste caso é, só nos comandos, cerca de 1kb.

Também reparo ali numas variáveis e código para controlo de triac... julgava que isso era apenas para controlo de IR...

Quanto ao uso do progmem...

Tens aqui descrito de forma bastante clara:

http://arduino.cc/en/Reference/PROGMEM
39  International / Portugues / Re: Problema ao Enviar e Receber IR no mesmo Arduino on: April 10, 2014, 06:47:13 am
Ainda não estou bem a perceber.

Aquele código que meti e que tu disseste que estava na mesma... como testaste?
40  International / Portugues / Re: Problema ao Enviar e Receber IR no mesmo Arduino on: April 10, 2014, 06:39:57 am
O enableIROut, muito provavelmente nem compila já que é uma função privada.

Na verdade eu não tenho testado!

Importas-te de explicar melhor isto do não tens testado???

O código que mostraste agora parece correcto. Se não tens testado, nem sabes como testar, andas aqui a gozar com a gente? Explica-te melhor para ver se nos entendemos.
41  International / Portugues / Re: Problema ao Enviar e Receber IR no mesmo Arduino on: April 10, 2014, 02:34:36 am
A função send faz isso através da chamada IROut dentro desse método.
Ao fazeres enableIRIn, tudo volta ao início.

Como tens testado isto?

42  International / Portugues / Re: Sensor PT1000 e Sensor NTC10 on: April 10, 2014, 02:13:17 am
Sim, não precisas do CD4052 já que só tens um sensor.

43  International / Portugues / Re: Memória do Mega cheia on: April 09, 2014, 11:30:21 am
Quer erro é que o progmem te dá? Estás a usá-lo correctamente??
44  International / Portugues / Re: Datasheets dos Shields on: April 09, 2014, 11:24:35 am
No site de quem os vendeu será um bom sítio, não achas?
45  International / Portugues / Re: Problema ao Enviar e Receber IR no mesmo Arduino on: April 09, 2014, 10:22:06 am
budulindo, não entendi, o código é o mesmo do anterior que vc me passou!!
Experimentaste???

ANTES:

Code:
void loop() {

if (irrecv.decode(&results)) { //se existe algo descodificado...
    long int decCode = results.value;
    Serial.println(results.value); // REPARA NESTA LINHA!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    if (results.value == 16736925) {  // se o que foi descodificado, é o que queremos receber...
        for (int i = 0; i < 4; i++) {  //não percebo este for... mas o artista aqui és tu...
            irsend.sendNEC(0xAF518E7, 32);
            delay(400);
        }
    }
    irrecv.enableIRIn();
    irrecv.resume(); //esta instrução pode até ser desnecessária...
    }
}

DEPOIS:
Code:
void loop() {

if (irrecv.decode(&results)) { //se existe algo descodificado...
    long int decCode = results.value;
//NÃO ESTÁ AQUI SERIAL.PRINT NENHUM....
    if (results.value == 16736925) {  // se o que foi descodificado, é o que queremos receber...
        for (int i = 0; i < 4; i++) {  //não percebo este for... mas o artista aqui és tu...
            irsend.sendNEC(0xAF518E7, 32);
            delay(400);
        }
    }
    Serial.println(results.value);//EM VEZ DISSO ESTÁ AQUI!!!!!!!!!!!!!!!!!!!
    irrecv.enableIRIn();
    //irrecv.resume(); //esta instrução pode até ser desnecessária...
    }
}

O código não é igual. É uma diferença minúscula, é certo, mas não é igual.
Como a porta série é bufferizada, se fizeres um print antes de usares algo com temporizações muito apertadas, pode acontecer que a transmissão de dados estrague as temporizações.

A biblioteca não desliga a porta série para enviar e receber... logo é uma possibilidade. Pelo que li, se enviares algo desactivas o receptor e vice-versa, pelo que a única coisa mais óbvia que me salta à vista é isto da porta série.

E no exemplo que experimentaste?? Estava lá um for para repetir o comando 4 vezes?
Pages: 1 2 [3] 4 5 ... 208