domingo, 25 de mayo de 2025

EJERCICIO CREACION DE TABS EN HTML

 EJERCICIO CREACION DE TABS EN HTML


Abra VSCode y a partir de los siguientes codigos muestre en pantalla el resultado

Codigo: tabs.html

<!DOCTYPE html>
<html lang="es">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Tabs de Café con HTML y CSS</title>
    <link rel="stylesheet" href="style.css">
</head>
<body>

    <div class="contenedor-tabs">
        <!-- Inputs Radio (ocultos) - Uno por cada pestaña -->
        <input type="radio" id="tab-espresso" name="grupo-tabs" checked>
        <input type="radio" id="tab-latte" name="grupo-tabs">
        <input type="radio" id="tab-cappuccino" name="grupo-tabs">

        <!-- Labels (las pestañas visibles) -->
        <div class="navegacion-tabs">
            <label for="tab-espresso" class="tab-label">Espresso</label>
            <label for="tab-latte" class="tab-label">Latte</label>
            <label for="tab-cappuccino" class="tab-label">Cappuccino</label>
        </div>

        <!-- Contenido de cada pestaña -->
        <div class="contenido-tabs">
            <div class="panel-contenido" id="contenido-espresso">
                <h2>Espresso</h2>
                <p>El espresso es un café fuerte y concentrado, preparado forzando una pequeña cantidad de agua casi hirviendo a través de granos de café finamente molidos. Es la base de muchas otras bebidas de café.</p>
                <img src="https://edutechsiglo21.com/2025/imgs/espreso.jpg" alt="Taza de Espresso">
            </div>

            <div class="panel-contenido" id="contenido-latte">
                <h2>Latte</h2>
                <p>Un caffè latte, o simplemente latte, es una bebida de café hecha con espresso y leche vaporizada. Típicamente tiene una capa delgada de espuma de leche en la parte superior. Es más lechoso que un cappuccino.</p>
                <img src="https://edutechsiglo21.com/2025/imgs/latte.jpg" alt="Taza de Latte">
            </div>

            <div class="panel-contenido" id="contenido-cappuccino">
                <h2>Cappuccino</h2>
                <p>Un cappuccino es una bebida de café italiana que se prepara tradicionalmente con partes iguales de espresso doble, leche vaporizada y espuma de leche vaporizada encima. La textura es clave: la espuma debe ser rica y aterciopelada.</p>
                <img src="https://edutechsiglo21.com/2025/imgs/cappuccino.jpg" alt="Taza de Cappuccino">
            </div>
        </div>
    </div>

</body>
</html>


ATENTOS A LA EXPLICACION...

Codigo: style.css

body {
    font-family: 'Arial', sans-serif;
    background-color: #f4f4f4;
    margin: 0;
    padding: 20px;
    display: flex;
    justify-content: center;
    align-items: flex-start; /* Alinea al inicio para ver bien el contenedor */
    min-height: 100vh;
}

.contenedor-tabs {
    width: 90%;
    max-width: 700px;
    background-color: #ffffff;
    box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
    border-radius: 8px;
    overflow: hidden; /* Para que los bordes redondeados afecten a todo */
}

/* Ocultamos los radio buttons originales */
.contenedor-tabs > input[type="radio"] {
    display: none;
}

.navegacion-tabs {
    display: flex; /* Coloca los labels en línea */
    background-color: #e9ecef;
}

.tab-label {
    padding: 15px 20px;
    cursor: pointer;
    flex-grow: 1; /* Hace que cada pestaña ocupe el mismo espacio */
    text-align: center;
    color: #495057;
    border-bottom: 3px solid transparent; /* Borde inferior sutil para estado no activo */
    transition: background-color 0.3s, color 0.3s, border-bottom-color 0.3s;
}

.tab-label:hover {
    background-color: #dee2e6;
}

/* Estilos para el contenido de las pestañas */
.contenido-tabs {
    padding: 20px;
    border-top: 1px solid #dee2e6; /* Línea divisoria */
}

.panel-contenido {
    display: none; /* Ocultamos todos los paneles por defecto */
    animation: fadeIn 0.5s ease-in-out; /* Animación sutil */
}

.panel-contenido h2 {
    margin-top: 0;
    color: #333;
}

.panel-contenido p {
    line-height: 1.6;
    color: #555;
}

