collapse

* Posts Recentes

MKR Vidor4000 por josecarlos
[Ontem às 21:05]


PWM com ventoinha por edeweld
[Ontem às 20:42]


Frequência máxima de pwm com controlo de duty cycle de 0 a 100% por Njay
[Ontem às 19:59]


NiCd por NiMH? por jm_araujo
[Ontem às 11:46]


LusoRobótica - Website - Estado actual por TigPT
[19 de Maio de 2018, 22:34]


Concurso Robô Bombeiro 2018 por Tesla
[18 de Maio de 2018, 11:01]


Trafo Amplificador Behrimger ? por jm_araujo
[16 de Maio de 2018, 18:55]


Alfândega / Taxas Alfandegárias / Portes por Njay
[16 de Maio de 2018, 01:26]


Compra Colectiva à Farnell N3-2018 (Maio 2018) por Hugu
[15 de Maio de 2018, 15:34]


Robô BBC micro:bit controlado com gestos no telemóvel Android por Tayeb
[14 de Maio de 2018, 19:41]

Autor Tópico: ajuda no codigo  (Lida 1079 vezes)

0 Membros e 1 Visitante estão a ver este tópico.

Offline clauiocbamt

  • Mini Robot
  • *
  • Mensagens: 18
ajuda no codigo
« em: 21 de Maio de 2011, 18:57 »
olá pessoal preciso de ajuda nesse codigo, por que não esta dando certo alguem me ajuda ai
é o seguite galera preciso atraves de duas entradas fotoacoplada ativar e desativar uma saida
#define rele1 8
#define fotoac1 2
#define fotoac2 3

void setup(){

pinMode ( rele1 , OUTPUT);
pinMode (fotoac1, INPUT);
pinMode (fotoac1, INPUT);
}


void loop(){

if ( fotoac1 == LOW){

rele1 = HIGH;

if (fotoac2 == LOW)

rele2 = LOW;
}
}
as entradas estao sempre em nivel alto, e para mudar o estado da saida a configuração do fotoacoplador esta para mandar nivel baixo para a entrada toda vez que é acionado, por um periodo de 100ms, e uma vez ativada a saida esta devera sem mantida até a chegada de um novo pulso em nivel baixo , preciso de ajuda , agradeço quem puder me ajudar (desenho em anexo)



Offline Njay

  • Mini Robot
  • *
  • Mensagens: 3.275
    • Tróniquices
Re: ajuda no codigo
« Responder #1 em: 21 de Maio de 2011, 19:20 »
Falta o circuito eléctrico...

Offline clauiocbamt

  • Mini Robot
  • *
  • Mensagens: 18
Re: ajuda no codigo
« Responder #2 em: 21 de Maio de 2011, 19:28 »
o circuito ta junto com o post


fiz essas aletarações e não funcionou ainda




int rele2 = 8;
#define fotoac1 2
#define fotoac2 3

void setup(){

pinMode ( rele2 , OUTPUT);
pinMode (fotoac1, INPUT);
pinMode (fotoac1, INPUT);
}


void loop(){

if (digitalRead(fotoac1 == LOW)){

digitalWrite (rele2 , HIGH);
}

if (digitalRead(fotoac2 == LOW)){

digitalWrite(rele2,LOW);
}
}

Offline senso

  • Global Moderator
  • Mini Robot
  • *****
  • Mensagens: 9.502
  • Helpdesk do sitio
Re: ajuda no codigo
« Responder #3 em: 21 de Maio de 2011, 22:07 »
Porque estás a compara o numero do pino com HIGH e não o valor do digitalRead do pino..
É assim:
Código: [Seleccione]
int rele2 = 8;
#define fotoac1 2
#define fotoac2 3

void setup(){

pinMode ( rele2 , OUTPUT);
pinMode (fotoac1, INPUT);
pinMode (fotoac1, INPUT);
}


void loop(){

if (digitalRead(fotoac1) == LOW){

digitalWrite (rele2 , HIGH);
}

if (digitalRead(fotoac2) == LOW){

digitalWrite(rele2,LOW);
}
}
[code]

E usa as tags [code ] e [/code ] sem espaços para meteres o teu código.
Avr fanboy

Offline clauiocbamt

  • Mini Robot
  • *
  • Mensagens: 18
Re: ajuda no codigo
« Responder #4 em: 21 de Maio de 2011, 23:00 »
obrigado senso , deu certo , muito obrigado pela dica

Offline clauiocbamt

  • Mini Robot
  • *
  • Mensagens: 18
Re: ajuda no codigo
« Responder #5 em: 21 de Maio de 2011, 23:02 »
depois que me liguei que  digitalRead() é uma função que recebe parametros do pino para leitura mais valeu

Offline Njay

  • Mini Robot
  • *
  • Mensagens: 3.275
    • Tróniquices
Re: ajuda no codigo
« Responder #6 em: 22 de Maio de 2011, 10:20 »
o circuito ta junto com o post

Ups, ok, peço desculpa então.