Semana 6

"Tinkercad"

04 DE OCTUBRE 2023


Imagen Semana 1


resumen de la clase

En la sesión virtual de hoy, iniciamos un nuevo módulo de aprendizaje con un enfoque en la electrónica. La profesora nos brindó una introducción exhaustiva a los conceptos básicos de la electrónica, destacando los elementos fundamentales y sus aplicaciones prácticas en diversos contextos.
Durante la explicación inicial, nos sumergimos en el mundo de los componentes electrónicos, aprendiendo sobre resistencias, condensadores, transistores y otros elementos esenciales en el diseño y la implementación de circuitos electrónicos. La profesora ilustró cada concepto con ejemplos prácticos y aplicaciones cotidianas, lo que nos ayudó a comprender mejor cómo estos elementos fundamentales funcionan en conjunto para crear dispositivos y sistemas complejos.

 Llegué tarde y no entendía:( 




CORRIENTE

I o i

Se crea apartir del movimiento de los electrones. Fluye en un circuito cerrado y es uniforme en todos los puntos de ese ciclo

VOLTAJE

V o E

El vltaje es la fuerza que transporta la corriente, también llamada presión eléctrica

AMPERIOS

A

Miden la intensidad de la corriente eléctrica. Son una medida que indica la cantidad de electrones en una corriente electrica.

POTENCIA

W

Es la cantidad de energia que se consume en un momento determinado. La potencia se ide en watts


V = I * R
La ley de Ohm establece que el voltaje (V) en un circuito es igual a la corriente (I) multiplicada por la resistencia (R). Es una relación fundamental en la teoría de circuitos eléctricos.

Zhores A. y los Semiconductores

Referente 1

Como usar una Protoboard

Referente 2



Código para el Arduino


                    const int pinTrigger = 2;
                    const int pinEcho = 3;
                    const int pinLed = 4;
                    const int pinBuzzer = 5;
                    float tiempo = 0;
                    float distancia = 0;
            
                    void setup()
                    {
                        pinMode(pinTrigger, OUTPUT);
                        pinMode(pinEcho, INPUT);
                        pinMode(pinLed, OUTPUT);
                        pinMode(pinBuzzer, OUTPUT);
                        Serial.begin(9600);
                    }
            
                    void loop()
                    {
                        digitalWrite(pinTrigger, LOW);
                        delayMicroseconds(4);
                        digitalWrite(pinTrigger, HIGH);
                        delayMicroseconds(10);
                        digitalWrite(pinTrigger, LOW);
                        tiempo = pulseIn(pinEcho, HIGH);
                        distancia = 0.0172 * tiempo;
                        /* Serial.println("Distancia (cm)");
                        Serial.println (distancia);
                        delay (500);*/
                        if (distancia > 100) {
                            noTone(pinBuzzer);
                            digitalWrite(pinLed, LOW);
                        } else {
                            tone(pinBuzzer, 1000);
                            digitalWrite(pinLed, HIGH);
                            delay(distancia * 10);
                            noTone(pinBuzzer);
                            digitalWrite(pinLed, LOW);
                            delay(distancia * 10);
                        }
                    }

Arduino proporcionado por la profesora

Imagen

Arduino corregido

Imagen

• Inicialmente hubieron dos errores, el primero era en el cable que conectaba la carga negativa con el placa de inserción, y el segundo en el cable que conectaba Arduino con carga el -3 con el Sensor de distancia HC - SR04
• Se calcula la distancia multiplicando el tiempo medido por un factor de conversión (0.0172 en este caso). Este factor se utiliza para convertir el tiempo en una distancia en centímetros.

"Armado de circuitos"

06 DE OCTUBRE 2023


Imagen Semana 1


resumen de la clase

Hoy, durante la sesión de laboratorio, se presentó una situación inesperada cuando dos de los miembros del equipo estuvieron ausentes, lo que nos llevó a ajustar el enfoque del trabajo del día. Aprovechamos el tiempo disponible para revisar el diseño y la implementación de un circuito en el entorno de Arduino, recordando los conceptos fundamentales y aplicando el conocimiento adquirido en la sesión anterior.
Dos de mis compañeros se encargaron de armar el circuito en Arduino, avanzando paso a paso con precaución y precisión para garantizar su correcta implementación. Mientras tanto, asumí la responsabilidad de avanzar en la programación del segundo circuito para agilizar el proceso general.

Conclusiones del primer circuito 1:

• Si la distancia es mayor que 100 centímetros (distancia > 100), se apaga un zumbador (buzzer) y se apaga un LED.
• De lo contrario, se activa el zumbador a una frecuencia de 1000 Hz, se enciende un LED durante un período de tiempo proporcional a la distancia, se apaga el zumbador y el LED durante otro período de tiempo proporcional a la distancia.
•Este código es utilizado en proyectos que requieren medición de distancia con un sensor ultrasónico y una respuesta en función de esa distancia, como un detector de obstáculos, un sistema de estacionamiento automático o un detector de proximidad.

Circuito 1 (youtube).

Circuito 1 (Tinkercad).



Código para el Arduino 2


        // Pines utilizados
        #define LEDVERDE 2
        #define LEDAMARILLO 3
        #define LEDROJO 4
        #define TRIGGER 5
        #define ECHO 6
        #define BUZZER 9
        
        // Constantes
        const float sonido = 34300.0; // Velocidad del sonido en cm/s
        const float umbral1 = 30.0;
        const float umbral2 = 20.0;
        const float umbral3 = 10.0;
        void setup() {
        
            // Iniciamos el monitor serie
            Serial.begin(9600);
          // Modo entrada/salida de los pines
        
            pinMode(LEDVERDE, OUTPUT);       
            pinMode(LEDAMARILLO, OUTPUT);       
            pinMode(LEDROJO, OUTPUT);       
            pinMode(ECHO, INPUT);        
            pinMode(TRIGGER, OUTPUT);       
            pinMode(BUZZER, OUTPUT);
      
            // Apagamos todos los LEDs
        
            apagarLEDs();
        }
    void loop() {
        
            // Preparamos el sensor de ultrasonidos     
            iniciarTrigger();
            // Obtenemos la distancia
            float distancia = calcularDistancia();
 
            // Apagamos todos los LEDs
        
            apagarLEDs();

            // Lanzamos alerta si estamos dentro del rango de peligro     
            if (distancia < umbral1)
            {     
            // Lanzamos alertas      
            alertas(distancia);      
            }     
        }
 
        // Apaga todos los LEDs      
        void apagarLEDs()     
        {     
            // Apagamos todos los LEDs
            digitalWrite(LEDVERDE, LOW);
            digitalWrite(LEDAMARILLO, LOW);
            digitalWrite(LEDROJO, LOW);
        }       
        // Función que comprueba si hay que lanzar alguna alerta visual o sonora        
        void alertas(float distancia)      
        { 
            if (distancia < umbral1 && distancia >= umbral2)
            {      
            // Encendemos el LED verd        
            digitalWrite(LEDVERDE, HIGH);
 tone(BUZZER, 2000, 200);  
            }
            else if (distancia < umbral2 && distancia > umbral3)
            {
            // Encendemos el LED amarillo
            digitalWrite(LEDAMARILLO, HIGH);
            tone(BUZZER, 2500, 200);
            }
            else if (distancia <= umbral3)
            {
            // Encendemos el LED rojo
            digitalWrite(LEDROJO, HIGH);
            tone(BUZZER, 3000, 200);
            }
        }
        // Método que calcula la distancia a la que se encuentra un objeto.
        // Devuelve una variable tipo float que contiene la distancia
        float calcularDistancia()
        {
            // La función pulseIn obtiene el tiempo que tarda en cambiar entre estados, en este caso a HIGH
            unsigned long tiempo = pulseIn(ECHO, HIGH);
            // Obtenemos la distancia en cm, hay que convertir el tiempo en segudos ya que está en microsegundos
            // por eso se multiplica por 0.000001
            float distancia = tiempo * 0.000001 * sonido / 2.0;
            Serial.print(distancia);
            Serial.print("cm");
            Serial.println();
            delay(500);
            return distancia;
        }
      
        // Método que inicia la secuencia del Trigger para comenzar a medir
        void iniciarTrigger()
        {

            // Ponemos el Triiger en estado bajo y esperamos 2 ms
            digitalWrite(TRIGGER, LOW);
            delayMicroseconds(2);
            // Ponemos el pin Trigger a estado alto y esperamos 10 ms
            digitalWrite(TRIGGER, HIGH);
            delayMicroseconds(10);
            // Comenzamos poniendo el pin Trigger en estado bajo
            digitalWrite(TRIGGER, LOW);

        }
                

Arduino proporcionado por la profesora

Imagen

Proceso del trabajo

Imagen Imagen Imagen Imagen Imagen

• La función alertas(float distancia) toma la distancia como entrada y enciende diferentes LEDs y zumbadores en función de la distancia medida. Por ejemplo, si la distancia está en el rango entre umbral1 y umbral2, se enciende el LED verde y se activa el zumbador a 2000 Hz durante 200 milisegundos.
• Utiliza el sensor ultrasónico para medir la distancia. Mide el tiempo que tarda en regresar el eco del pulso ultrasónico y calcula la distancia en centímetros. Luego, imprime la distancia en el monitor serie y devuelve el valor de la distancia.
• Este código utiliza un sensor ultrasónico para medir distancias y activa LEDs y un zumbador en función de la distancia medida para proporcionar alertas visuales y sonoras. Es un proyecto típico para crear un sistema de detección de obstáculos o un dispositivo de medición de distancia.


Una vez completadas las tareas asignadas, nos dispusimos a grabar el proceso de construcción y programación, siguiendo la indicación de la profesora para documentar meticulosamente nuestros avances. Mientras algunos grupos finalizaban sus tareas, nos centramos en registrar cada paso con atención al detalle, reconociendo la importancia de mantener un registro exhaustivo de nuestro trabajo para futuras referencias y evaluaciones.
Sin embargo, en medio de la sesión de grabación, presenciamos un contratiempo cuando otro equipo experimentó dificultades con un dispositivo Arduino, que aparentemente dejó de funcionar de manera inesperada.

 Dato: Lamentablemente no se pudo hacer nada 



Al finalizar la clase, la profesora nos brindó instrucciones precisas sobre los materiales necesarios para la siguiente sesión, enfocándonos en la preparación proactiva para las actividades planificadas. Siguiendo sus indicaciones, tomamos nota de los elementos requeridos y nos comprometimos a adquirirlos para garantizar un progreso sin contratiempos en las próximas etapas del proyecto.