Go Down

Topic: Duda codigo sensor infrarojos (Read 400 times) previous topic - next topic

fuzodh

Hola, basándome en este código que hice con este sensor

int count;
int sensor;
int Sensor = 9;
int led = 10;
int cont = 0;
void setup() {

Serial.begin (9600);
pinMode (sensor, INPUT);
pinMode (led, OUTPUT);
}
void loop() {
Serial.print ("Sensor: ");
Serial.println (digitalRead(Sensor));
sensor = Serial.println (digitalRead(Sensor));
delay (100);
if (digitalRead(Sensor) == 0)
{
 digitalWrite(led, HIGH);
 cont = cont +1;
}
if ((cont == 1)&&(digitalRead(Sensor) == 0))
{
 digitalWrite(led, LOW);
 cont = -1;
}

}

Quisiera ponerlo para un proyecto que tengo para encender el circuito y apagarlo de esa manera (a través de un mando de tele)

Os pongo el codigo implementado en el otro circuito del proyecto.

#include <Servo.h>
#define ECHOPIN 8
#define TRIGPIN 9        
#define PINTONO 7
Servo servo1;
int led1= 6;
int cont= 0;
int cont2= 0;
int Sensor =10;
int count;
int sensor;


unsigned int tiempo,distancia;                  


void setup() {
 Serial.begin(9600);
 pinMode(ECHOPIN, INPUT);
 pinMode(TRIGPIN, OUTPUT);
 pinMode(PINTONO, OUTPUT);
 pinMode(led1, OUTPUT);
 servo1.attach(5);
 pinMode (sensor, INPUT);
}
 
void loop()
{
 Serial.print ("Sensor: ");
 Serial.println (digitalRead(Sensor));
 sensor = Serial.println (digitalRead(Sensor));
 if (digitalRead(Sensor) == 0){
 cont = cont +1;  
 digitalWrite(TRIGPIN, LOW);
 delayMicroseconds(2);
 digitalWrite(TRIGPIN, HIGH);
 delayMicroseconds(10);
 digitalWrite(TRIGPIN, LOW);
 tiempo = pulseIn(ECHOPIN, HIGH);
 distancia= tiempo/58;
 Serial.print(distancia);
 Serial.println(" cm");
 tone (PINTONO,0);
 delay (200);
 if (distancia>10)noTone(PINTONO);
 delay(distancia*3);
 if (distancia<=7)
  digitalWrite(led1,HIGH);
  else
  digitalWrite(led1,LOW);
  delay(100);
  digitalWrite(led1,HIGH);
 if (distancia<7){
  servo1.write(0);
  delay(300);
 
 
 }
if ((cont == 1)&&(distancia<10)){
  servo1.write(90);
  delay(300);
  cont2 = -1;

}  
 }
if ((cont2 == 1)&&(digitalRead(Sensor) == 0)){
  cont2 = -1;
  digitalWrite(TRIGPIN, LOW);
  digitalWrite(ECHOPIN, LOW);
  digitalWrite(PINTONO, LOW);
  digitalWrite(led1, LOW);
 
}
}

Me da un par de fallos, el primero que solo funciona si el sensor esta mandando cero cosa que con el led no pasaba se quedaba en estado alto encuanto registraba un cero.
Y la segunda es cuando el sonar hace girar el servo este se queda "pillado" y no hace nada mas.
Alguna ayudita con este codigo por favor que no llevo mucho tiempo en esto y me lio un poco.
Un saludo y gracias

Go Up