Voo Virtual
Olá, seja bem-vindo(a) ao Voo Virtual. Caso ainda não seja membro da nossa comunidade, registre-se, para que possa participar ativamente e ter acesso a todos os conteúdos do site.
Por favor leia as regras do fórum aqui antes de postar, para evitar advertências e suspensão.


Conexão dos avionicos (radios, controles e comandos) com Arduino - Página 2 Gse_multipart13851

Conexão dos avionicos (radios, controles e comandos) com Arduino

+5
Vitor Castro
Manoel Carvalho
Edenio Rodrigues
Joz
Alerial
9 participantes

Página 1 de 2 1, 2  Seguinte

Ir para baixo

Conexão dos avionicos (radios, controles e comandos) com Arduino - Página 2 Empty Re: Conexão dos avionicos (radios, controles e comandos) com Arduino

Mensagem por Alerial Sáb 15 Nov 2014, 21:16

Grande Joz!!
Grato pela ajuda e orientações.
Eu encontrei uma apostila de arduino para iniciantes, que alem de passar um geral da placa, da tambem uma serie de exercicios praticos que clareia bem a parte logica e parte fisica, não sei se pode ser postado aqui, mas talvez possa colocar o site para quem for cru como eu, ter uma boa noção alem dos tutoriais.
Forte abraço

Alerial
Capitão
Capitão

Masculino
Inscrito em : 11/11/2014
Mensagens : 138
Reputação : 1
Idade : 51
Simulador preferido : FSX, X-Plane
Emprego/lazer : Hidroponia, Aquaponia, pecuaria
Nacionalidade : Brasil

Ir para o topo Ir para baixo

Conexão dos avionicos (radios, controles e comandos) com Arduino - Página 2 Empty Re: Conexão dos avionicos (radios, controles e comandos) com Arduino

Mensagem por Joz Sáb 15 Nov 2014, 21:20

Valeu Alerial. Pode compartilhar o link do site (desde que não seja site pirate )
Uma dica, depois de garimpar bastante sobre arquino, na minha opinião, o melhor lugar pra aprender é no youtube thumbsup

_________________
Josenildo
Especialista em Navegação Aérea
http://www.hangarxplane.com.br/
Joz
Joz
Coronel
Coronel

Masculino
Inscrito em : 23/10/2011
Mensagens : 1441
Reputação : 194
Idade : 44
Simulador preferido : X-Plane
Emprego/lazer : Especialista em Navegação Aérea
Nacionalidade : Brasil

Ir para o topo Ir para baixo

Conexão dos avionicos (radios, controles e comandos) com Arduino - Página 2 Empty Re: Conexão dos avionicos (radios, controles e comandos) com Arduino

Mensagem por Alerial Dom 16 Nov 2014, 15:51

Não é pirata não rsrsrsrs.
O guia está disponivel em www.multilogica-shop.com

Alerial
Capitão
Capitão

Masculino
Inscrito em : 11/11/2014
Mensagens : 138
Reputação : 1
Idade : 51
Simulador preferido : FSX, X-Plane
Emprego/lazer : Hidroponia, Aquaponia, pecuaria
Nacionalidade : Brasil

Ir para o topo Ir para baixo

Conexão dos avionicos (radios, controles e comandos) com Arduino - Página 2 Empty Re: Conexão dos avionicos (radios, controles e comandos) com Arduino

Mensagem por Joz Dom 16 Nov 2014, 17:31

Muito bom!

_________________
Josenildo
Especialista em Navegação Aérea
http://www.hangarxplane.com.br/
Joz
Joz
Coronel
Coronel

Masculino
Inscrito em : 23/10/2011
Mensagens : 1441
Reputação : 194
Idade : 44
Simulador preferido : X-Plane
Emprego/lazer : Especialista em Navegação Aérea
Nacionalidade : Brasil

Ir para o topo Ir para baixo

Conexão dos avionicos (radios, controles e comandos) com Arduino - Página 2 Empty Re: Conexão dos avionicos (radios, controles e comandos) com Arduino

Mensagem por Alerial Sáb 22 Nov 2014, 13:38

Senhores, estou sem continuar o papo aqui, mas por estar empenhado em conhecer mais da arduino e o que posso fazer com ela.
Estou começando a instalar nos paineis, conforme for evoluindo vou mantendo informado.
abraços

Alerial
Capitão
Capitão

Masculino
Inscrito em : 11/11/2014
Mensagens : 138
Reputação : 1
Idade : 51
Simulador preferido : FSX, X-Plane
Emprego/lazer : Hidroponia, Aquaponia, pecuaria
Nacionalidade : Brasil

Ir para o topo Ir para baixo

Conexão dos avionicos (radios, controles e comandos) com Arduino - Página 2 Empty Re: Conexão dos avionicos (radios, controles e comandos) com Arduino

Mensagem por Joz Dom 23 Nov 2014, 06:34

