Pages: [1]   Go Down
Author Topic: Duda codigo sensor infrarojos  (Read 375 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Newbie
*
Karma: 0
Posts: 7
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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
Logged

Pages: [1]   Go Up
Jump to: