CENTRAL DE ATENDIMENTO
De segunda à sexta das 8:00 às 17:30
(11) 3522-7626 / vendas@robocore.net
Retornar
ao topo

Classifique este tópicoPéssimoRuimMedianoBomÓtimo
Autor
Mensagem

jefferpiller2

Level 0
0 xp

Registrado em:
02/07/2020





Mensagens:
1

jefferpiller2

Responder com citações
Mensagem Qui Jul 02, 2020 7:12 pm
CONTADOR DE PESSOAS EM AMBIENTE
Boa noite a todos ,

Estou em um protótipo de um contador de pessoas em determinado ambiente , porem estou com dificuldade da logica para usar dois sensores e determinar o sentido para leitura de entrada e de saída .

E a segunda dúvida é incrementar uma forma de selecionar uma contagem máxima de pessoas atravez de algum botão ou dip switch.

Vou usar um Arduino Nano.


desde já , muito obrigado pela atenção ..



o código é o seguinte :

//
// PROJETO :
//
// !!!CONTROLADOR DE OCUPAÇÃO DE AMBIENTES!!!
// !!!Jeferson Fernando Piller!!!

//CONSTANTES

const int SensorA = 2;
const int SensorB = 3;

const int led_vermelho = 12;
const int led_verde = 11;
const int buzzer = 10;

//VARIAVEIS PARA CONTADOR SOMAR

int contador = 0;
int estado_SensorA = 0;
int estadoAnt_SensorA = 1;

//VARIAVEIS PARA CONTADOR DESCENDENTE

int estado_SensorB = 0;
int estadoAnt_SensorB = 1;

void (*funcReset)() = 0;

void setup() {
Serial.begin(9600);

pinMode(SensorA, INPUT_PULLUP);
pinMode(SensorB, INPUT_PULLUP);
pinMode(led_vermelho, OUTPUT);
pinMode (led_verde,OUTPUT);
pinMode (buzzer,OUTPUT);
}

void loop() {

estado_SensorA = digitalRead(SensorA);
estado_SensorB = digitalRead(SensorB);

if (estado_SensorA != estadoAnt_SensorA) {

if (estado_SensorA == HIGH) {

  contador++;
  Serial.println("+");
  Serial.print("pessoas no ambiente = ");
  Serial.println(contador);
  
} 
}
estadoAnt_SensorA = estado_SensorA;

if (estado_SensorB != estadoAnt_SensorB ) {

if (estado_SensorB == HIGH) {
 
  contador--;
  Serial.println("-");
  Serial.print("pessoas no ambiente = ");
  Serial.println(contador);
 
} 
}

estadoAnt_SensorB = estado_SensorB ;

if (contador <=4) { // manter led verde on
digitalWrite(led_vermelho,LOW);
digitalWrite(led_verde,HIGH);
}

else {
digitalWrite(buzzer, LOW);
digitalWrite(led_verde,LOW);
}

if ( contador >=5) { // aciona led alerta de limite maximo de pessoas
digitalWrite(led_vermelho,HIGH);
digitalWrite(led_verde,LOW); // led verde off
}

if (contador >=6) { // aciona buzzer
digitalWrite(buzzer, HIGH);
digitalWrite(led_verde,LOW);
} else {
digitalWrite(led_vermelho, LOW);
digitalWrite(led_verde,LOW);
}

if (contador <=-1){ // reseta
funcReset();

}
}
Mostrar mensagens desde a última:




Ir para:  
Todos os horários são GMT - 3 HorasVocê não tem permissão para escrever novas mensagens
v não tem permissão para responder às mensagens
Você não tem permissão para editar suas mensagens
Você não tem permissão para deletar suas mensagens
Você não tem permissão para classificar tópicos
Você não tem permissão para classificar mensagens
Você não tem permissão para votar em enquetes
Anexar downloads : Proibido
Fazer Download de Arquivos: Permitido
Powered by phpBB © 2001 phpBB Group