Hola, saludos.
Tengo algunas dudas con respecto a mi programa y no sè si estoy bien, ademàs que no me compila.
El programa debe realizar que mediante un sensor inductivo NPN LJ12A3-4-Z/BX detecte un material metàlico los servos se deben mover en cierta direcciòn y despues ir a otra direcciòn; y de no ser asì con el sensor de presencia los servos deben moverse en otra direcciòn y depues en otra direcciòn.
Los grados de los servoos son asì:
Sensor inductivo al detectar un material mètalico:
Servo 1= 0
Servo 2= 100
Servo 3= 100, 0
Servo 2= 60
Servo 1= 100
Servo 2= 100
Servo 3= 100, 0
Servo 2= 60
Sensor de presencia cuando detecte un objeto:
Servo 1= 0
Servo 2= 100
Servo 3= 100, 0
Servo 2= 60
Servo 1= 70
Servo 2= 100
Servo 3= 100, 0
Servo 2= 60
La programaciòn que tengo es la siguiente:
int sensor_inductivo = 12; // Pin digital para el cable negro del sensor
int led = 10; // Pin digital para el LED
const int PIRPin= 9;//Pin digital para señal del sensor
#include <Servo.h>
Servo servo1;
Servo servo3;
Servo servo2;
void setup()
{
servo1.attach(3);
servo3.attach(6);
servo2.attach(4);
pinMode(sensor_inductivo,INPUT); // Pin digital 12 como entrada
pinMode(led,OUTPUT); // Pin digital 10 como salida
pinMode(PIRPin,INPUT);//Pin digital 9 como salida
}
void loop()
{
// Cuando el sensor inductivo detecta un metal ferroso
if(digitalRead(sensor_inductivo) == HIGH)
{
digitalWrite(led, HIGH);
for (int pos = 0; pos < 180; pos += 100)
{ servo1.write(0);
servo2.write(100);
servo3.write(map (pos, 100, 70, 40, 20, 0));
servo2.write(60);
delay(3000); }
for (int pos = 100; pos < 180; pos += 100)
{ servo1.write(100);
servo2.write(100),
servo3.write(map (pos, 85, 65, 45, 0));
servo2.write(60);
delay(3000); }
}
// Si no lo detecta
else
{
digitalWrite(led, LOW);
}
int value= digitalRead (PIRPin);
if (value == HIGH)
{
digitalWrite(led, HIGH);
for (int pos = 0; pos < 180; pos += 100)
{ servo1.write(0);
servo2.write(100);
servo3.write(map (pos, 100, 70, 40, 20, 0));
servo2.write(60);
delay(3000); }
for ( int pos = 60; pos < 180; pos += 100)
{ servo1.write(60);
servo2.write(100);
servo3.write(map (pos, 85, 65, 45, 0));
servo2.write(60);
delay(3000); }
else
{
digitalWrite(led, LOW);
}
}
Les agradecerìa mucho su ayuda.
Saludos.