or arduino mega mudar para 53
const uint64_t pipe = 0xE8E8F0F0E1LL;RF24 radio(CE_PIN, CSN_PIN);
int SINAIS[15]; int x;int sinal_recebido;int vezes1,vezes2,vezes3,vezes4,vezes5,vezes6;String readString;
void setup(){ radio.begin(); radio.openReadingPipe(1,pipe); radio.startListening();; pinMode(8,OUTPUT); digitalWrite(8,0); // usado para atualizar o LED WIRELESS
pinMode(A0,INPUT); //pinMode(A1,INPUT); //pinMode(A2,INPUT); //pinMode(A3,INPUT); //pinMode(A4,INPUT); //pinMode(A5,INPUT); //
pinMode(2,OUTPUT); // pinMode(3,OUTPUT); // pinMode(4,OUTPUT); // pinMode(5,OUTPUT); // pinMode(6,OUTPUT); // pinMode(7,OUTPUT); //
// Define todas inicar em 0digitalWrite(2,0); // referente a entrada A0digitalWrite(3,0); // referente a entrada A1digitalWrite(4,0); // referente a entrada A2digitalWrite(5,0); // referente a entrada A3digitalWrite(6,0); // referente a entrada A4digitalWrite(7,0); // referente a entrada A5
x = 0; // entrada para atualizar supervisoriosinal_recebido = 0;}
void loop() {
// MAPEIA 2 **************************************************************************************************************************************************************** if(digitalRead(A0)==1&&vezes1==0) { digitalWrite(2,!digitalRead(2)); vezes1=1; } if(digitalRead(A0)==0&&vezes1==1) { digitalWrite(2,!digitalRead(2)); vezes1=0; } // MAPEIA 3 **************************************************************************************************************************************************************** if(digitalRead(A1)==1&&vezes2==0) { digitalWrite(3,!digitalRead(3)); vezes2=1; } if(digitalRead(A1)==0&&vezes2==1) { digitalWrite(3,!digitalRead(3)); vezes2=0; } // MAPEIA 4 **************************************************************************************************************************************************************** if(digitalRead(A2)==1&&vezes3==0) { digitalWrite(4,!digitalRead(4)); vezes3=1; } if(digitalRead(A2)==0&&vezes3==1) { digitalWrite(4,!digitalRead(4)); vezes3=0; } // MAPEIA 5 **************************************************************************************************************************************************************** if(digitalRead(A3)==1&&vezes4==0) { digitalWrite(5,!digitalRead(5)); vezes4=1; } if(digitalRead(A3)==0&&vezes4==1) { digitalWrite(5,!digitalRead(5)); vezes4=0; } // MAPEIA 6 **************************************************************************************************************************************************************** if(digitalRead(A4)==1&&vezes5==0) { digitalWrite(6,!digitalRead(6)); vezes5=1; } if(digitalRead(A4)==0&&vezes5==1) { digitalWrite(6,!digitalRead(6)); vezes5=0; } // MAPEIA 7 **************************************************************************************************************************************************************** if(digitalRead(A5)==1&&vezes6==0) { digitalWrite(7,!digitalRead(7)); vezes6=1; } if(digitalRead(A5)==0&&vezes6==1) { digitalWrite(7,!digitalRead(7)); vezes6=0; }
// Se o Radio estiver disponivel, ou seja, recebendo informação do transmissor imprime as informações if(radio.available()) { radio.read( SINAIS, sizeof(SINAIS) );
// USADO PARA SINCRONIZAR *************************************************************************************************************************************************************** if( SINAIS[14]==129 && sinal_recebido==0 ) { digitalWrite(2,0); digitalWrite(3,0); digitalWrite(4,0); digitalWrite(5,0); digitalWrite(6,0); digitalWrite(7,0); sinal_recebido=1; } // Parte incluida para zerar e alterar realmente o status da saida apenas 1 vezes ,eliminando o for enviado if(SINAIS[14]==10 && sinal_recebido==1 ) { sinal_recebido=0; }
// ATUALIZA A SAIDA 2 *************************************************************************************************************************************************************** if(SINAIS[13]==114 && sinal_recebido==0 ) { digitalWrite(2,!digitalRead(2)); sinal_recebido=1; } // Parte incluida para zerar e alterar realmente o status da saida apenas 1 vezes ,eliminando o for enviado if(SINAIS[13]==10 && sinal_recebido==1 ) { sinal_recebido=0; }// ATUALIZA A SAIDA 3 *************************************************************************************************************************************************************** if((SINAIS[13]==115 && sinal_recebido==0 )) { digitalWrite(3,!digitalRead(3)); sinal_recebido=1; } // Parte incluida para zerar e alterar realmente o status da saida apenas 1 vezes ,eliminando o for enviado if(SINAIS[13]==10 && sinal_recebido==1 ) { sinal_recebido=0; }// ATUALIZA A SAIDA 4 *************************************************************************************************************************************************************** if((SINAIS[13]==116 && sinal_recebido==0 )) { digitalWrite(4,!digitalRead(4)); sinal_recebido=1; } // Parte incluida para zerar e alterar realmente o status da saida apenas 1 vezes ,eliminando o for enviado if(SINAIS[13]==10 && sinal_recebido==1 ) { sinal_recebido=0; }// ATUALIZA A SAIDA 5 *************************************************************************************************************************************************************** if((SINAIS[13]==117 && sinal_recebido==0 )) { digitalWrite(5,!digitalRead(5)); sinal_recebido=1; } // Parte incluida para zerar e alterar realmente o status da saida apenas 1 vezes ,eliminando o for enviado if(SINAIS[13]==10 && sinal_recebido==1 ) { sinal_recebido=0; }// ATUALIZA A SAIDA 6 *************************************************************************************************************************************************************** if((SINAIS[13]==118 && sinal_recebido==0 )) { digitalWrite(6,!digitalRead(6)); sinal_recebido=1; } // Parte incluida para zerar e alterar realmente o status da saida apenas 1 vezes ,eliminando o for enviado if(SINAIS[13]==10 && sinal_recebido==1 ) { sinal_recebido=0; }// ATUALIZA A SAIDA 7 *************************************************************************************************************************************************************** if((SINAIS[13]==119 && sinal_recebido==0 )) { digitalWrite(7,!digitalRead(7)); sinal_recebido=1; } // Parte incluida para zerar e alterar realmente o status da saida apenas 1 vezes ,eliminando o for enviado if(SINAIS[13]==10 && sinal_recebido==1 ) { sinal_recebido=0; } }}
a ligação feita para acionamento das lampadas ficou assim
…
display deve incrementar 1, ao passar pelo segundo emissor e receptor o display deve decrementar 1.
Alguem pode me ajudar mostrando algum exemplo funcional?
Não precisa ser com os emissores e receptores, pode ser com dois botões.
Agradeço.…
Adicionado por Caio Marcon ao 22:19 em 29 agosto 2014
ro em decimal veja abaixo:
{*Função para converter inteiro em hexadecimalAutor:Almir BispoData:11/01/2014Slogan:Yehovah é o Nome do Santo*}function Intparahex(intvalor:integer;forma:string):string;var o1,o2,o3,o4:tstringlist; i,ii,iii,iiii,ord:integer; str,formato:string;beginif forma='0' then begin formato:='$';end;if forma='1' then begin formato:='0x';end;o1:=tstringlist.create;o2:=tstringlist.create;o3:=tstringlist.create;o4:=tstringlist.create;o1.Delimiter:=char(';');o2.Delimiter:=char(';');o3.Delimiter:=char(';');o4.Delimiter:=char(';');o1.DelimitedText:=('0;1;2;3;4;5;6;7;8;9;a;b;c;d;e;f');o2.DelimitedText:=('0;1;2;3;4;5;6;7;8;9;a;b;c;d;e;f');o3.DelimitedText:=('0;1;2;3;4;5;6;7;8;9;a;b;c;d;e;f');o4.DelimitedText:=('0;1;2;3;4;5;6;7;8;9;a;b;c;d;e;f');ord:=0;for i:= 0 to o1.Count-1 dobegin for ii:= 0 to o2.count-1 do begin for iii:= 0 to o3.count-1 do begin for iiii:= 0 to o4.count-1 do begin if ord =intvalor then begin str:=o1.Strings[i]+o2.strings[ii]+o3.strings[iii]+o4.strings[iiii]; Result :=formato+str; exit; end; inc(ord); end; end; end;end; o1.free; o2.free; o3.free; o4.free;end;
///fim
Uma outra forma que desenvolvi para receber um exadecimal pela porta e transformar em inteiro é:
variavel_string := inttostr(int64(chr(variant(porta.ReadData))));
Estes códigos é usando o "velho e bom pascal" e deve colocar a unidade strutils em USES.
Este código uso perfeitamente com Lazarus e componentes 5dpo para acesso a serial
gibroh_webmaster@hotmail.com
…
ncontrei não funcionaram corretamente...
E ainda não consegui entender qual é o comando que diz que é para usar no segundo CI !!!
Grato pela atenção e aguardo retorno..
Augusto
email: gutosoft@hotmail.com
…
d;
// just added my own array for the raw signalunsigned int powerOn[60] = {8450,4250,550,1700,550,550,550,550,550,550,550,1700,550,550,550,600,550,550,550,550,550,600,550,550,550,550,550,550,550,550,600,550,550,550,550,550,600,550,550,1650,600,1650,550,550,550,1700,550,550,550,550,550,600,550,1650,550,1700,550,1650,550,};unsigned int powerOff[60] = {8450,4200,550,1700,550,550,550,600,550,550,550,1700,550,550,550,550,550,600,550,1650,550,1650,600,550,550,550,550,550,600,550,550,550,550,550,600,550,550,550,550,550,600,500,550,600,550,1650,550,600,550,1650,550,600,550,550,550,550,550,1650,600,}; void setup(){ Serial.begin(9600);}
void loop() { char valorlido = Serial.read(); Serial.println(valorlido); if (valorlido == '1') irsend.sendNEC(0xE17A7887,32); if (valorlido == '2') irsend.sendNEC(0xE17A50AF,32); if (valorlido == '3') irsend.sendNEC(0x20DF40BF,32); if (valorlido == '4') irsend.sendNEC(0x20DF807F,32); if (valorlido == '5') irsend.sendNEC(0x20DF10EF,32); if (valorlido == '6') irsend.sendRaw(powerOn,60,38); if (valorlido == '7') irsend.sendRaw(powerOff,60,38);}…
Adicionado por Psuporte ao 16:00 em 24 novembro 2013