Alerial, sucesso nos projetos!
Ficamos na expectativa dos resultados. thumbsup

Abraços

_________________
Josenildo
Especialista em Navegação Aérea
http://www.hangarxplane.com.br/
Joz
Joz
Coronel
Coronel

Masculino
Inscrito em : 23/10/2011
Mensagens : 1441
Reputação : 194
Idade : 44
Simulador preferido : X-Plane
Emprego/lazer : Especialista em Navegação Aérea
Nacionalidade : Brasil

Ir para o topo Ir para baixo

Conexão dos avionicos (radios, controles e comandos) com Arduino - Página 2 Empty Re: Conexão dos avionicos (radios, controles e comandos) com Arduino

Mensagem por Alerial Seg 01 Dez 2014, 17:07

Só para atualizar.
O progresso está indo bem, agora estou quebrando a cabeça para saber como fazer o FS enxergar o programado no arduino!
Abraços

Alerial
Capitão
Capitão

Masculino
Inscrito em : 11/11/2014
Mensagens : 138
Reputação : 1
Idade : 51
Simulador preferido : FSX, X-Plane
Emprego/lazer : Hidroponia, Aquaponia, pecuaria
Nacionalidade : Brasil

Ir para o topo Ir para baixo

Conexão dos avionicos (radios, controles e comandos) com Arduino - Página 2 Empty X-plane Arduino

Mensagem por Alerial Qui 11 Dez 2014, 11:05

Existe a possibilidade de se conectar um arduino no x-plane sem ser via udp, como por exemplo, usb?

Alerial
Capitão
Capitão

Masculino
Inscrito em : 11/11/2014
Mensagens : 138
Reputação : 1
Idade : 51
Simulador preferido : FSX, X-Plane
Emprego/lazer : Hidroponia, Aquaponia, pecuaria
Nacionalidade : Brasil

Ir para o topo Ir para baixo

Conexão dos avionicos (radios, controles e comandos) com Arduino - Página 2 Empty Re: Conexão dos avionicos (radios, controles e comandos) com Arduino

Mensagem por Joz Qui 11 Dez 2014, 18:59

Sim, desde que seja no x-plane 10 a partir da versão 10.3
Para outras versões e X-Plane 9, pode utilizar a Python Interface junto com o py2serial.
Para esta opção, segue um exemplo: http://www.hangarxplane.com.br/projeto-x-plane-arduino/

_________________
Josenildo
Especialista em Navegação Aérea
http://www.hangarxplane.com.br/
Joz
Joz
Coronel
Coronel

Masculino
Inscrito em : 23/10/2011
Mensagens : 1441
Reputação : 194
Idade : 44
Simulador preferido : X-Plane
Emprego/lazer : Especialista em Navegação Aérea
Nacionalidade : Brasil

Ir para o topo Ir para baixo

Conexão dos avionicos (radios, controles e comandos) com Arduino - Página 2 Empty Re: Conexão dos avionicos (radios, controles e comandos) com Arduino

Mensagem por Alerial Sex 12 Dez 2014, 04:23

Legal Joz, muito bom esse recurso, eu tentei testar uma chave liga desliga, e claro que não funcionou, pois mesmo fazendo o codigo ino, falta o python, esse eu crio ou compilo onde???????????? Abraços
Este final de semana eu posto as fotos do C172, que esta sendo meu laboratório, no FSX e FS9, a parte de chaves e botões estão indo bem, mas andei brincando no XP com um Joystick e vi que é o que mais se aproxima da realidade em termos de voo, e o resto é por cenários que, por sinal existem uns que são maravilhosos.
E meu foco é evoluir passo a passo nos tres simuladores, e após as botoeiras, serão os rádios e depois os instrumentos.
FOrte abraço e ótimo final de semana.

Alerial
Capitão
Capitão

Masculino
Inscrito em : 11/11/2014
Mensagens : 138
Reputação : 1
Idade : 51
Simulador preferido : FSX, X-Plane
Emprego/lazer : Hidroponia, Aquaponia, pecuaria
Nacionalidade : Brasil

Ir para o topo Ir para baixo

Conexão dos avionicos (radios, controles e comandos) com Arduino - Página 2 Empty Re: Conexão dos avionicos (radios, controles e comandos) com Arduino

Mensagem por Joz Sex 12 Dez 2014, 06:00

Alerial escreveu:Legal Joz, muito bom esse recurso, eu tentei testar uma chave liga desliga, e claro que não funcionou, pois mesmo fazendo o codigo ino, falta o python, esse eu crio ou compilo onde???????????? Abraços
O passo a passo e os links para download estão no site:
http://www.hangarxplane.com.br/projeto-x-plane-arduino/

O exemplo é apenas de "saída de dados". Para utilizar uma chave como entrada de dados, é necessário modificar o código do arduino e também do script Python. Pessoalmente, eu prefiro utilizar o arduino apenas para saída de dados. No meu projeto, para entrada de dados, utilizo:
01 Stargate 8
01 Stargate 12
01 Mjoy16
Mesmo desenvolvendo boa parte do painel com o arduino, concluí que essas placas teriam um ótimo custo/benefício no projeto.

Em qualquer loja xingling, você compra um joystick genérico de playstation por +/- 10 reais. Basta descascar e você terá 16 botões e 4 eixos para ligar chaves. Ou seja, é mais barato até mesmo que uma das chaves que você conecta na placa. Utilizar o Arduino para enviar um simples pressionar de teclas, é matar formiga com um tiro de canhão.
Então não se deve ligar chaves no arduino? Longe disso, se você desenvolver um FMC todo no arduino e no final envia apenas os parâmetros do voo, será uma ótima forma de aproveitar uma grande quantidade de botões sem consumir banda de comunicação com o simulador.

Mesmo assim, para fins didáticos, você quer ligar uma chave para comunica com o simulador, vamos lá:
Código:

// Define o pino 2 para conectarmos a chave:
int chave = 2;

// Inicializa o arduino:
void setup() {
  // Define a comunicacao serial com 9600 bits por segundo:
  Serial.begin(9600);
  // Atribui o pino 2 como entrada de dados digital:
  pinMode(chave, INPUT);
}

// O programa:
void loop() {
  // Le a informacao da chave:
  int posicaoChave = digitalRead(chave);
  // Envia a leitura via serial:
  Serial.println(posicaoChave );
  // espera de 1ms entre as leituras para dar estabilidade
  delay(1);        
}

Conexão dos avionicos (radios, controles e comandos) com Arduino - Página 2 Button

Esse programa lê a posição da chave e envia a cada 1 milisegundo, "0" se a chave estiver na posição desligada ou "1" se estiver ligada.
Do outro lado, deve ter alguém escutando a porta da comunicação serial.
Se escutar "0" deve desligar alguma função. Se escutar "1" deve ligar alguma coisa.

Se estiver utilizando o X-Plane 10.3, isso já é 98% do programa pronto. Bastando apenas configurar no simulador o que esse comando vai fazer.
Caso esteja utilizando o PythonInterface, isso fica entre 50%.

Espero ter esclarecido alguns pontos, e informe que versão do X-Plane está utilizando.

Abraços

_________________
Josenildo
Especialista em Navegação Aérea
http://www.hangarxplane.com.br/
Joz
Joz
Coronel
Coronel

Masculino
Inscrito em : 23/10/2011
Mensagens : 1441
Reputação : 194
Idade : 44
Simulador preferido : X-Plane
Emprego/lazer : Especialista em Navegação Aérea
Nacionalidade : Brasil

Ir para o topo Ir para baixo

Conexão dos avionicos (radios, controles e comandos) com Arduino - Página 2 Empty Re: Conexão dos avionicos (radios, controles e comandos) com Arduino

Mensagem por Alerial Sex 12 Dez 2014, 06:13

Grande Joz, já deu uma luz enorme no fim do tunel. Eu estou usando o XP 9.70, porque consegui emprestado, mas como há essa grande facilidade no X10, não vai ter jeito, vou ter que comprá-lo, pois assim não vou perder tempo me matando com o XP9, sendo que o XP10 já vai facilitar muito. Valeu mais uma vez.
Grato

Alerial
Capitão
Capitão

Masculino
Inscrito em : 11/11/2014
Mensagens : 138
Reputação : 1
Idade : 51
Simulador preferido : FSX, X-Plane
Emprego/lazer : Hidroponia, Aquaponia, pecuaria
Nacionalidade : Brasil

Ir para o topo Ir para baixo

Conexão dos avionicos (radios, controles e comandos) com Arduino - Página 2 Empty Re: Conexão dos avionicos (radios, controles e comandos) com Arduino

Mensagem por Joz Sex 12 Dez 2014, 06:45

Não precisa correr pra comprar. Baixa o demo e atualiza.
Funciona tudo, com exceção de joysticks, que devido a limitação do demo, funciona apenas 20 minutos.

_________________
Josenildo
Especialista em Navegação Aérea
http://www.hangarxplane.com.br/
Joz
Joz
Coronel
Coronel

Masculino
Inscrito em : 23/10/2011
Mensagens : 1441
Reputação : 194
Idade : 44
Simulador preferido : X-Plane
Emprego/lazer : Especialista em Navegação Aérea
Nacionalidade : Brasil

Ir para o topo Ir para baixo

Conexão dos avionicos (radios, controles e comandos) com Arduino - Página 2 Empty Re: Conexão dos avionicos (radios, controles e comandos) com Arduino

Mensagem por Alerial Sex 12 Dez 2014, 08:02

Nossa, 20 minutos....isso que é pressão..kkkk
Entendido Joz, vou atualizando aqui.
Abraços

Alerial
Capitão
Capitão

