Saltar la navegación

Barrera con semáforo


Código sin semáforo

#include <Servo.h>
Servo myservo;
int pos = 0;
const int sensorPin = 7; //Sensor infrarrojos

void setup()
{
  Serial.begin(9600);   //iniciar puerto serie
  pinMode(sensorPin , INPUT);  //definir pin como entrada
  myservo.attach(9); //pin del servo
}
 
void loop()
{
  int value = 0;
  value = digitalRead(sensorPin );  //lectura digital de pin
 
  if (value == LOW) {
      Serial.println("Detectado obstaculo");
      myservo.write(90);              
      delay(400);        
  }
  else
  {
    Serial.println("No detectado");
    myservo.write(0);              
    delay(400);    
  }
  delay(250);
}


Código sin semáforo PRO

Hay que descargar la siguiente librería VarSpeedServo.h e instalarla

#include <VarSpeedServo.h>
VarSpeedServo myservo;
int pos = 0;
const int sensorPin = 7; //Sensor infrarrojos

void setup()
{
  Serial.begin(9600);   //iniciar puerto serie
  pinMode(sensorPin , INPUT);  //definir pin como entrada
  myservo.attach(9); //pin del servo
}
 
void loop()
{
  int value = 0;
  value = digitalRead(sensorPin );  //lectura digital de pin
 
  if (value == LOW)
  {
      Serial.println("Detectado obstaculo");
      myservo.write(90, 30, true);            
      delay(400);        
  }
  else
  {
    Serial.println("No detectado");
    myservo.write(0, 30, true);              
    delay(400);    
  }
  delay(250);
}


Código CON semáforo PRO

#include <VarSpeedServo.h>
VarSpeedServo myservo;
int pos = 0;
const int sensorPin = 7; //Sensor infrarrojos
const int ledrojo = 3;
const int ledamarillo = 4;
const int ledverde = 5;


void setup()
{
  Serial.begin(9600);   //iniciar puerto serie
  pinMode(sensorPin , INPUT);  //definir pin como entrada
  pinMode(ledrojo,OUTPUT);
  pinMode(ledamarillo,OUTPUT);
  pinMode(ledverde,OUTPUT);
  digitalWrite(ledrojo, HIGH);
  digitalWrite(ledamarillo, LOW);
  digitalWrite(ledverde, LOW);
  delay(1000);
  myservo.attach(9); //pin del servo
}
 
void loop()
{
  int value = 0;
  value = digitalRead(sensorPin );  //lectura digital de pin
 
  if (value == LOW)
  {
    Serial.println("Detectado obstaculo");
    myservo.write(90, 30, true);
    digitalWrite(ledrojo, LOW);
    digitalWrite(ledamarillo, HIGH);
    digitalWrite(ledverde, LOW);
    delay(250);
    digitalWrite(ledamarillo, LOW);
    digitalWrite(ledverde, HIGH);

    delay(400);        
  }
  else
  {
    Serial.println("No detectado");
    digitalWrite(ledrojo, HIGH);
    digitalWrite(ledamarillo, LOW);
    digitalWrite(ledverde, LOW);
    myservo.write(0, 30, true);              
    delay(400);    
  }
  delay(250);
}


Creado con eXeLearning (Ventana nueva)