miércoles, 23 de noviembre de 2022

Servomotores (vídeo)

 https://youtu.be/C2PhabVRuaQ

Semáforo doble

 En la clase de hoy vamos a hacer un semáforo doble, es lo mismo que el semáforo común solo que cuando un semáforo esté en color verde el otro estará en rojo y así respectivamente.






El código es el siguiente:

int rojo=13;

int amarillo=12;

int verde=11;

int rojo1=A2;

int amarillo1=A1;

int verde1=A0;


void setup()

{

  pinMode(13, OUTPUT);

  pinMode(12, OUTPUT);

  pinMode(11, OUTPUT);

  pinMode(A2, OUTPUT);

  pinMode(A1, OUTPUT);

  pinMode(A0, OUTPUT);


}


void loop()

{

  digitalWrite(11, HIGH);

  digitalWrite(12, LOW);

  digitalWrite(13, LOW);

  

  digitalWrite(A2, HIGH);

  digitalWrite(A1, LOW);

  digitalWrite(A0, LOW);

  

  delay(4500);

  

  

  digitalWrite(12, HIGH);

  digitalWrite(13, LOW);

  digitalWrite(11, LOW);

  

  digitalWrite(A1, HIGH);

  digitalWrite(A2, LOW);

  digitalWrite(A0, LOW);

  

  delay(3000);

  

  

  digitalWrite(13, HIGH);

  digitalWrite(12, LOW);

  digitalWrite(11, LOW);

  

  digitalWrite(A0, HIGH);

  digitalWrite(A1, LOW);

  digitalWrite(A2, LOW);

  

  delay(1500);

  

  

}

  

Contador

 El día de hoy hicimos un contador, una actividad un tanto complicada pero satisfactorio de ver.







Compilamos el código:

int a = 2;

int b = 3;

int c = 4;

int d = 5;

int e = 6;

int f = 7;

int g = 8;

int time = 1000;


void setup()

{

  pinMode(a,OUTPUT);

  pinMode(b,OUTPUT);

  pinMode(c,OUTPUT);

  pinMode(d,OUTPUT);

  pinMode(e,OUTPUT);

  pinMode(f,OUTPUT);

  pinMode(g,OUTPUT);

}

  

void loop()

{

  //0

  digitalWrite(a,HIGH);

  digitalWrite(b,HIGH);

  digitalWrite(c,HIGH);

  digitalWrite(d,HIGH);

  digitalWrite(e,HIGH);

  digitalWrite(f,HIGH);

  digitalWrite(g,LOW);

  delay(time);

  

  //1

  digitalWrite(a,LOW);

  digitalWrite(b,HIGH);

  digitalWrite(c,HIGH);

  digitalWrite(d,LOW);

  digitalWrite(e,LOW);

  digitalWrite(f,LOW);

  digitalWrite(g,LOW);

  delay(time);

  

  //2

  digitalWrite(a,HIGH);

  digitalWrite(b,HIGH);

  digitalWrite(c,LOW);

  digitalWrite(d,HIGH);

  digitalWrite(e,HIGH);

  digitalWrite(f,LOW);

  digitalWrite(g,HIGH);

  delay(time);

  

  //3

  digitalWrite(a,HIGH);

  digitalWrite(b,HIGH);

  digitalWrite(c,HIGH);

  digitalWrite(d,HIGH);

  digitalWrite(e,LOW);

  digitalWrite(f,LOW);

  digitalWrite(g,HIGH);

  delay(time);

  

  //4

  digitalWrite(a,LOW);

  digitalWrite(b,HIGH);

  digitalWrite(c,HIGH);

  digitalWrite(d,LOW);

  digitalWrite(e,LOW);

  digitalWrite(f,HIGH);

  digitalWrite(g,HIGH);

  delay(time);

  

  

  //5

  digitalWrite(a,HIGH);

  digitalWrite(b,LOW);

  digitalWrite(c,HIGH);

  digitalWrite(d,HIGH);

  digitalWrite(e,LOW);

  digitalWrite(f,HIGH);

  digitalWrite(g,HIGH);

  delay(time);

  

  //6

  digitalWrite(a,HIGH);

  digitalWrite(b,LOW);

  digitalWrite(c,HIGH);

  digitalWrite(d,HIGH);

  digitalWrite(e,HIGH);

  digitalWrite(f,HIGH);

  digitalWrite(g,HIGH);

  delay(time);

  

  //7

  digitalWrite(a,HIGH);

  digitalWrite(b,HIGH);

  digitalWrite(c,HIGH);

  digitalWrite(d,LOW);

  digitalWrite(e,LOW);

  digitalWrite(f,LOW);

  digitalWrite(g,LOW);

  delay(time);

  

  //8

  digitalWrite(a,HIGH);

  digitalWrite(b,HIGH);

  digitalWrite(c,HIGH);

  digitalWrite(d,HIGH);

  digitalWrite(e,HIGH);

  digitalWrite(f,HIGH);

  digitalWrite(g,HIGH);

  delay(time);

  

  //9

  digitalWrite(a,HIGH);

  digitalWrite(b,HIGH);

  digitalWrite(c,HIGH);

  digitalWrite(d,HIGH);

  digitalWrite(e,LOW);

  digitalWrite(f,HIGH);

  digitalWrite(g,HIGH);

  delay(time);

  

  //0

  digitalWrite(a,HIGH);

  digitalWrite(b,HIGH);

  digitalWrite(c,HIGH);

  digitalWrite(d,HIGH);

  digitalWrite(e,HIGH);

  digitalWrite(f,HIGH);

  digitalWrite(g,LOW);

  delay(time);

  

}