.panel-contenido img {
    max-width: 100%;
    height: auto;
    border-radius: 4px;
    margin-top: 15px;
    display: block;
    margin-left: auto;
    margin-right: auto;
}

/* --- La Magia del CSS --- */
/* Cuando un input radio está 'checked', mostramos su panel de contenido asociado Y estilizamos su label */

/* Estilo para la pestaña activa (label) */
#tab-espresso:checked ~ .navegacion-tabs label[for="tab-espresso"],
#tab-latte:checked ~ .navegacion-tabs label[for="tab-latte"],
#tab-cappuccino:checked ~ .navegacion-tabs label[for="tab-cappuccino"] {
    background-color: #ffffff; /* Mismo color que el fondo del contenido */
    color: #007bff;
    font-weight: bold;
    border-bottom-color: #007bff; /* Borde inferior que indica la pestaña activa */
}

/* Mostrar el panel de contenido correspondiente al radio button chequeado */
#tab-espresso:checked ~ .contenido-tabs #contenido-espresso {
    display: block;
}

#tab-latte:checked ~ .contenido-tabs #contenido-latte {
    display: block;
}

#tab-cappuccino:checked ~ .contenido-tabs #contenido-cappuccino {
    display: block;
}

/* Animación de aparición */
@keyframes fadeIn {
    from { opacity: 0; transform: translateY(10px); }
    to { opacity: 1; transform: translateY(0); }
}



TEORIA LAS TABS EN HTML

TABS EN HTML

 


¿Qué son las Tabs (Pestañas) en Diseño de Interfaces?

Las tabs (o pestañas) son un elemento de navegación y organización de contenido muy común en las interfaces de usuario (UI). Visualmente, se asemejan a las pestañas de un archivador físico o las solapas de un cuaderno.

Su funcionamiento se basa en presentar múltiples secciones de contenido relacionadas dentro de un mismo espacio o vista, pero mostrando solo una sección a la vez. El usuario puede cambiar entre estas secciones haciendo clic en la "etiqueta" o "cabecera" de la pestaña deseada.

Componentes Típicos de un Sistema de Tabs:

  1. Cabeceras de Pestaña (Tab Headers/Labels): Son los elementos clickeables (generalmente con texto descriptivo corto) que representan cada sección de contenido. La pestaña activa suele estar visualmente diferenciada (color, borde, fondo) para indicar qué contenido se está mostrando.
  2. Paneles de Contenido (Tab Panels/Content Areas): Son los contenedores donde reside el contenido específico de cada pestaña. Solo el panel asociado a la pestaña activa es visible.

Principal Utilidad de las Tabs:

La principal utilidad de las tabs es organizar y condensar una cantidad significativa de información relacionada en un espacio limitado, mejorando la usabilidad y la claridad de la interfaz.

Desglosando esto:

  1. Organización del Contenido: Permiten agrupar lógicamente información que, aunque distinta, pertenece a un mismo contexto general. Esto evita que el usuario se sienta abrumado por demasiada información a la vez.
  2. Ahorro de Espacio: Son extremadamente eficientes para interfaces donde el espacio en pantalla es un bien preciado (por ejemplo, en aplicaciones móviles, dashboards o secciones de configuración complejas). En lugar de largas páginas de scroll o múltiples páginas separadas, se presenta la información de forma compacta.
  3. Mejora de la Navegación y Descubrimiento: Facilitan al usuario encontrar y acceder rápidamente a la información específica que busca dentro de un conjunto de temas relacionados, sin tener que abandonar la vista actual o navegar a una página completamente diferente.
  4. Mantenimiento del Contexto: Al cambiar de pestaña, el usuario permanece en la misma "página" o "área" general de la aplicación, lo que ayuda a mantener el contexto y reduce la carga cognitiva.
  5. Foco en la Tarea: Al mostrar solo un panel de contenido a la vez, se ayuda al usuario a concentrarse en la información o tarea relevante de esa sección específica.

Condiciones Ideales para Usar Tabs:

Las tabs son una excelente solución cuando se cumplen ciertas condiciones:

  1. Contenido Estrechamente Relacionado: Las diferentes secciones de contenido deben estar claramente relacionadas bajo un tema o entidad común.
    • Ejemplo: En una página de perfil de usuario, las tabs "Información Personal", "Actividad Reciente", "Configuración de Privacidad" son ideales porque todas se refieren al mismo usuario.
    • Contraejemplo: No usarías tabs para "Noticias", "El Tiempo" y "Calculadora" en una misma sección, ya que son temas dispares.
  2. Secciones Mutuamente Exclusivas (Generalmente): El usuario típicamente solo necesita ver el contenido de una pestaña a la vez. No necesita comparar directamente el contenido de dos pestañas lado a lado.
    • Ejemplo: Detalles de un producto (Descripción, Especificaciones, Opiniones). El usuario suele leer una sección a la vez.
  3. Cantidad Moderada de Secciones: Idealmente entre 2 y 7 pestañas. Demasiadas pestañas pueden volverse difíciles de gestionar, especialmente en pantallas pequeñas, haciendo que las etiquetas se acorten demasiado o se desborden.
    • Alternativas para muchas secciones: Menús desplegables, navegación lateral.
  4. Contenido de Complejidad Similar: Si una pestaña tiene muchísimo más contenido o es mucho más compleja que las otras, podría desequilibrar la experiencia o sugerir que esa sección merece su propia página.
  5. Para Alternar Vistas de un Mismo Conjunto de Datos:
    • Ejemplo: Un gráfico de ventas que puede mostrarse por "Día", "Semana", "Mes".
  6. Para Dividir un Formulario Largo o Proceso en Pasos Lógicos (Aunque a veces un "wizard" o "stepper" es mejor si el orden es estrictamente secuencial):
    • Ejemplo: Configuración de una aplicación dividida en "General", "Apariencia", "Notificaciones".

Cuándo NO usar Tabs (o tener cuidado):

  • Contenido No Relacionado: Confunde al usuario.
  • Necesidad de Comparación Directa: Si el usuario necesita ver y comparar información de diferentes secciones simultáneamente.
  • Flujo Estrictamente Secuencial: Si el usuario DEBE completar la información en un orden específico (un "wizard" o "stepper" es más apropiado).
  • Demasiadas Opciones: La navegación se vuelve engorrosa.
  • Información Crítica Oculta: Si la información más importante no está en la pestaña por defecto, los usuarios podrían no encontrarla.

 


martes, 13 de mayo de 2025

TABLAS EN HTML

 TABLAS EN HTML



Conceptos Clave de las Tablas HTML

Las tablas HTML se construyen con varios elementos clave:

  1. <table>: Es el contenedor principal de toda la tabla.
  2. <tr> (Table Row): Define una fila dentro de la tabla.
  3. <th> (Table Header): Define una celda de encabezado. El texto dentro de un <th> suele mostrarse en negrita y centrado por defecto. Es semánticamente importante para la accesibilidad y los motores de búsqueda.
  4. <td> (Table Data): Define una celda de datos estándar.
  5. <caption>: Proporciona un título o descripción para la tabla. Es importante para la accesibilidad.
  6. <thead>: Agrupa el contenido del encabezado de la tabla (las filas que contienen <th>).
  7. <tbody>: Agrupa el contenido del cuerpo principal de la tabla (las filas que contienen <td>).
  8. <tfoot>: Agrupa el contenido del pie de la tabla (puede usarse para resúmenes, totales, etc.).

Usar <thead>, <tbody>, y <tfoot> no solo organiza tu código, sino que también permite a los navegadores renderizar la tabla de manera más eficiente, especialmente tablas largas, y es útil para aplicar estilos CSS específicos.


Tutorial: Creando una Tabla Simple y Bien Estructurada

Vamos a crear una tabla que muestre una lista de nombres de frutas, su color y su precio por kilo.

Paso 1: El Contenedor Principal <table>
Todo comienza con la etiqueta <table>.

<table>

    <!-- Aquí irá el contenido de nuestra tabla -->

</table>


Paso 2: Añadir un Título con <caption>
Es una buena práctica darle un título descriptivo a tu tabla.

<table>

    <caption>Lista de Precios de Frutas</caption>

    <!-- ... -->

</table>


Paso 3: Definir el Encabezado de la Tabla con <thead> y <th>
El encabezado contendrá los títulos de nuestras columnas. Usaremos una fila (<tr>) con celdas de encabezado (<th>).

