Criação de software para utilização de sensor infravermelho

Bom dia, pessoal eu comprei receptor infravermelho, porem não estou conseguindo utilizar ele na porta digital, isto se é possível, pois no site deles não me informa nada, apenas da um exemplo utilizando a portas analógicas, eu vou ter que utilizar a porta analógica ou é possível usar a digital, pois quero apenas ler HIGH e LOW com o modulo. Não sei se o código está certo, pois estou aprendendo ainda. Eu queria poder acender um led quando o receptor lesse o valor HIGH e apagasse quando lesse LOW. Vou ter seguinte situação, uma roda dentada separando o modulo transmissor do modulo receptor, esta roda dentada tem 4 furos, por teoria o transmissor deve sempre estar em high e o receptor só iria fazer algo quando receber high, e sempre vai estar no estado low, porem estou tento dificuldades em montar este software, na parte de comunicação entre o modulo transmissor e o modulo receptor. Criei esse software para testar, porem estou com problema, alguem poderia me ajudar? grato

int led = 13;
int rx = 12;
int tx = 11;

void setup() {
pinMode(led, OUTPUT);
pinMode(rx, INPUT);
pinMode(tx, OUTPUT);
}

void loop() {

digitalWrite(tx, HIGH);
digitalRead(rx);
if(rx == HIGH) {
digitalWrite(led, HIGH);
}
}

Exibições: 1812

As respostas para este tópico estão encerradas.

Respostas a este tópico

também estava com essa dificuldade, comigo funcionou, ve se funciona ai:

int sensor = 6;

void setup (){

Serial.begin(9600);
}

void loop(){
int sensor;
sensor = digitalRead(6);

Serial.print("Valor Lido: ");
Serial.print(sensor);
delay(100);
Serial.println("");
}

colocando o coletor do sensor na porta 6

então Guilherme, tipo, eu vou ter a seguinte situação, uma roda dentada separando o modulo transmissor do modulo receptor, ele vai sempre somar mais um, quando o receptor ler o valor 1 e não vai fazer nada quando ler o valor 0, eu fiz esse software para saber se o modulo receptor estava funcionando, mas vou tentar utilizar o seu software para testar, grato.

tinha entendido sua duvida errado, tenta isso aqui, vai fazer exatamente o que você quer!

int sensor = 6;

int LED = 13;

void setup (){

pinMode(13, OUTPUT)

Serial.begin(9600);
}

void loop(){
int sensor;
sensor = digitalRead(6);

if(sensor=1){
digitalWrite(LED,HIGH);
}
else{
digitalWrite(LED,LOW);
}


Serial.print("Valor Lido: ");
Serial.print(sensor);
delay(100);
Serial.println("");

}

Guilherme me tira uma duvida que me surgiu utilizando o primeiro código que você me mandou, quando o transmissor esta mandando High, o receptor le Low e quando o transmissor manda Low o receptor le Hight, é o inverso mesmo?

se for o que estou pensando não, tente entender mais ou menos, o emissor estará ligado ou desligado (HIGH e LOW, respectivamente), assim o receptor responde conduzindo ou não, ele conduz quando recebe a luz do emissor e não conduz quando não recebe a luz, é mais ou menos isso, entendeu?

então, porque com os códigos que você me passou só de eu ligar o receptor, ele esta lendo o valor 1, o certo não seria ler o valor 0, já que o emissor não esta na sua frente, quando eu coloco o emissor na frente ele lê 0, pelo menos isso deu no primeiro código a mesma coisa aconteceu no segundo assim fazendo o led ficar sempre acesso.

não consegui entender, você ligou o coletor e o emissor do receptor certo?! com o meu código você coloca o terminal menor no Vcc e o maior você liga no GND com um resistor, e coloca um fio desse terminal maior até a entrada do arduino

não entendi, desculpe, teria como você desenhar o circuito dessas ligações? utilizando o modulo transmissor e o modulo receptor, fazendo um favor?

int sensor = 6;
int LED = 13;
void setup (){
pinMode(13, OUTPUT);

Serial.begin(9600);
}
void loop(){
int sensor;
sensor = digitalRead(6);
if(sensor=0){
digitalWrite(LED,HIGH);
}
else{
digitalWrite(LED,LOW);
}

Serial.print("Valor Lido: ");
Serial.print(sensor);
delay(100);
Serial.println("");
}

o codigo do guilherme com o valor invertido

Então agora o receptor está lendo apenas zero, porem eu introduzi o emissor, para ver se ele lia o valor HIGH, porem não leu, ficando assim o código, se tiver algo errado por favor, me corrija.

int sensor = 6;
int LED = 13;
int tx = 8;
void setup (){
pinMode(13, OUTPUT);
pinMode(8, OUTPUT);
Serial.begin(9600);
}
void loop(){
digitalWrite(tx, HIGH);
int sensor;
sensor = digitalRead(6);
if(sensor=0){
digitalWrite(LED,HIGH);
}
else{
digitalWrite(LED,LOW);
}
Serial.print("Valor Lido: ");
Serial.print(sensor);
delay(100);
Serial.println("");
}

tem que usar a biblioteca IRremote, esse link pode te ajudar: http://gutomelo.com/2013/08/11/controle-remoto-infravermelho-arduino/

int LED = 13;
int tx = 8;

int furo=0;

void setup (){
pinMode(13, OUTPUT);
pinMode(8, OUTPUT);
Serial.begin(9600);
}
void loop()

{
digitalWrite(tx, HIGH);

digitalWrite(LED, LOW);

int sensor = digitalRead(6);
if(sensor=0)

{
digitalWrite(LED,HIGH);

furo=furo++

}
else

{
digitalWrite(LED,LOW);
}
Serial.print("Valor Lido: ");
Serial.print(furo/4);
delay(100);
Serial.println("");
}

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço