LusoRobótica - Robótica em Português
Sistemas específicos => Arduino / AVR => Tópico iniciado por: clauiocbamt 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)
-
Falta o circuito eléctrico...
-
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);
}
}
-
Porque estás a compara o numero do pino com HIGH e não o valor do digitalRead do pino..
É assim:
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.
-
obrigado senso , deu certo , muito obrigado pela dica
-
depois que me liguei que digitalRead() é uma função que recebe parametros do pino para leitura mais valeu
-
o circuito ta junto com o post
Ups, ok, peço desculpa então.