Masculino
Inscrito em : 11/11/2014
Mensagens : 138
Reputação : 1
Idade : 51
Simulador preferido : FSX, X-Plane
Emprego/lazer : Hidroponia, Aquaponia, pecuaria
Nacionalidade : Brasil

Ir para o topo Ir para baixo

Conexão dos avionicos (radios, controles e comandos) com Arduino - Página 2 Empty Mais um passo...

Mensagem por Alerial Ter 16 Dez 2014, 14:14

Grande Joz, agora a coisa vai andar..rsrrs
Eu fiz um annunciator panel extraindo com a Uno, e tambem fiz um outro codigo para movimentar flaps e com indicador de posição, pela quantidade de botões e pinos usados daria para por tudo na mesma Uno, mas não estou sabendo juntar os codigos para que o mesmo funcione numa placa só.
Tem como juntar tudo num codigo só?????
Abraços

Alerial
Capitão
Capitão

Masculino
Inscrito em : 11/11/2014
Mensagens : 138
Reputação : 1
Idade : 51
Simulador preferido : FSX, X-Plane
Emprego/lazer : Hidroponia, Aquaponia, pecuaria
Nacionalidade : Brasil

Ir para o topo Ir para baixo

Conexão dos avionicos (radios, controles e comandos) com Arduino - Página 2 Empty Re: Conexão dos avionicos (radios, controles e comandos) com Arduino

Mensagem por Joz Ter 16 Dez 2014, 14:37

Sim, pode colocar os programas dentro do loop principal ou criar funções para serem chamadas.
Basta ter um pouco de atenção nas declarações e inicialização das variáveis

_________________
Josenildo
Especialista em Navegação Aérea
http://www.hangarxplane.com.br/
Joz
Joz
Coronel
Coronel

Masculino
Inscrito em : 23/10/2011
Mensagens : 1441
Reputação : 194
Idade : 44
Simulador preferido : X-Plane
Emprego/lazer : Especialista em Navegação Aérea
Nacionalidade : Brasil

Ir para o topo Ir para baixo

Conexão dos avionicos (radios, controles e comandos) com Arduino - Página 2 Empty Re: Conexão dos avionicos (radios, controles e comandos) com Arduino

Mensagem por Alerial Ter 16 Dez 2014, 15:12

mad mad mad mad mad mad mad
Vamos lá!!
Obrigado abraços

Alerial
Capitão
Capitão

Masculino
Inscrito em : 11/11/2014
Mensagens : 138
Reputação : 1
Idade : 51
Simulador preferido : FSX, X-Plane
Emprego/lazer : Hidroponia, Aquaponia, pecuaria
Nacionalidade : Brasil

Ir para o topo Ir para baixo

Conexão dos avionicos (radios, controles e comandos) com Arduino - Página 2 Empty Re: Conexão dos avionicos (radios, controles e comandos) com Arduino

Mensagem por Joz Ter 16 Dez 2014, 15:16

Se não conseguir, posta o código pra gente juntar.

_________________
Josenildo
Especialista em Navegação Aérea
http://www.hangarxplane.com.br/
Joz
Joz
Coronel
Coronel

Masculino
Inscrito em : 23/10/2011
Mensagens : 1441
Reputação : 194
Idade : 44
Simulador preferido : X-Plane
Emprego/lazer : Especialista em Navegação Aérea
Nacionalidade : Brasil

Ir para o topo Ir para baixo

Conexão dos avionicos (radios, controles e comandos) com Arduino - Página 2 Empty Re: Conexão dos avionicos (radios, controles e comandos) com Arduino

Mensagem por Alerial Ter 16 Dez 2014, 18:31

Beleza Joz, mas vou tentar até acabar com os restos dos cabelos.. rs

Alerial
Capitão
Capitão

Masculino
Inscrito em : 11/11/2014
Mensagens : 138
Reputação : 1
Idade : 51
Simulador preferido : FSX, X-Plane
Emprego/lazer : Hidroponia, Aquaponia, pecuaria
Nacionalidade : Brasil

Ir para o topo Ir para baixo

Conexão dos avionicos (radios, controles e comandos) com Arduino - Página 2 Empty Re: Conexão dos avionicos (radios, controles e comandos) com Arduino

Mensagem por Alerial Qua 17 Dez 2014, 07:23

Joz, segue ai os dois codigos juntos, so que está dando erro na linha 126, separado eles funcionam perfeitamente, estes dois codigos são do JIM, mas adaptei para minha nescessidade.
Eu fui copiando e colando conforme as declarações, voids, etc.
Eu dei várias olhadas, mas acho que há chave de mais ou de menos.
Abraços



