Control de Puertos en Arduino


A continuación se muestra una posible solución para la tarea solicitada:

a. Diagrama Esquemático en Proteus
Descripción del Esquema:
  • Microcontrolador: Utilice un ATmega328 (por ejemplo, presente en una placa Arduino UNO) para implementar la lógica.
  • Entrada digital: Conecte un interruptor (o botón) al pin PC0. Asegúrese de incluir un elemento de pull-down o pull-up, según su diseño, para definir un estado estable cuando el interruptor no esté activado.
  • Salida digital: Conecte los pines del PORTB a indicadores visuales (por ejemplo, 8 LEDS) a través de resistencias limitadoras de corriente.
  • Alimentación y Tierra: Proporcione las conexiones adecuadas a VCC y GND para el microcontrolador y los dispositivos periféricos.
El circuito en Proteus deberá representar estas conexiones. La idea es que cuando el pin PC0 detecte un nivel lógico alto (1), los LEDS conectados a PORTB se enciendan (todos en 1); en caso contrario, se apaguen (todos en 0).

b. Programa en Arduino IDE
Utilice el siguiente código para lograr el comportamiento descrito:

Cpp


void setup() {
  // Configurar PORTB como salida (todos los 8 pines)
  DDRB = 0xFF;            
  // Configurar PC0 como entrada
  DDRC &= ~(1 << PC0);     
}

void loop() {
  // Leer el estado del bit 0 de PORTC
  if (PINC & 0x01) {       
    // Si PC0 es 1, poner todos los bits de PORTB en 1
    PORTB = 0xFF;        
  } else {                 
    // Si PC0 es 0, poner todos los bits de PORTB en 0
    PORTB = 0x00;        
  }
}
Explicación breve del código:
  • La función setup() configura el puerto B como salida (para controlar los LEDS) y el bit 0 del puerto C como entrada.
  • En el ciclo loop(), se lee el registro PINC; si el bit 0 es alto, se asigna el valor 0xFF (todos los bits en 1) a PORTB. Si es bajo, se asigna 0x00 (todos los bits en 0).

c. Verificación en la Simulación de Proteus
  1. Cree el Esquema en Proteus:
    • Coloque el microcontrolador ATmega328 en el diagrama.
    • Conecte un interruptor al pin PC0 y configure la resistencia de pull según su diseño (por ejemplo, usando una resistencia de 10kΩ conectada a tierra en caso de pull-up o a VCC en caso de pull-down).
    • Conecte cada uno de los pines del PORTB a un LED acompañado de su respectiva resistencia limitadora (por ejemplo, 330Ω).
  2. Carga del Programa:
    • Compile y cargue el código anterior en el microcontrolador dentro de Proteus (asegúrese de usar el archivo hex resultante del Arduino IDE).
  3. Simulación:
    • Ejecute la simulación y verifique que:
      • Al presionar el botón (generando un nivel lógico 1 en PC0), se enciendan todos los LEDS conectados a PORTB.
      • Al soltar el botón (estado lógico 0 en PC0), los LEDS se apaguen.
Esta solución cumple con la lógica requerida: la lectura del bit 0 de PORTC determina el estado de salida de PORTB.

Recuerde que el diseño en Proteus debe reflejar fielmente las conexiones eléctricas y la configuración del microcontrolador para simular correctamente el comportamiento del programa. ¡Éxito con la implementación y la simulación!
Respond to AI prompt
Respond to AI prompt
Respond to AI prompt
Respond to AI prompt
Respond to AI prompt
No schematic yet

Talk to Flux to get started.

No layout yet

When components get added to the schematic, they'll show up here.