<table>

    <caption>Lista de Precios de Frutas</caption>

    <thead>

        <tr>

            <th>Fruta</th>

            <th>Color</th>

            <th>Precio (por Kg)</th>

        </tr>

    </thead>

    <!-- ... -->

</table>


  • <th>Fruta</th>: Encabezado para la columna "Fruta".
  • <th>Color</th>: Encabezado para la columna "Color".
  • <th>Precio (por Kg)</th>: Encabezado para la columna "Precio".

Paso 4: Añadir el Cuerpo de la Tabla con <tbody> y <td>
Aquí es donde irán los datos reales. Cada fila (<tr>) contendrá celdas de datos (<td>) correspondientes a las columnas definidas en el encabezado.

<table>

    <caption>Lista de Precios de Frutas</caption>

    <thead>

        <tr>

            <th>Fruta</th>

            <th>Color</th>

            <th>Precio (por Kg)</th>

        </tr>

    </thead>

    <tbody>

        <tr>

            <td>Manzana</td>

            <td>Rojo</td>

            <td>$2.50</td>

        </tr>

        <tr>

            <td>Banana</td>

            <td>Amarillo</td>

            <td>$1.80</td>

        </tr>

        <tr>

            <td>Uva</td>

            <td>Morado</td>

            <td>$4.00</td>

        </tr>

        <tr>

            <td>Naranja</td>

            <td>Naranja</td>

            <td>$2.20</td>

        </tr>

    </tbody>

    <!-- ... -->

</table>


Paso 5: (Opcional pero recomendado) Añadir un Pie de Tabla con <tfoot>
El pie de tabla puede usarse para mostrar totales, promedios o notas adicionales. Para este ejemplo, podríamos poner una nota.

<table>

    <caption>Lista de Precios de Frutas</caption>

    <thead>

        <tr>

            <th>Fruta</th>

            <th>Color</th>

            <th>Precio (por Kg)</th>

        </tr>

    </thead>

    <tbody>

        <tr>

            <td>Manzana</td>

            <td>Rojo</td>

            <td>$2.50</td>

        </tr>

        <tr>

            <td>Banana</td>

            <td>Amarillo</td>

            <td>$1.80</td>

        </tr>

        <tr>

            <td>Uva</td>

            <td>Morado</td>

            <td>$4.00</td>

        </tr>

        <tr>

            <td>Naranja</td>

            <td>Naranja</td>

            <td>$2.20</td>

        </tr>

    </tbody>

    <tfoot>

        <tr>

            <td colspan="3">Precios sujetos a cambio sin previo aviso.</td>

        </tr>

    </tfoot>

</table>


  • colspan="3": Este atributo en el <td> del <tfoot> indica que esta celda debe ocupar el espacio de 3 columnas. Esto es útil cuando quieres que una celda abarque varias columnas.


Paso 6: Ejemplo Completo y Práctico:

Atentos a la explicacion para que pueda realizar el ejercicio en clase

Copie en su cuaderno:

¿Qué es una tabla en html?

Una tabla en HTML es una estructura que te permite organizar y presentar datos en filas y columnas, de manera similar a una hoja de cálculo o una tabla en un documento. Se utiliza principalmente para mostrar datos tabulares, es decir, información que se entiende mejor cuando está dispuesta en una cuadrícula.

La instrucción td colspan="3" dentro de una tabla HTML sirve para hacer que una celda de datos (<td>) se extienda horizontalmente a lo largo de varias columnas, el valor de colspan="3" indica cuantas columnas se extendera

Orientación general de la actividad:

a. Crear en su USB una carpeta llamada: TABLAS, seleccionela desde VSCode

b. Cree una archivo llamado: "tabla.html" dentro de dicha carpeta usando VSCode

c. Copie y pegue el siguiente codigo html dentro del archivo que acaba de crear

d. Use Live Server (Go Live) para ver el resultado.

e. Atienda las explicaciones del profesor y realice la tarea que se explica.

f. Presente su resultado para calificar una vez lo haya resuelto.


Codigo del archivo "tabla.html"

<!DOCTYPE html>

<html lang="es">

