Retornar
ao topo
ao topo
Classifique este tópicoPéssimoRuimMedianoBomÓtimo

Autor
Mensagem
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(); } }
|
|
|
Todos os horários são GMT - 3 Horas | Você 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