Circuitos Tinkercad

 TRABAJOS EN CLASE



Este pequeño circuito fue uno de los primeros acercamientos que tuvimos con tinkercat, aprendimos para que sirve la recistencia y tambien aprendimos que esta se pone en el catodo o sea en el negativo. Tambien bimos a conectar en la placa arduino, lo basico.



LED NORMAL E INTERMITENTE




En esta clase ocupamos una placa arduino, una da pruebas y 2 led para luego crear un codigo en el cual un led se mantuviera con luz fija y el otro intermitente. 

CODIGO:
// C++ code
//
void setup()
{
  pinMode(LED_BUILTIN, OUTPUT);
}

void loop()
{
  digitalWrite(LED_BUILTIN, HIGH);//Puerto 13 en estado alto
  delay(1000); // Wait for 1000 millisecond(s)
  digitalWrite(LED_BUILTIN, LOW);
  delay(1000); // Wait for 1000 millisecond(s)
}



SEMAFORO


Como se muestra en el video creamos un circuito mediante codigos en el cual el color de los semaforos cambia opuesta mente, es decir cuando en una esta rojo en otro verde y viceversa. 

CODIGOS:

int ROJO1 = 7;
int AMARILLO1 = 6;
int VERDE1 = 5;
int ROJO2 = 10;
int AMARILLO2 = 9;
int VERDE2 = 8;

void setup()
{
  pinMode(ROJO1, OUTPUT);
  pinMode(AMARILLO1, OUTPUT);
  pinMode(VERDE1, OUTPUT);
  pinMode(ROJO2, OUTPUT);
  pinMode(AMARILLO2, OUTPUT);
  pinMode(VERDE2, OUTPUT);
}

void loop()
{
  digitalWrite(ROJO2, HIGH);
  digitalWrite(AMARILLO2, LOW);
  digitalWrite(VERDE2, LOW);
  
  digitalWrite(ROJO1, LOW);
  digitalWrite(AMARILLO1, LOW);
  digitalWrite(VERDE1, HIGH);
  delay(3000);
  digitalWrite(VERDE1, LOW);
  delay(500);
  digitalWrite(VERDE1, HIGH);
  delay(500);
  digitalWrite(VERDE1, LOW);
  delay(500);
  digitalWrite(VERDE1, HIGH);
  delay(500);
  digitalWrite(VERDE1, LOW);
  digitalWrite(AMARILLO1, HIGH);
  delay(1000);
  digitalWrite(AMARILLO1, LOW);
  digitalWrite(ROJO1, HIGH);
  digitalWrite(ROJO2, LOW);
  digitalWrite(AMARILLO2, LOW);
  digitalWrite(VERDE2, HIGH);
  delay(3000);
  digitalWrite(VERDE2, LOW);
  delay(500);
  digitalWrite(VERDE2, HIGH);
  delay(500);
  digitalWrite(VERDE2, LOW);
  delay(500);
  digitalWrite(VERDE2, HIGH);
  delay(500);
  digitalWrite(VERDE2, LOW);
  digitalWrite(AMARILLO2, HIGH);
  delay(1000);
  digitalWrite(AMARILLO2, LOW);
  digitalWrite(ROJO2, HIGH);

}



BOTONES IO


Para esta actividad en ves de ocupar la tipica placa de pruebas ocupamos una miniplaca de pruebas, en la cual realisamos un circuito con dos leds y dos botnes donde podemos apagar estos leds gracias a dejar precionado algun boton por un tiempo. 

CODIGOS:

const int led_rojo = 3;
const int led_verde = 4; //Declarar Variables y Constantes
const int ent_pulsador = 7;
const int ent_pullDown = 8; //en este caso variables tipo entero
int lectura;
int lectura_pull;
void setup()
{
pinMode(led_rojo, OUTPUT);
pinMode(led_verde, OUTPUT); // Asignación de puertos como entrada/salida
pinMode(ent_pulsador, INPUT_PULLUP); //Se utiliza la resistencia
pinMode(ent_pullDown, INPUT); // interna de Pull_Up
}
void loop()
{
lectura = digitalRead(ent_pulsador); //Se lee el estado del pulsador
lectura_pull = digitalRead(ent_pullDown); //Se lee el estado del pulsador/resistencia
digitalWrite(led_rojo, lectura); //Se escribe en el puerto 3 el estado de la
//la lectura del pulsador
digitalWrite(led_verde, lectura_pull); ////Se escribe en el puerto 4 el estado de
//la lectura del pulsador/resistencia de
//Pull-Up
}