/*
This code is in the public domain
For use with "Link2fs_Multi"
Jimspage.co.nz
My thanks to the Guys that gave me snippets of code.
Attach LED's to pins 2,3 and 4 (thru resistors)
Push button switchs onto pins 8 and 9 (flaps up a bit, flaps down a bit)
This also checks the spare pins (10 upwards) for "keys" input except pin 13.

>>>> You must tick "*/
int AnunPinNo[9] = {2, 6, 7, 10, 11, 12};// the selected pins with LED's
char AnunIdent2[9] = {'F','J','K','N','V','H'};//Selected items in "Annunciators" in Multi
int AnunPinValNew[9] = {0,0,0,0,0,0,0,0,0};//Array for pin values (The new readings)
int AnunPinValOld[9] = {0,0,0,0,0,0,0,0,0};//Array for pin values (The old readings)
int count = 0; //for array reading
int counterTrigger = 0;// Used for triggering the flashing LED's
int counterTriggerOld = 0;
long counter = 1;
int AnunPinTot = 0;
int CodeIn;// used on all serial reads
int KpinNo;
int Koutpin;
String flaps;

String KoldpinStateSTR, KpinStateSTR, Kstringnewstate,Kstringoldstate;

void setup(){
Kstringoldstate = "111111111111111111111111111111111111111111111111111111111111111111111";

for (int KoutPin = 8; KoutPin < 20; KoutPin++)// Set's up all the input pins
{
pinMode(KoutPin, INPUT);
digitalWrite(KoutPin, HIGH);
}
//pinMode(2, OUTPUT); // Flaps are "not up" LED
pinMode(3, OUTPUT); // Flaps are down 1st position LED
pinMode(4, OUTPUT); // Flaps are down 2nd position LED
pinMode(5, OUTPUT); // Flaps are down 3nd position Led
http://Serial.begin(115200);

//void setup()
for (count=0;count<9;count++) {// we make all the Anun declarations at once
// Be careful with the above line.(Dont involve a pin that will have a switch on it ,, it can fry your pin or card)
pinMode(AnunPinNo[count], OUTPUT);
digitalWrite(AnunPinNo[count], LOW);
}
// pinMode(piezo, OUTPUT); // done the piezo seperately for clearer coding
// digitalWrite(piezo, LOW);
// pinMode(Anunbutton, INPUT); // Cancell button on Anunnciators
// digitalWrite(Anunbutton, HIGH);
Serial.begin(115200);
}

void loop() {
{KEYS();} //Check the "keys" section
if (Serial.available()) {
CodeIn = getChar();//get a character
if (CodeIn == '<') {LESSTHAN();}// The first identifier is "<"
}//end of serial check
}//end of void loop

char getChar()// Get a character from the serial buffer
{
while(Serial.available() == 0);// wait for data
return((char)Serial.read());// Thanks Doug
}

void LESSTHAN(){ // The first identifier was "<"
CodeIn = getChar(); // Get another character
switch(CodeIn) {// Now lets find what to do with it
case 'G'://Found the second identifier ("G" Flaps position)
flaps = "";
//flaps += getChar();
flaps += getChar();
flaps += getChar();
flaps += getChar();
int flapsInt = flaps.toInt(); // convert it to an integer (Thanks Phill)
//if (flapsInt > 0) {digitalWrite(2, HIGH);} else {digitalWrite(2, LOW);}
if (flapsInt > 10) {digitalWrite(3, HIGH);} else {digitalWrite(3, LOW);}
if (flapsInt > 20) {digitalWrite(4, HIGH);} else {digitalWrite(4, LOW);}
if (flapsInt > 40) {digitalWrite(5, HIGH);} else {digitalWrite(5, LOW);}
break;
}
}

