T 4


CIRCUITOS:

En esta tarea tu labor es la siguiente: A continuación se muestran 3 circuitos junto con el código fuente que los hace funcionar. Presta mucha atención, recuerda cómo se hacen las conexiones y móntalos en clase. Recuerda que tendrás que presentar un dosier de los ejercicios explicando el código de cada uno de ellos y el montaje de los mismos.

CIRCUITO 1:

int led_verde = 13;
int led_amarillo = 12;
int led_rojo = 8;
const int BOTON = 7; 
int val = 0; 

// del botón
int state = 0; int old_val = 0; 
void setup() {

pinMode(led_verde, OUTPUT);
pinMode(led_amarillo, OUTPUT);
pinMode(led_rojo, OUTPUT);
}

void loop(){
val= digitalRead(BOTON); 
if ((val == HIGH) && (old_val == LOW)){
state=1-state;
delay(10);
}
old_val = val; 
if (state==1){
digitalWrite(led_verde,HIGH); 
delay(5000); 
digitalWrite(led_verde,LOW); 
digitalWrite(led_amarillo,HIGH); 
delay(1000); 
digitalWrite(led_amarillo,LOW); 
digitalWrite(led_rojo,HIGH); 
delay(4000);
digitalWrite(led_rojo,LOW); 
}
}

CIRCUITO 2:


#include <Servo.h>
Servo servoMotor;
void setup() {
  Serial.begin(9600);
  servoMotor.attach(9);
}
void loop() {
  

  servoMotor.write(0);
  delay(1000);

  servoMotor.write(90);
  delay(1000);
  
  servoMotor.write(180);
  delay(1000);
}

CIRCUITO 3:

#include <Servo.h>
Servo motor;

int estado1 = 0, angulo = 0, estado2 = 0;

void setup()
{

  Serial.begin(9600);
  pinMode(7,INPUT);
  pinMode(8,OUTPUT);
  motor.attach(6);
}

void loop()
{

  digitalWrite(8,HIGH);
  estado1 = digitalRead(7);
  estado2 = digitalRead(4);  

  if(estado1 == 1 && estado2 == 0)
  {
    motor.write(angulo);
    angulo = angulo + 1;
    restriccion(); 
  }

  if(estado1 == 0 && estado2 == 1)
  {
    motor.write(angulo);
    angulo = angulo - 1;
    restriccion();
  }
  


  if(estado1 == 0 && estado2 == 0)
  {
    motor.write(angulo);
  }
}

void restriccion()
{

  if(angulo < 1)
  {
    angulo = 0;
  }
  if(angulo>179)
  {
    angulo = 180;
  }
}

No hay comentarios:

Publicar un comentario