Servomotor (par)

 En la actividad de hoy haremos girar dos servos aplicando lo aprendido, unicamente neceistamos la placa Arduino, un Microservomotor profesional y un microservomotor, como es de costumbre ocuparemos el simulador de tinkercad.

Conectamos los puertos de tierra de la placa con cada servomotor, los puertos de potencia con la placa arduino a los 5V y el puerto de señal a d7 y d8.

la conexión quedaría de la siguiente manera:



Ejecutamos nuestro código:

/C++ code

//

#include <Servo.h>


Servo servo_7; 


Servo servo_8;


void setup()


{


servo_7. attach(7);

servo_8. attach(8);

}


void loop()


{

servo_7.write(90);

servo_8.write(90);

 delay(1000);

servo_7.write(180);

servo_8 .write(180);



delay(1000);

}

Servomotor rotación

El día de hoy veremos servomotores, hay un vídeo que lo explica de mejor manera, en esta actividad colocamos 3 servos que giraran 180 grados, así que procederé a enseñarles el código:

Ejecutamos el código:


bucle vacío ()




{




  para (ángulo = 0; ángulo < 180; ángulo = ángulo + 40)




  {




    servo1.write(ángulo);




    servo2.write(ángulo);




    servo3.write(ángulo);




    retraso (1000);




  }


  para (ángulo = 180; ángulo < 0; ángulo =20)




  {




    servo1.write(ángulo);




    servo2.write(ángulo);




    servo3.write(ángulo);




    retraso (1000);


 }


}

Sensor de proximidad

 Con esto buscamos encender un LED cada vez que el sensor detecta un objeto cercano o lejano, ya sea que se encienda en verde, amarillo o rojo.

Para ello necesitamos la placa Arduino, la protoboard, 3 LEDs, un sensor de proximidad, un emisor de sonido y objetos para detectar proximidad (en este caso ocupa resistencias).


El sensor detectará que hay un objeto cerca o lejos, por lo que emitirá un sonido y dependiendo de ello, si está cerca se iluminará en rojo, si está a media distancia será amarillo, si está lejos se iluminará en verde.



Ejecutamos el código:

const int led_rojo = 2;


const int led_amarillo = 3;


const int led_verde = 4;


altavoz int const = 9;


configuración vacía ()


{


pinMode(rojo_led, SALIDA);


pinMode(amarillo_led, SALIDA);


pinMode(led_verde, SALIDA); Serial.begin(9600);


}


bucle vacío ()


{


larga distancia = 0.01723 * readUltrasonicDistance(5, 6);


retraso (10);


Serial.println(distancia);


si ((distancia> 0) y (distancia <100))


{


escritura digital (led_rojo, ALTO);


escritura digital (led_amarillo, BAJO);


escritura digital (led_verde, BAJO); tono (altavoz, 200,300);


}


si ((distancia> 100) y (distancia <200))


{


escritura digital (led_rojo, BAJO);


escritura digital (led_amarillo, ALTO);


escritura digital (led_verde, BAJO);


tono (altavoz, 200,300);


retraso (400);


} si ((distancia> 200) y (distancia <300))


{


escritura digital (led_rojo, BAJO);


escritura digital (led_amarillo, BAJO);


escritura digital (led_verde, ALTO);


tono (altavoz, 200,300);


retraso (700);


}


si (distancia> 300)


{


escritura digital (led_rojo, BAJO);


escritura digital (led_amarillo, BAJO);


escritura digital (led_verde, BAJO);


}


}


long readUltrasonicDistance(int triggerPin, int echoPin)


{


// Instagram: @konredus 6


pinMode(pin disparador, SALIDA); // Limpiar el gatillo


digitalWrite(pin disparador, BAJO);


retrasoMicrosegundos(2);


// Establece el pin de activación en estado ALTO durante 10 microsegundos


escritura digital (pin disparador, ALTO);


retrasoMicrosegundos(10);


digitalWrite(pin disparador, BAJO);


pinMode(echoPin, ENTRADA);


// Lee el pin de eco y devuelve el tiempo de viaje de la onda de sonido en microsegundos


volver pulseIn(echoPin, ALTO);


}


Potenciómetro

 Un potenciómetro es un componente eléctrico similar a las resistencias pero cuyo valor de resistencia no es fijo, sino que varía, permitiéndonos variar la intensidad en el circuito.



Packet Tracer IoT

 Este video trata sobre la automatización de un área de trabajo en Cisco Packet Tracer. Con una explicación detallada sobre como funciona la...