void KEYS()
{
Kstringnewstate = "";
for (int KpinNo = 8; KpinNo < 20; KpinNo++){//check for inputs on pins 8 to 70
KpinStateSTR = String(digitalRead(KpinNo)); //if you change the 8 in the line above ,, also change the 8 in the line below
KoldpinStateSTR = String(Kstringoldstate.charAt(KpinNo - 8));
if (KpinStateSTR != KoldpinStateSTR)//yes it's different
{
if (KpinNo != 13){ //pin 13 is no good as an input, it can "flutter" unless set up correctly
if (KpinNo == 8 && KpinStateSTR == "0"){Serial.println ("C15");} //flap handle up a bit
if (KpinNo == 9 && KpinStateSTR == "0"){Serial.println ("C14");} //flap handle down a bit
if (KpinNo > 9){//now the keys bit
Serial.print ("D");
if (KpinNo < 10) Serial.print ("0");
Serial.print (KpinNo);
Serial.println (KpinStateSTR);
}//end of keys bit
}//end of its not pin 13
}//end of yes its different
Kstringnewstate += KpinStateSTR;
}//end of 'For' loop
Kstringoldstate = Kstringnewstate;
//}// end of "inputs" void

//void loop()
//{
{OTHER();}
{ANNUNBUTTON();}
if (Serial.available()) {
CodeIn = getChar();
if (CodeIn == '=') {EQUALS();}
if (CodeIn == '<') {LESSTHAN();}
if (CodeIn == '?') {QUESTION();}
if (CodeIn == '/') {SLASH();}
}
//}

char getChar()
{
while(Serial.available() == 0);
return((char)Serial.read());
}

void OTHER(){
// Normal "run" stuff in here
}

void EQUALS(){
CodeIn = getChar();
switch(CodeIn) {
case 'A':
//Do something
break;

case 'W':
//Do something
break;

case 'a':
//Do something
break;
//etc etc etc
}
}

void LESSTHAN(){ // The first identifier was "<"
//Do something (See void EQUALS)
}

void QUESTION(){ // The first identifier was "?"
//Do something (See void EQUALS)
}

void SLASH(){ // The first identifier was "/" (Annunciators)
CodeIn = getChar();
AnunPinTot = 0; // for turning OFF piezo after quick fault
for (count=0;count<9;count++) {
if (CodeIn == AnunIdent2[count]){
AnunPinValNew[count] = (getChar()- 48);
if (AnunPinValNew[count] == 1){
if (AnunPinValOld[count] < 1) {digitalWrite(AnunPinNo[count], HIGH);
// digitalWrite(piezo, HIGH);
AnunPinValOld[count] = AnunPinValNew[count];}}
if (AnunPinValNew[count] == 0){
if (AnunPinValOld[count] > 0) {digitalWrite(AnunPinNo[count], LOW);AnunPinValOld[count] = AnunPinValNew[count];
}}}
if (AnunPinValOld[count] < 2 ){// for turning OFF piezo after quick fault
AnunPinTot = (AnunPinTot + AnunPinValNew[count]);}
http://Serial.print(PinValNew[count]);
}
//if (AnunPinTot < 1) {digitalWrite(piezo, LOW);} // for turning OFF piezo after quick fault
}

void ANNUNBUTTON(){
counter = counter + 1;
if (counter < 50000){counterTrigger = 0;}else {counterTrigger = 1;}
if (counter > 100000) {counter = 1;}
// if (digitalRead(Anunbutton) == 0){
// digitalWrite(piezo, LOW);
for (count=0;count<9;count++) {
if (AnunPinValOld[count] == 1){AnunPinValOld[count] = 3;}
}
}
// if (counterTrigger != counterTriggerOld) {
// for (count=0;count<9;count++) {
// if (AnunPinValOld[count] == 3) {
// if (counterTrigger == 1){digitalWrite(AnunPinNo[count], HIGH);}
// if (counterTrigger == 0){digitalWrite(AnunPinNo[count], LOW);}
// }
// }
// counterTriggerOld = counterTrigger;
// }
//}









Alerial
Capitão
Capitão

Masculino
Inscrito em : 11/11/2014
Mensagens : 138
Reputação : 1
Idade : 51
Simulador preferido : FSX, X-Plane
Emprego/lazer : Hidroponia, Aquaponia, pecuaria
Nacionalidade : Brasil

Ir para o topo Ir para baixo

Conexão dos avionicos (radios, controles e comandos) com Arduino - Página 2 Empty Re: Conexão dos avionicos (radios, controles e comandos) com Arduino

Mensagem por Joz Qua 17 Dez 2014, 08:48

No momento não posso conferir o código no arduino, mas dando uma olhada rápida, você tem duas funções "LESSTHAN()", a primeira tem código e a segunda está vazia. Ou seja, está desfazendo a função. Delete a segunda função.(linhas 150 a 152).
Deve estar acontecendo algum erro de sintaxe com as linhas 109 a 121 que seria o 2º VOID LOOP. Como você deixou comentado, pode ser que simplesmente as funções não sejam executadas. Você só pode ter um VOID LOOP por código, então teria que "mesclar" os dois num só. Delete o segundo VOID LOOP e substitua o primeiro com este código:
Código:

void loop(){
   {KEYS();} //Check the "keys" section
   {OTHER();}
   {ANNUNBUTTON();}
   if (Serial.available()) {
      CodeIn = getChar();
      if (CodeIn == '=') {EQUALS();}
      if (CodeIn == '<') {LESSTHAN();}
      if (CodeIn == '?') {QUESTION();}
      if (CodeIn == '/') {SLASH();}
   }
}

_________________
Josenildo
Especialista em Navegação Aérea
http://www.hangarxplane.com.br/
Joz
Joz
Coronel
Coronel

Masculino
Inscrito em : 23/10/2011
Mensagens : 1441
Reputação : 194
Idade : 44
Simulador preferido : X-Plane
Emprego/lazer : Especialista em Navegação Aérea
Nacionalidade : Brasil

Ir para o topo Ir para baixo

Conexão dos avionicos (radios, controles e comandos) com Arduino - Página 2 Empty Re: Conexão dos avionicos (radios, controles e comandos) com Arduino

Mensagem por Vitor Castro Qua 17 Dez 2014, 08:49

Alerial, mostra fotos pra gente depois dos cockipits, acredito que a maioria deve estar curiosa rs Very Happy
Vitor Castro
Vitor Castro
Major
Major

Masculino
Inscrito em : 23/11/2014
Mensagens : 385
Reputação : 21
Idade : 38
Simulador preferido : X Plane 10
Emprego/lazer : Analista de Suporte(TI) estudante de Análise de Sistemas
Nacionalidade : Brasil

Ir para o topo Ir para baixo

Conexão dos avionicos (radios, controles e comandos) com Arduino - Página 2 Empty Re: Conexão dos avionicos (radios, controles e comandos) com Arduino

Mensagem por Alerial Qua 17 Dez 2014, 09:56

Joz, segui as instruções, mas salvo algum erro meu, ainda deu erro....

Alerial
Capitão
Capitão

Masculino
Inscrito em : 11/11/2014
Mensagens : 138
Reputação : 1
Idade : 51
Simulador preferido : FSX, X-Plane
Emprego/lazer : Hidroponia, Aquaponia, pecuaria
Nacionalidade : Brasil

Ir para o topo Ir para baixo

Conexão dos avionicos (radios, controles e comandos) com Arduino - Página 2 Empty Re: Conexão dos avionicos (radios, controles e comandos) com Arduino

Mensagem por Alerial Qua 17 Dez 2014, 10:54

happy happy aplauso aplauso happy happy aplauso aplauso happy happy aplauso aplauso happy happy aplauso aplauso

Grande Joz, fucei, refucei, fucei de novo e agora deu certo.
Do jeito que está o codigo ai em baixo ele acende o annunciator e indica por led as posições dos flaps.
Acho que agora a coisa tende a andar.
Vou montar o annunciator, e o comando do flap, e caso possa e seja util para alguem eu posso colocar os detalhes, como ligação, pinos, materiais, etc....

uma batalha foi vencida, agora vamos para a outra

Valeu Professor....

/*
This code is in the public domain
For use with "Link2fs_Multi"
Jimspage.co.nz
My thanks to the Guys that gave me snippets of code.
Attach LED's to pins 2,3 and 4 (thru resistors)
Push button switchs onto pins 8 and 9 (flaps up a bit, flaps down a bit)
This also checks the spare pins (10 upwards) for "keys" input except pin 13.

>>>> You must tick "*/
int AnunPinNo[9] = {2, 6, 7, 10, 11, 12};// the selected pins with LED's
char AnunIdent2[9] = {'F','J','K','N','V','H'};//Selected items in "Annunciators" in Multi
int AnunPinValNew[9] = {0,0,0,0,0,0,0,0,0};//Array for pin values (The new readings)
int AnunPinValOld[9] = {0,0,0,0,0,0,0,0,0};//Array for pin values (The old readings)
int count = 0; //for array reading
int counterTrigger = 0;// Used for triggering the flashing LED's
int counterTriggerOld = 0;
long counter = 1;
int AnunPinTot = 0;
int CodeIn;// used on all serial reads
int KpinNo;
int Koutpin;
String flaps;

String KoldpinStateSTR, KpinStateSTR, Kstringnewstate,Kstringoldstate;

void setup(){
Kstringoldstate = "111111111111111111111111111111111111111111111111111111111111111111111";

for (int KoutPin = 8; KoutPin < 20; KoutPin++)// Set's up all the input pins
{
pinMode(KoutPin, INPUT);
digitalWrite(KoutPin, HIGH);
}
pinMode(3, OUTPUT); // Flaps are down 1st position LED
pinMode(4, OUTPUT); // Flaps are down 2nd position LED
pinMode(5, OUTPUT); // Flaps are down 3nd position Led
http://Serial.begin(115200);

for (count=0;count<9;count++) {// we make all the Anun declarations at once
// Be careful with the above line.(Dont involve a pin that will have a switch on it ,, it can fry your pin or card)
pinMode(AnunPinNo[count], OUTPUT);
digitalWrite(AnunPinNo[count], LOW);
}

Serial.begin(115200);
}
void loop()
{
{KEYS();} //Check the "keys" section
// {OTHER();}
{ANNUNBUTTON();}
if (Serial.available()) {
CodeIn = getChar();
if (CodeIn == '=') {EQUALS();}
if (CodeIn == '<') {LESSTHAN();}
if (CodeIn == '?') {QUESTION();}
if (CodeIn == '/') {SLASH();}
}
}
char getChar()
{
while(Serial.available() == 0);
return((char)Serial.read());
}
void EQUALS(){
CodeIn = getChar();
switch(CodeIn) {
case 'A':
//Do something
break;

case 'W':
//Do something
break;

case 'a':
//Do something
break;
//etc etc etc
}
}
void QUESTION(){ // The first identifier was "?"
//Do something (See void EQUALS)
}

void SLASH(){ // The first identifier was "/" (Annunciators)
CodeIn = getChar();
AnunPinTot = 0; // for turning OFF piezo after quick fault
for (count=0;count<9;count++) {
if (CodeIn == AnunIdent2[count]){
AnunPinValNew[count] = (getChar()- 48);
if (AnunPinValNew[count] == 1){
if (AnunPinValOld[count] < 1) {digitalWrite(AnunPinNo[count], HIGH);
// digitalWrite(piezo, HIGH);
AnunPinValOld[count] = AnunPinValNew[count];}}
if (AnunPinValNew[count] == 0){
if (AnunPinValOld[count] > 0) {digitalWrite(AnunPinNo[count], LOW);AnunPinValOld[count] = AnunPinValNew[count];
}}}
if (AnunPinValOld[count] < 2 ){// for turning OFF piezo after quick fault
AnunPinTot = (AnunPinTot + AnunPinValNew[count]);}
http://Serial.print(PinValNew[count]);
}
//if (AnunPinTot < 1) {digitalWrite(piezo, LOW);} // for turning OFF piezo after quick fault
}

void ANNUNBUTTON(){
counter = counter + 1;
if (counter < 50000){counterTrigger = 0;}else {counterTrigger = 1;}
if (counter > 100000) {counter = 1;}
// if (digitalRead(Anunbutton) == 0){
// digitalWrite(piezo, LOW);
for (count=0;count<9;count++) {
if (AnunPinValOld[count] == 1){AnunPinValOld[count] = 3;}
}
}

void LESSTHAN()
{ // The first identifier was "<"
CodeIn = getChar(); // Get another character
switch(CodeIn) {// Now lets find what to do with it
case 'G'://Found the second identifier ("G" Flaps position)
flaps = "";
//flaps += getChar();
flaps += getChar();
flaps += getChar();
flaps += getChar();
int flapsInt = flaps.toInt(); // convert it to an integer (Thanks Phill)
//if (flapsInt > 0) {digitalWrite(2, HIGH);} else {digitalWrite(2, LOW);}
if (flapsInt > 10) {digitalWrite(3, HIGH);} else {digitalWrite(3, LOW);}
if (flapsInt > 20) {digitalWrite(4, HIGH);} else {digitalWrite(4, LOW);}
if (flapsInt > 40) {digitalWrite(5, HIGH);} else {digitalWrite(5, LOW);}
break;
}
}

void KEYS()
{
Kstringnewstate = "";
for (int KpinNo = 8; KpinNo < 20; KpinNo++){//check for inputs on pins 8 to 70
KpinStateSTR = String(digitalRead(KpinNo)); //if you change the 8 in the line above ,, also change the 8 in the line below
KoldpinStateSTR = String(Kstringoldstate.charAt(KpinNo - 8));
if (KpinStateSTR != KoldpinStateSTR)//yes it's different
{
if (KpinNo != 13){ //pin 13 is no good as an input, it can "flutter" unless set up correctly
if (KpinNo == 8 && KpinStateSTR == "0"){Serial.println ("C15");} //flap handle up a bit
if (KpinNo == 9 && KpinStateSTR == "0"){Serial.println ("C14");} //flap handle down a bit
if (KpinNo > 9){//now the keys bit
Serial.print ("D");
if (KpinNo < 10) Serial.print ("0");
Serial.print (KpinNo);
Serial.println (KpinStateSTR);
}//end of keys bit
}//end of its not pin 13
}//end of yes its different
Kstringnewstate += KpinStateSTR;
}//end of 'For' loop
Kstringoldstate = Kstringnewstate;
}











Alerial
Capitão
Capitão

Masculino
Inscrito em : 11/11/2014
Mensagens : 138
Reputação : 1
Idade : 51
Simulador preferido : FSX, X-Plane
Emprego/lazer : Hidroponia, Aquaponia, pecuaria
Nacionalidade : Brasil

Ir para o topo Ir para baixo

Conexão dos avionicos (radios, controles e comandos) com Arduino - Página 2 Empty Re: Conexão dos avionicos (radios, controles e comandos) com Arduino

Mensagem por Alerial Qua 17 Dez 2014, 11:00

Como isso é viciante.....Nossa!!!
Só mais uma pergunta... nesse codigo tem como eu usar as outras 6 saidas analogicas? se sim o que eu poderia ligar nelas?

Abraços

Alerial
Capitão
Capitão

Masculino
Inscrito em : 11/11/2014
Mensagens : 138
Reputação : 1
Idade : 51
Simulador preferido : FSX, X-Plane
Emprego/lazer : Hidroponia, Aquaponia, pecuaria
Nacionalidade : Brasil

Ir para o topo Ir para baixo

Conexão dos avionicos (radios, controles e comandos) com Arduino - Página 2 Empty Re: Conexão dos avionicos (radios, controles e comandos) com Arduino

Mensagem por Conteúdo patrocinado


Conteúdo patrocinado


Ir para o topo Ir para baixo

Página 1 de 2 1, 2  Seguinte

Ir para o topo

- Tópicos semelhantes

 
Permissões neste sub-fórum
Não podes responder a tópicos