¿Cuál será el código para contar a las personas que entraron o salieron de la sala en Mega 8?

No puedo escribir ningún código para usted, sin embargo, puedo darle una idea básica de cómo puede lograrlo. Para contar la cantidad de personas que entran y salen de una habitación, primero necesita una forma de detectarlas. ¿Cómo haces eso? La forma tradicional de hacerlo es usando sensores. ¿Pero qué tipo de sensores? Hay muchos sensores en el mercado, busca en ellos el sensor perfecto. Los sensores populares para este tipo de aplicaciones son ultrasónicos e IR. Si usa sensores IR, asegúrese de crear un circuito electrónico para hacerlos de largo alcance. Digamos que tiene dos sensores A y B. Coloque esos dos sensores a cada lado de una puerta de entrada. Digamos que su sensor A está fuera de la puerta de entrada y el sensor B está dentro de la sala de entrada. Ahora el algoritmo para su proyecto es muy simple. Si se detecta B después de A, significa que la persona está entrando en la habitación. Si se detecta A después de B, significa que la persona está saliendo de la habitación. Hagamos el circuito ahora, conecte su circuito a su chip atmega8. ¿Dónde te conectas? Tiene dos formas populares: conectar los sensores a los puertos ADC (ya que los sensores son analógicos) o usar amplificadores operacionales para hacer que las salidas de los sensores sean digitales y conectarse a los pines gpio de atmega8. Todo está listo. Codifique según el algoritmo en su idioma interesado. Grabar en chip. Esta es una manera simple de hacerlo y no es una manera perfecta de hacerlo. Por supuesto, si eres un principiante puedes enfrentar muchos problemas prácticos. Gracias.

este código que escribí es para atmega 16 debido al limitado no. de pines en atmega 8 ¡no puedes usar un lcd simultáneamente!

#include

#define F_CPU 16000000UL

#include

#define lcd PORTD

void adc_init () // Función de inicialización de ADC

{

ADMUX = (1 << REFS0);

ADCSRA = (1 << ADEN) | (1 << ADPS2) | (1 << ADPS1) | (1 << ADPS0);

}

unsigned int adc_read (unsigned char channel) // Función de lectura de valor ADC

{

ADMUX = 0x40 | canal; // Para seleccionar el canal ADC

ADCSRA | = (1 << ADSC); // Iniciar conversión

while (! (ADCSRA & (1 << ADIF)));

devolver ADC;

}

void lcd_command (unsigned char cmd) // para lcd

{

lcd = cmd & 0b11110000;

lcd | = 0b00000100;

_delay_ms (10);

lcd & = 0b11110000;

_delay_ms (10);

lcd = (cmd << 4) & 0b11110000;

_delay_ms (10);

lcd | = 0b00000100;

_delay_ms (10);

lcd & = 0b11110000;

_delay_ms (10);

}

void lcd_data (unsigned char da) // para enviar datos a lcd (hexadecimal)

{

lcd = da & 11110000;

lcd | = 0b00000100;

_delay_ms (10);

lcd & = 0b11110001;

_delay_ms (10);

lcd = (da << 4) & 0b11110000;

_delay_ms (10);

lcd | = 0b00000101;

_delay_ms (10);

lcd & = 0b11110001;

_delay_ms (10);

}

void lcd_String (unsigned char * str) // para imprimir cadenas de caracteres en lcd

{

char i = 0;

while (str [i]! = ‘\ 0’)

{

lcd_data (str [i]);

i ++;

}

}

void lcd_init () // inicialización lcd

{

comando_cd (0X02);

lcd_command (0X28);

comando_cd (0X06);

comando_cd (0X0C);

}

nulo lcd_num (valor int sin signo) // para imprimir números

{

int a = 0;

comando_cd (0X04);

a = val% 10;

lcd_data (a + 48);

val = val / 10;

a = val% 10;

lcd_data (a + 48);

comando_cd (0X06);

}

vacío principal()

{

cuenta int sin signo, x;

DDRA = 0x00; // conecta tu sensor en el pin1 del puerto a

DDRD = 0xff;

x = adc_read (0); // dará un valor entre 0 y 1023 ¡verifique estos valores imprimiéndolos en la pantalla LCD!

mientras (1)

{

if (cond. en el sensor IR dependiendo del valor que da cuando alguien pasa)

{

_delay_ms (60);

recuento ++;

comando_cd (0x85);

lcd_number (cuenta);

}

}

}

si tiene algún problema envíeme un correo electrónico a:

[correo electrónico protegido]

Puede usar un sensor ultrasónico y determinar qué sensor se activa primero y, en función de ese valor, puede determinar el no de persona.
Puede encontrar el código para conectar el sensor ultrasónico en extremeelectronics.co.in
Y agregue una variable int count
Donde aumenta el recuento o disminuye según el sensor que se activa primero.

Puedes ver esto
Contador de persona Arduino-DIY Laser / IR

Si bien puede usar sensores IR como dicen las otras respuestas, tenga en cuenta algunos casos extremos. Si usa el enfoque de dos sensores para saber si alguien está entrando o saliendo, entonces es posible que necesite manejar casos en los que alguien intenta irse mientras alguien más intenta ingresar. Esto provocaría disparadores en los sensores IR en un orden bastante indefinido. También es posible que deba tener en cuenta cuando alguien se acerca a la puerta y luego se da vuelta y se va. Esto le daría dos disparos de un sensor y ninguno del otro.

More Interesting

¿Por qué todo lo relacionado con TI en India?

Cómo obtener la suma de minterms y el producto de maxterms de: A'BC + AB'C + ABC '+ ABC

¿Cuáles son las tres ideas principales en arquitectura de computadoras desde la invención de la computadora?

¿Qué tipo de sistema operativo se instalará en una computadora biológica usando orgánulos celulares para computación paralela?

¿Qué libros debo leer si quiero aprender más sobre sistemas distribuidos y software de contenedores?

¿Qué pasa si un estudiante de CSE no tiene tanto conocimiento de programación?

¿Cómo debo comenzar mi preparación para el GATE 2018 en mecánica desde hoy sin entrenamiento?

¿No se puede sobrescribir directamente un Disc-RW en lugar de dejarlo en blanco primero?

¿Cuáles son sus experiencias como consultor en ciencia de datos?

Si la educación en informática hoy en día es tan fácil de acceder (MOOC, libros electrónicos gratuitos, etc.) ¿por qué no vemos otro Bill Gates / Larry Page / Jeff Bezos?

¿Cómo aprender análisis de datos con aprendizaje automático / minería de datos? ¿Están relacionadas la minería de datos y el aprendizaje automático?

¿Existe algún teorema en estadística o aprendizaje automático que muestre que "cuanto mayor es el conjunto de datos, mayor es la precisión"?

Literatura británica: ¿Están de acuerdo los académicos literarios en la legitimidad de la pregunta de autoría de Shakespeare?

En India; ¿Cuál es la mejor GPU portátil Nvidia o AMD?

¿Cuál fue la respuesta inicial a la publicación de la criptografía de clave pública?