Poryectos

 Leds + servo: proyecto leer programación y armar circuito


#include <Servo.h>


Servo miServo;


// Pines LEDs

const int rojo = 13;

const int amarillo = 12;

const int verde = 11;


void setup() {

  pinMode(rojo, OUTPUT);

  pinMode(amarillo, OUTPUT);

  pinMode(verde, OUTPUT);


  miServo.attach(9);

}


void loop() {


  // 🔴 ROJO

  digitalWrite(rojo, HIGH);

  digitalWrite(amarillo, LOW);

  digitalWrite(verde, LOW);

  miServo.write(0); // barrera cerrada

  delay(4000);


  // 🟢 VERDE

  digitalWrite(rojo, LOW);

  digitalWrite(verde, HIGH);

  miServo.write(90); // barrera abierta

  delay(4000);


  // 🟡 AMARILLO

  digitalWrite(verde, LOW);

  digitalWrite(amarillo, HIGH);

  miServo.write(45); // transición

  delay(2000);


  digitalWrite(amarillo, LOW);

}


Leds + servo: juego

#include <Servo.h>


Servo miServo;


const int boton = 2;

const int ledVerde = 6;

const int ledRojo = 7;


int angulo = 0;

int direccion = 5;


void setup() {

  miServo.attach(9);


  pinMode(boton, INPUT_PULLUP);

  pinMode(ledVerde, OUTPUT);

  pinMode(ledRojo, OUTPUT);


  Serial.begin(9600);

}


void loop() {


  // Apagar LEDs

  digitalWrite(ledVerde, LOW);

  digitalWrite(ledRojo, LOW);


  // Movimiento del servo

  miServo.write(angulo);

  angulo += direccion;


  // Rebote

  if (angulo >= 180 || angulo <= 0) {

    direccion = -direccion;

  }


  delay(50);


  // Si presiona el botón

  if (digitalRead(boton) == LOW) {


    if (angulo >= 80 && angulo <= 100) {


      Serial.println("GANASTE!");

      digitalWrite(ledVerde, HIGH);


    } else {


      Serial.println("PERDISTE!");

      digitalWrite(ledRojo, HIGH);

    }


    delay(1500);

  }

}


Leds  + servo + boton : proyecto semaforo y valla


#include <Servo.h>


Servo miServo;


// LEDs

const int rojo = 13;

const int amarillo = 12;

const int verde = 11;


// Botón

const int boton = 2;


bool solicitud = false;


void setup() {

  pinMode(rojo, OUTPUT);

  pinMode(amarillo, OUTPUT);

  pinMode(verde, OUTPUT);


  pinMode(boton, INPUT_PULLUP);


  miServo.attach(9);

}


void loop() {


  // ======================

  // 🟢 VERDE

  // ======================

  digitalWrite(verde, HIGH);

  digitalWrite(amarillo, LOW);

  digitalWrite(rojo, LOW);


  miServo.write(90); // barrera abierta


  unsigned long tiempo = millis();


  while (millis() - tiempo < 5000) {


    if (digitalRead(boton) == LOW) {

      solicitud = true;

    }

  }


  // ======================

  // 🟡 AMARILLO

  // ======================

  digitalWrite(verde, LOW);

  digitalWrite(amarillo, HIGH);

  delay(2000);


  // ======================

  // 🔴 ROJO (PEATÓN)

  // ======================

  digitalWrite(amarillo, LOW);

  digitalWrite(rojo, HIGH);


  miServo.write(0); // barrera cerrada


  if (solicitud) {

    delay(5000); // más tiempo si presionaron botón

  } else {

    delay(3000); // tiempo normal

  }


  solicitud = false;


  digitalWrite(rojo, LOW);

}

Comentarios

Entradas populares de este blog

RobóticaIJR

Rduino+Resistencias+Leds+Boton

Arduino + Servo motor