USO SEVOMOTOR


Esta clase estuvo mas complicada ya que tuvimos que ocupar sevomotores y esta era nuestra pimera vez con ellos; creamos un sircuito en el q podiamos controlar la velocidad y el movimiento rotatoria de estos:


CODIGO:

#include <Servo.h> // libreria para servo
Servo servo1;
Servo servo2;
Servo servo3;
int angulo = 0; //variable con valor de 0 para giro de motores 
// angulos de 45,60,90,120,135, 150,180 grados

void setup()
{
  servo1.attach(3);// señal del pin 3
  servo2.attach(5);// señal del pin 3
  servo3.attach(6);// señal del pin 3
}

void loop()
{
   for (angulo = 0; angulo < 180; angulo = angulo +10)
   {
     servo1.write(angulo); // motor se mueve de 0 a 180
     servo2.write(angulo);
     servo3.write(angulo);
     delay(1000);
   }

  for (angulo = 180; angulo < 0; angulo --)
  {
    servo1.write(angulo); // motor se mueve de 0 a 180
    servo2.write(angulo);
    servo3.write(angulo);
    delay(1000);
  }
  
}



CADENA-SERVO


En esta clase jutamos tres sevomotores en una placa para crear un sircuito con estos en el cual los tres teian el mismo angulo de rotacion y velocidad, en otra palabras sus movimientos eran iguales.

CODIGO:

#include <Servo.h> // libreria para servo
Servo servo1;
Servo servo2;
Servo servo3;
int angulo = 0; //variable con valor de 0 para giro de motores 
// angulos de 45,60,90,120,135, 150,180 grados

void setup()
{
  servo1.attach(3);// señal del pin 3
  servo2.attach(5);// señal del pin 3
  servo3.attach(6);// señal del pin 3
}

void loop()
{
   for (angulo = 0; angulo < 180; angulo = angulo +10)
   {
     servo1.write(angulo); // motor se mueve de 0 a 180
     servo2.write(angulo);
     servo3.write(angulo);
     delay(1000);
   }

  for (angulo = 180; angulo < 0; angulo --)
  {
    servo1.write(angulo); // motor se mueve de 0 a 180
    servo2.write(angulo);
    servo3.write(angulo);
    delay(1000);
  }
  
}



CIRCUITO PROCCIMIDAD



Si problemas podria decir que esta fue una de las clese que mas e me complico ya que acomode mal los cables. Lo que se buscaba encontrar con esta clase es que aprendaramos a usar un "sensor de distancia ultra sonico" en un circuito junto a unos leds que nos indicaran que tan lejos esta el odjeto.

CODIGOS:

const int led_rojo = 2;
const int led_amarillo = 3;
const int led_verde = 4;
const int parlante = 9;
void setup()
{
pinMode(led_rojo,OUTPUT);
pinMode(led_amarillo,OUTPUT);
pinMode(led_verde,OUTPUT); Serial.begin(9600);
}
void loop()
{
long distancia = 0.01723 * readUltrasonicDistance(5, 6);
delay(10);
Serial.println(distancia);
if((distancia>0)and(distancia<100))
{
digitalWrite(led_rojo,HIGH);
digitalWrite(led_amarillo,LOW);
digitalWrite(led_verde,LOW); tone(parlante,200,300);
}
if((distancia>100)and(distancia<200))
{
digitalWrite(led_rojo,LOW);
digitalWrite(led_amarillo,HIGH);
digitalWrite(led_verde,LOW);
tone(parlante,200,300);
delay(400);
} if((distancia>200)and(distancia<300))
{
digitalWrite(led_rojo,LOW);
digitalWrite(led_amarillo,LOW);
digitalWrite(led_verde,HIGH);
tone(parlante,200,300);
delay(700);
}
if(distancia>300)
{
digitalWrite(led_rojo,LOW);
digitalWrite(led_amarillo,LOW);
digitalWrite(led_verde,LOW);
}
}
long readUltrasonicDistance(int triggerPin, int echoPin)
{
pinMode(triggerPin, OUTPUT); // Clear the trigger
digitalWrite(triggerPin, LOW);
delayMicroseconds(2);
// Sets the trigger pin to HIGH state for 10 microseconds
digitalWrite(triggerPin, HIGH);
delayMicroseconds(10);
digitalWrite(triggerPin, LOW);
pinMode(echoPin, INPUT);
// Reads the echo pin, and returns the sound wave travel time in microseconds
return pulseIn(echoPin, HIGH);
}







Comentarios