<head>

    <meta charset="UTF-8">

    <meta name="viewport" content="width=device-width, initial-scale=1.0">

    <title>Tabla de Frutas</title>

    <style>

        /* Estilos básicos para mejorar la legibilidad (opcional) */

        table {

            width: 80%; /* Ancho de la tabla */

            margin: 20px auto; /* Centrar la tabla */

            border-collapse: collapse; /* Une los bordes de las celdas */

            font-family: Arial, sans-serif;

        }

        caption {

            font-size: 1.2em;

            margin-bottom: 10px;

            font-weight: bold;

        }

        th, td {

            border: 1px solid #dddddd; /* Bordes para celdas */

            text-align: left; /* Alineación del texto */

            padding: 8px; /* Espaciado interno en celdas */

        }

        th {

            background-color: #f2f2f2; /* Color de fondo para encabezados */

        }

        tbody tr:nth-child(even) {

            background-color: #f9f9f9; /* Color de fondo para filas pares (efecto cebra) */

        }

        tfoot td {

            font-style: italic;

            text-align: center;

            background-color: #e9e9e9;

        }

    </style>

</head>

<body>

 

    <h1>Ejemplo de Tabla HTML Bien Estructurada</h1>

 

    <table>

        <caption>Lista de Precios de Frutas (Actualizado Hoy)</caption>

        <thead>

            <tr>

                <th>Fruta</th>

                <th>Color Principal</th>

                <th>Precio (por Kg)</th>

            </tr>

        </thead>

        <tbody>

            <tr>

                <td>Manzana Fuji</td>

                <td>Rojo</td>

                <td>$2.50</td>

            </tr>

            <tr>

                <td>Banana Cavendish</td>

                <td>Amarillo</td>

                <td>$1.80</td>

            </tr>

            <tr>

                <td>Uva Red Globe</td>

                <td>Morado</td>

                <td>$4.00</td>

            </tr>

            <tr>

                <td>Naranja Valencia</td>

                <td>Naranja</td>

                <td>$2.20</td>

            </tr>

        </tbody>

        <tfoot>

            <tr>

                <td colspan="3">Precios sujetos a cambio sin previo aviso. Consulte en tienda.</td>

            </tr>

        </tfoot>

    </table>

 

</body>

</html>


Buenas Prácticas Adicionales:

  1. Usa tablas para datos tabulares: No uses tablas para diseñar el layout de tu página (para eso están CSS Flexbox y Grid).
  2. Atributo scope: En los <th>, puedes usar el atributo scope para indicar explícitamente si el encabezado es para una columna (scope="col") o una fila (scope="row"). Esto mejora la accesibilidad.

Explicar

<thead>

    <tr>

        <th scope="col">Fruta</th>

        <th scope="col">Color</th>

        <th scope="col">Precio (por Kg)</th>

    </tr>

</thead>


  1. Estilo con CSS: Separa la estructura (HTML) de la presentación (CSS). El ejemplo incluye CSS básico para mostrar cómo se puede estilizar.

 


lunes, 12 de mayo de 2025

EL SENSOR ULTRASONICO HC-SR04

 

Sensor Ultrasónico para Arduino (HC-SR04 y similares)

1. ¿Qué es un Sensor Ultrasónico?

Un sensor ultrasónico es un dispositivo electrónico que mide la distancia a un objeto utilizando ondas sonoras de alta frecuencia (ultrasonidos), inaudibles para el oído humano (generalmente por encima de 20 kHz). Funciona de manera similar a un sonar o al sistema de ecolocalización de los murciélagos y delfines: emite un pulso de sonido y mide el tiempo que tarda en regresar el eco después de rebotar en un objeto.

2. Principio de Funcionamiento (Tiempo de Vuelo - Time of Flight, ToF):

El funcionamiento se basa en medir el "tiempo de vuelo" del ultrasonido:

  1. Emisión: El sensor emite un corto pulso de ultrasonido a través de un transductor (emisor).
  2. Propagación: La onda sonora viaja por el aire a una velocidad conocida (aproximadamente 343 metros por segundo a temperatura ambiente).
  3. Reflexión: Cuando la onda encuentra un objeto, parte de ella se refleja y regresa hacia el sensor.
  4. Recepción: Otro transductor (receptor) en el sensor detecta el eco reflejado.
  5. Cálculo: El microcontrolador (como el de Arduino) mide el tiempo transcurrido (Δt) entre la emisión del pulso y la recepción del eco.
  6. Distancia: Sabiendo el tiempo y la velocidad del sonido (v), se calcula la distancia (d) al objeto. Como el sonido recorre la distancia de ida y vuelta, la fórmula es:
    Distancia = (Tiempo * VelocidadDelSonido) / 2

3. El Modelo HC-SR04 (El más común con Arduino):

Es el sensor ultrasónico más popular y económico para proyectos con Arduino.

  • Características Principales:
    • Voltaje de Operación: 5V DC
    • Corriente de Operación: < 15mA
    • Frecuencia de Operación: 40 kHz
    • Rango de Medición: Típicamente de 2 cm a 400 cm (4 metros). La precisión disminuye con la distancia.
    • Ángulo de Detección: Aproximadamente 15-30 grados (es un cono de detección).
    • Interfaz: Digital (pines Trigger y Echo).
  • Pines del HC-SR04:

1.                  VCC: Alimentación (+5V). Conectar al pin 5V de Arduino.

2.                  Trig (Trigger/Disparador): Pin de entrada para el sensor. Arduino envía un pulso corto (10 microsegundos) a este pin para iniciar la medición. Conectar a un pin digital de Arduino (configurado como OUTPUT).

3.                  Echo (Eco): Pin de salida del sensor. Este pin se pone en ALTO (HIGH) durante el tiempo que tarda el eco en regresar. Arduino mide la duración de este pulso HIGH. Conectar a un pin digital de Arduino (configurado como INPUT).

4.                  GND: Tierra (0V). Conectar al pin GND de Arduino.

4. Conexión a Arduino:

La conexión es sencilla:

HC-SR04        Arduino

   -----------------------

     VCC   ------->   5V

     Trig  ------->   Pin Digital (ej. Pin 9)

     Echo  ------->   Pin Digital (ej. Pin 10)

     GND   ------->   GND

5. Programación con Arduino (Ejemplo Básico):

El proceso básico en el código de Arduino es:

  1. Configurar los pines Trig (OUTPUT) y Echo (INPUT).
  2. Asegurarse de que el pin Trig esté bajo (LOW).
  3. Enviar un pulso HIGH de al menos 10 microsegundos al pin Trig.
  4. Poner el pin Trig en LOW nuevamente.
  5. Medir la duración del pulso HIGH en el pin Echo usando la función pulseIn(). Esta función espera a que el pin pase a HIGH, mide el tiempo que permanece en HIGH, y luego espera a que vuelva a LOW, devolviendo la duración en microsegundos.
  6. Calcular la distancia usando la fórmula mencionada.

Código de Ejemplo (Sin Librerías):

// Pines para el sensor HC-SR04

const int trigPin = 9;

const int echoPin = 10;

 

// Variables para almacenar la duración y la distancia

long duracion;

int distanciaCm;

// float distanciaPulgadas; // Si quieres en pulgadas

 

// Velocidad del sonido en cm/microsegundo (aproximado a 20°C)

// 343 m/s = 34300 cm/s = 0.0343 cm/microsegundo

const float velocidadSonido = 0.0343;

 

void setup() {

  // Inicializar comunicación serial para ver los resultados

  Serial.begin(9600);

  Serial.println("Test Sensor Ultrasonico HC-SR04");

 

  // Configurar los pines

  pinMode(trigPin, OUTPUT); // Trig como salida

  pinMode(echoPin, INPUT);  // Echo como entrada

}

 

void loop() {

  // 1. Asegurar que Trig esté bajo inicialmente

  digitalWrite(trigPin, LOW);

  delayMicroseconds(2); // Pequeña pausa

 

  // 2. Enviar pulso de disparo (10 microsegundos)

  digitalWrite(trigPin, HIGH);

  delayMicroseconds(10);

  digitalWrite(trigPin, LOW);

 

  // 3. Medir la duración del pulso de eco en microsegundos

  // pulseIn espera a que el pin se ponga HIGH, mide el tiempo, y espera a que baje a LOW

  duracion = pulseIn(echoPin, HIGH);

 

  // 4. Calcular la distancia

  // Distancia = (Tiempo * Velocidad) / 2  (ida y vuelta)

  distanciaCm = (duracion * velocidadSonido) / 2;

 

  // Opcional: Convertir a pulgadas (1 pulgada = 2.54 cm)

  // distanciaPulgadas = distanciaCm / 2.54;

 

  // 5. Mostrar la distancia en el Monitor Serie

  Serial.print("Distancia: ");

  Serial.print(distanciaCm);

  Serial.println(" cm");

 

  // Esperar un poco antes de la siguiente medición para evitar ecos cruzados

  delay(100); // Espera 100 milisegundos

}

