amaury58 / Skilled Azure P.K.E. Meter

Loaded

0

0

Files

Schematic

PCB

Log InSign Up

Estacionamiento con Control de Pluma

flux

1:17

Aquí tienes un ejemplo de código para Arduino que gestiona un estacionamiento con cupo limitado de 8 vehículos. El sistema utiliza dos sensores (uno para entrada y otro para salida), una "pluma" (representada como un pin de salida que puede activar un actuador) y un display de 7 segmentos para mostrar el número actual de autos en el estacionamiento.

Cpp


// Configuración de pines
const int sensorEntrada = 2;   // Sensor que detecta autos que entran
const int sensorSalida  = 3;   // Sensor que detecta autos que salen
const int pluma       = 4;     // Señal para activar/desactivar la pluma de acceso

// Pines del display de 7 segmentos (asumiendo display de cátodo común)
const int segPins[7] = {5, 6, 7, 8, 9, 10, 11};

// Matriz con los segmentos a encender para cada dígito (0-9)
// Orden de segmentos: a, b, c, d, e, f, g (1 = encendido, 0 = apagado)
byte numeros[10][7] = {
  {1, 1, 1, 1, 1, 1, 0},  // 0
  {0, 1, 1, 0, 0, 0, 0},  // 1
  {1, 1, 0, 1, 1, 0, 1},  // 2
  {1, 1, 1, 1, 0, 0, 1},  // 3
  {0, 1, 1, 0, 0, 1, 1},  // 4
  {1, 0, 1, 1, 0, 1, 1},  // 5
  {1, 0, 1, 1, 1, 1, 1},  // 6
  {1, 1, 1, 0, 0, 0, 0},  // 7
  {1, 1, 1, 1, 1, 1, 1},  // 8
  {1, 1, 1, 1, 0, 1, 1}   // 9
};

const int capacidadMaxima = 8;  // Cupo máximo del estacionamiento
int contador = 0;              // Cantidad de autos actualmente

// Variables para control de rebote (debounce)
unsigned long lastDebounceTimeEntrada = 0;
unsigned long lastDebounceTimeSalida  = 0;
const unsigned long debounceDelay = 50;
int lastEntradaReading = LOW;
int lastSalidaReading  = LOW;
int entradaState  = LOW;
int salidaState   = LOW;

void setup() {
  // Configuración de pines para sensores y actuadores
  pinMode(sensorEntrada, INPUT);
  pinMode(sensorSalida,  INPUT);
  pinMode(pluma,         OUTPUT);
  
  // Configuración de pines para el display de 7 segmentos
  for (int i = 0; i  debounceDelay) {
    if (lecturaEntrada == HIGH && entradaState == LOW) {
      // Si se detecta la entrada de un auto
      if (contador  debounceDelay) {
    if (lecturaSalida == HIGH && salidaState == LOW) {
      // Si se detecta la salida de un auto
      if (contador > 0) {
        contador--;  // Decrementa el contador
      }
      actualizarDisplay();
      delay(500);
    }
    salidaState = lecturaSalida;
  }
  lastSalidaReading = lecturaSalida;
}

void actualizarDisplay() {
  // Actualiza el display de 7 segmentos para mostrar el valor de "contador"
  // Se asume que el contador es siempre menor a 10 (solo un dígito)
  for (int i = 0; i < 7; i++) {
    digitalWrite(segPins[i], numeros[contador][i]);
  }
}
Explicación breve:
  • Se usan dos sensores conectados a los pines 2 y 3 para detectar la entrada y salida de autos.
  • La pluma (en el pin 4) se activa (enciende) durante 1 segundo al detectar un auto que entra siempre y cuando el contador sea menor que la capacidad máxima.
  • Se implementa una rutina actualizarDisplay() para refrescar el display de 7 segmentos conectados a los pines 5 al 11.
  • Se utiliza una técnica de debounce para evitar lecturas erróneas de los sensores.
Puedes ajustar pines, tiempos y lógica según el hardware específico que estés utilizando. ¡Espero que te sea de ayuda para tu proyecto!
Power Section
Main IC Selection
Start Schematic
399 days

​
Sign up to send

To get started, talk to Flux or create a New Document.

Reviews

Documents

    Documents are markdown text files which describe project goals, capture details, or even simulation outputs.

    Assets

    No assets added.

    Skilled Azure P.K.E. Meter

    Skilled Azure P.K.E. Meter thumbnail
    Welcome to your new project. Imagine what you can build here.

    Properties

    Properties describe core aspects of the project.

    Pricing & Availability

    Distributor

    Qty 1

    Controls

    Welcome 👋

    Flux helps you build PCBs faster with an AI teammate!

    Create your account to collaborate, stay updated, fork your own version, and get instant answers from our AI agent.

        Introducing AI Placement!
        AI Placement Demo

        AI-Powered Component Placement

        Let AI place your components intelligently. AI Placement analyzes your schematic and positions components for optimal routing, signal integrity, and board density.

        From Schematic to Layout in Seconds

        Skip the tedious manual placement. AI Placement generates a starting layout you can refine, saving hours of repetitive work on every new design.

        Works With Auto-Layout

        Pair AI Placement with Auto-Layout for a complete AI-driven PCB design flow — from component placement through trace routing, all with one click.

        Try it