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);
}
}
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:
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);
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