6. Uso de Librerías (Ej. NewPing):

Existen librerías que simplifican el uso del sensor, manejan timeouts (si no se recibe eco) y pueden ofrecer funciones más avanzadas (como promediar lecturas o manejar múltiples sensores). La librería NewPing es muy popular.

  • Ventajas de NewPing:
    • Más fácil de usar.
    • Manejo de timeouts incorporado.
    • Funciones para convertir directamente a cm o pulgadas.
    • Optimización para no bloquear el código (ping_timer()).
    • Mejor manejo de múltiples sensores.
  • Instalación: Ve a Herramientas > Administrar Bibliotecas... en el IDE de Arduino, busca "NewPing" e instálala.

 

7. Aplicaciones Comunes:

  • Robótica: Detección de obstáculos para robots móviles (evitar colisiones).
  • Medición de Nivel: Medir el nivel de líquidos en tanques (apuntando desde arriba).
  • Sistemas de Aparcamiento: Similar a los sensores de reversa en los coches.
  • Seguridad: Detección de presencia en una zona determinada.
  • Proyectos Interactivos: Detectar la proximidad de una persona para activar luces, sonido, etc.
  • Automatización: Medir la altura de objetos en una cinta transportadora.

8. Ventajas:

  • Bajo Costo: Son muy económicos.
  • Fácil de Usar: Interfaz simple con Arduino.
  • Sin Contacto: Mide la distancia sin necesidad de tocar el objeto.
  • Buena Precisión para muchas aplicaciones: Suficiente para robótica básica, medición de nivel, etc.
  • Funciona en Oscuridad: No depende de la luz ambiental.

9. Limitaciones y Desventajas:

  • Superficies Absorbentes/Irregulares: Materiales blandos (telas, espuma) o superficies muy anguladas pueden absorber o desviar el sonido, dificultando la detección o dando lecturas erróneas.
  • Distancia Mínima: Tienen una distancia mínima de detección (generalmente 2 cm) porque el emisor necesita tiempo para apagarse antes de que el receptor pueda escuchar el eco de objetos muy cercanos.
  • Rango Limitado: El rango máximo (ej. 4m para HC-SR04) puede no ser suficiente para todas las aplicaciones.
  • Ángulo de Detección (Cono): No detectan un punto exacto, sino dentro de un cono. Objetos pequeños o fuera del centro del cono pueden no ser detectados correctamente.
  • Factores Ambientales: La velocidad del sonido varía con la temperatura, humedad y presión atmosférica. Para alta precisión, se debería compensar la temperatura.
  • Interferencia: Múltiples sensores ultrasónicos operando cerca pueden interferir entre sí si sus pulsos se cruzan. Se requieren técnicas de secuenciación o librerías como NewPing para manejarlos.
  • Objetos Muy Pequeños o Delgados: Pueden ser difíciles de detectar si no reflejan suficiente sonido hacia el sensor.

10. Consejos y Consideraciones:

  • Alimentación Estable: Asegúrate de que el sensor reciba 5V estables. Problemas de alimentación pueden causar lecturas erráticas.
  • Entorno Libre: El área entre el sensor y el objetivo debe estar despejada.
  • Superficie del Objetivo: Los mejores resultados se obtienen con superficies planas, duras y perpendiculares al sensor.
  • Compensación de Temperatura: Para mayor precisión, mide la temperatura ambiente y ajusta el valor de la velocidad del sonido en tus cálculos. Velocidad (m/s) ≈ 331.4 + 0.6 * Temperatura (°C).
  • Filtrado/Promediado: Si las lecturas son ruidosas, toma varias medidas y calcula la media o la mediana para obtener un valor más estable.
  • Manejo de Múltiples Sensores: Si usas varios, dispáralos secuencialmente (uno después del otro) para evitar interferencias, o usa librerías como NewPing que ayudan a gestionarlo.

EJERCICIO CREACION DE TABS EN HTML

 EJERCICIO CREACION DE TABS EN HTML Abra VSCode y a partir de los siguientes codigos muestre en pantalla el resultado Codigo : tabs.html ...