Estacionamiento Inteligente Arduino

1:01

A continuación te propongo un ejemplo de código para Arduino utilizando el sensor de colores TC230. Este ejemplo configura los pines de control para seleccionar cuál filtro se mide (rojo, verde o azul) y determina el color predominante en función de la frecuencia medida.

Cpp


// Ejemplo para el sensor de colores TC230
// Se utilizan 5 pines:
// S0 y S1 para la escala de frecuencia
// S2 y S3 para seleccionar el filtro (rojo, azul o verde)
// sensorOut para leer la frecuencia resultante

const int s0 = 4;       // Escala de salida: controla la frecuencia
const int s1 = 5;
const int s2 = 6;       // Selección para el filtro: combinación con s3
const int s3 = 7;
const int sensorOut = 8;  // Pin de salida de señal del sensor

void setup() {
  Serial.begin(9600);
  
  // Configurar pines de control como salidas
  pinMode(s0, OUTPUT);
  pinMode(s1, OUTPUT);
  pinMode(s2, OUTPUT);
  pinMode(s3, OUTPUT);
  
  // Pin de salida del sensor como entrada
  pinMode(sensorOut, INPUT);
  
  // Configurar la escala de frecuencia.
  // En este ejemplo se activa la escala al 100% (puedes modificarla):
  digitalWrite(s0, HIGH);
  digitalWrite(s1, LOW);
  
  Serial.println("Inicio de mediciones con sensor TC230");
}

void loop() {
  unsigned long redPeriod, greenPeriod, bluePeriod;
  
  // Medir intensidad de color ROJO:
  // Configurar filtro rojo: s2 = LOW, s3 = LOW
  digitalWrite(s2, LOW);
  digitalWrite(s3, LOW);
  redPeriod = pulseIn(sensorOut, LOW);

  // Medir intensidad de color AZUL:
  // Configurar filtro azul: s2 = LOW, s3 = HIGH
  digitalWrite(s2, LOW);
  digitalWrite(s3, HIGH);
  bluePeriod = pulseIn(sensorOut, LOW);

  // Medir intensidad de color VERDE:
  // Configurar filtro verde: s2 = HIGH, s3 = HIGH
  digitalWrite(s2, HIGH);
  digitalWrite(s3, HIGH);
  greenPeriod = pulseIn(sensorOut, LOW);

  // Se imprimen los valores medidos. Valores menores indican mayor intensidad.
  Serial.print("Rojo = ");
  Serial.print(redPeriod);
  Serial.print(" | Verde = ");
  Serial.print(greenPeriod);
  Serial.print(" | Azul = ");
  Serial.println(bluePeriod);
  
  // Determinar el color predominante (se asume que el valor más pequeño corresponde a mayor intensidad)
  if (redPeriod < greenPeriod && redPeriod < bluePeriod) {
    Serial.println("Color detectado: ROJO");
  } else if (greenPeriod < redPeriod && greenPeriod < bluePeriod) {
    Serial.println("Color detectado: VERDE");
  } else if (bluePeriod < redPeriod && bluePeriod < greenPeriod) {
    Serial.println("Color detectado: AZUL");
  } else {
    Serial.println("No se puede determinar un color predominante claro.");
  }
  
  Serial.println("-----------------------------");
  delay(500);
}

Conexiones del Sensor TC230


ConexiónDetalle de la conexiónNotas
S0Conectar al pin digital 4 del ArduinoConfigurado para seleccionar la escala de frecuencia.
S1Conectar al pin digital 5 del ArduinoConfigurado junto con S0.
S2Conectar al pin digital 6 del ArduinoSelección del filtro para color rojo (s2 LOW, s3 LOW) o azul/verde.
S3Conectar al pin digital 7 del ArduinoSelección del filtro para color azul (s2 LOW, s3 HIGH) o verde (s2 HIGH, s3 HIGH).
Salida del sensor (OUT)Conectar al pin digital 8 del Arduino, configurado como entrada.Lee la frecuencia correspondiente al color filtrado.
VCCConectar a 5V en el Arduino
GNDConectar a GND en el Arduino
Este programa mide la frecuencia de salida para cada filtro y, según el valor medido, determina si el color predominante es rojo, verde o azul. Puedes ajustar los tiempos y calibrar los umbrales según las condiciones de tu ambiente y las características específicas de tu sensor TC230. ¿Necesitas ayuda con algo más?
394 days

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

Documents

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

    Assets

    No assets added.

    Afraid Gold Hoverboard

    Afraid Gold Hoverboard 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