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
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
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
Publicar un comentario