Go Down

Topic: Duda codigo sensor infrarojos (Read 438 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
 


Please enter a valid email to subscribe

Confirm your email address

We need to confirm your email address.
To complete the subscription, please click the link in the email we just sent you.

Thank you for subscribing!

Arduino
via Egeo 16
Torino, 10131
Italy