/* O programa descrito abaixo tem como objetivo controlar um parque de diversões, * que efetuam a tarefas conforme os sensores analógicos absorvem as variações em seus resistores LDR, * que dividem-se para a captação destas variações. * Com três condições definidas, o micro controlador efetua as atividades com rapidez, precisão. * As condições baseiam-se de acordo com a situção de cada sensor. Sendo perseptivo a diferença entre elas. * by DojoDave * http://www.arduino.cc/en/Tutorial/AnalogInput */ int sluzE =4; // selecione a entrada analógica para o sensor esquerdo int sluzD =5; // selecione a entrada analógica para o sensor direito int releC =3; // selecione o pino 3 digital para o carrossel int releG =4; // selecione o pino 4 digital para o roda gigante int releM =5; // selecione o pino 5 digital para o chapéu mexicano int valE =0; // variável para armazenar o valor proveniente do sensor esquerdo int valD =0; // variável para armazenar o valor proveniente do sensor direito void setup() { // execução inicial pinMode(releC, OUTPUT); // declarar o carrossel como uma saída digital pinMode(releG, OUTPUT); // declarar a roda gigante como uma saída digital pinMode(releM, OUTPUT); // declarar o chapéu mexicano como uma saida digital } void loop() { // ciclo geral, reinicia a funções definidas valE = analogRead(sluzE); // ler o valor do sensor esquerdo valD = analogRead(sluzD); // ler o valor do sensor direito /* 1° Condição * Nesta primeira condição pode-se perceber que o parque irá permanecer em atividade se as taxas dos dois sensores, * obtiverem as especificações descritas no comando "IF", veja a sequência pré definida nesta condição abaixo. */ if (valD<800 && valE<800){ // declaração da variação entre os dois sensores digitalWrite(releC,HIGH); // definir o carrossel em nível alto (ligado) digitalWrite(releG,HIGH); // definir a roda gigante em nível alto (ligado) digitalWrite(releM,HIGH); // definir o chapéu mexicano em nível alto (ligado) delay(6000); // tempo de atuação em nível alto digitalWrite(releC,LOW); // definir o carrossel em nível baixo (desligado) delay(1000); // tempo de atuação em nível baixo digitalWrite(releG,HIGH); // definir a roda gigante em nível alto (ligado) delay(4000); // tempo de atuação em nível alto digitalWrite(releM,LOW); // definir o chapéu mexicano em nível baixo (desligado) delay(1000); // tempo de atuação em nível baixo digitalWrite(releC,HIGH); // definir o carrossel em nível alto (ligado) digitalWrite(releG,HIGH); // definir a roda gigante em nível alto (ligado) digitalWrite(releM,HIGH); // definir o chapéu mexicano em nível alto (ligado) delay(5000); // tempo de atuação em nível alto digitalWrite(releC,LOW); // definir o carrossel em nível baixo (desligado) digitalWrite(releG,LOW); // definir a roda gigante em nível baixo (desligado) digitalWrite(releM,LOW); // definir o chapéu mexicano em nível baixo (desligado) delay(1000); // tempo de atuação em nível baixo } /* 2° Condição * Não sendo diferente da primeira condição, este também prevalecerá os comandos definidos, *com base aos sensores, no entanto com uma diferença na captação de luminosidade do ambiente. * Sendo cada condição responsável por uma atividade distinta. */ if (valD>980 && valE<700){ // declaração da variação entre os dois sensores para o carrossel digitalWrite(releC, HIGH); // definir o carrossel em nível alto (ligado) } if(valD>980 && valE<700) { // declaração da variação entre os dois sensores para a roda gigante digitalWrite(releG, HIGH); // definir a roda gigante em nível alto (ligado) delay(1500); // tempo de atuação em nível alto digitalWrite(releG,LOW); // definir a roda gigante em nível baixo (desligado) delay(1000); // tempo de atuação em nível baixo digitalWrite(releG,HIGH); // definir a roda gigante em nível alto (ligado) delay(1500); // tempo de atuação em nível alto digitalWrite(releG,LOW); // definir a roda gigante em nível baixo (desligado) delay(1000); // tempo de atuação em nível baixo digitalWrite(releG,HIGH); // definir a roda gigante em nível alto (ligado) delay(1500); // tempo de atuação em nível alto digitalWrite(releG,LOW); // definir a roda gigante em nível baixo (desligado) delay(1000); // tempo de atuação em nível baixo digitalWrite(releG,HIGH); // definir a roda gigante em nível alto (ligado) delay(1500); // tempo de atuação em nível alto digitalWrite(releG,LOW); // definir a roda gigante em nível baixo (desligado) delay(1000); // tempo de atuação em nível baixo digitalWrite(releG,HIGH); // definir a roda gigante em nível alto (ligado) delay(1500); // tempo de atuação em nível alto digitalWrite(releG,LOW); // definir a roda gigante em nível baixo (desligado) delay(1000); // tempo de atuação em nível baixo digitalWrite(releG,HIGH); // definir a roda gigante em nível alto (ligado) delay(1500); // tempo de atuação em nível alto digitalWrite(releG,LOW); // definir a roda gigante em nível baixo (desligado) delay(1000); // tempo de atuação em nível baixo digitalWrite(releG,HIGH); // definir a roda gigante em nível alto (ligado) delay(8000); // tempo de atuação em nível alto } if(valD>980 && valE<700) { // declaração da variação entre os dois sensores para o chapéu mexicano digitalWrite(releM, HIGH); // definir o chapéu mexicano em nível alto (ligado) delay(7000); // tempo de atuação em nível alto digitalWrite(releM, LOW); // definir o chapéu mexicano em nível baixo (desligado) delay(3000); // tempo de atuação em nível baixo digitalWrite(releM, HIGH); // definir o chapéu mexicano em nível alto (ligado) delay(5000); // tempo de atuação em nível alto } /* 3° Condição * Como ultima condição o parque apresentará uma atividade diferente entre as duas outras condições, * pois a lógica do programa nos permite incrementar nestas atividades. */ if (valD<700 && valE>980){ // declaração da variação entre os dois sensores para a roda gigante digitalWrite(releG,HIGH); // definir a roda gigante em nível alto (ligado) digitalWrite(releC,HIGH); // definir o carrossel em nível alto (ligado) digitalWrite(releM,HIGH); // definir o chapéu mexicano em nível alto (ligado) delay(5000); // tempo de atuação em nível alto digitalWrite(releG, LOW); // definir a roda gigante em nível baixo (desligado) digitalWrite(releC,HIGH); // definir o carrossel em nível alto (ligado) digitalWrite(releM,HIGH); // definir o chapéu mexicano em nível alto (ligado) delay(1000); // tempo de atuação entre as condições digitalWrite(releG,HIGH); // definir a roda gigante em nível alto (ligado) delay(1500); // tempo de atuação em nível alto digitalWrite(releG,LOW); // definir a roda gigante em nível baixo (desligado) delay(1000); // tempo de atuação em nível baixo digitalWrite(releG,HIGH); // definir a roda gigante em nível alto (ligado) delay(1500); // tempo de atuação em nível alto digitalWrite(releG,LOW); // definir a roda gigante em nível baixo (desligado) delay(1000); // tempo de atuação em nível baixo digitalWrite(releG,HIGH); // definir a roda gigante em nível alto (ligado) delay(1500); // tempo de atuação em nível alto digitalWrite(releG,LOW); // definir a roda gigante em nível baixo (desligado) delay(1000); // tempo de atuação em nível baixo digitalWrite(releG,HIGH); // definir a roda gigante em nível alto (ligado) delay(1500); // tempo de atuação em nível alto digitalWrite(releG,LOW); // definir a roda gigante em nível baixo (desligado) delay(1000); // tempo de atuação em nível baixo digitalWrite(releG,HIGH); // definir a roda gigante em nível alto (ligado) delay(500); // tempo de atuação em nível alto digitalWrite(releG,LOW); // definir a roda gigante em nível baixo (desligado) delay(1000); // tempo de atuação em nível baixo digitalWrite(releG,HIGH); // definir a roda gigante em nível alto (ligado) delay(500); // tempo de atuação em nível alto } if (valD<700 && valE>980){ // declaração da variação entre os dois sensores para o chapéu mexicano digitalWrite(releM, HIGH); // definir o chapéu mexicano em nível alto (ligado) delay(8000); // tempo de atuação em nível alto digitalWrite(releM, LOW); // definir o chapéu mexicano em nível baixo (desligado) delay(3000); // tempo de atuação em nível baixo digitalWrite(releM, HIGH); // definir o chapéu mexicano em nível alto (ligado) delay(5000); // tempo de atuação em nível alto } if (valD<700 && valE>980){ // declaração da variação entre os dois sensores para o carrossel digitalWrite(releC, HIGH); // definir o carrossel em nível alto (ligado) delay(3000); // tempo de atuação em nível alto digitalWrite(releC, LOW); // definir ledE em nível baixo (desligado) delay(2500); // tempo de atuação em nível baixo digitalWrite(releC, HIGH); // definir o carrossel em nível alto (ligado) delay(5000); // tempo de atuação em nível alto } else if (valD>900 && valE>900){ // declaração da variação entre os dois sensores para condição desligado digitalWrite(releC, LOW); // definir ledE em nível baixo (desligado) digitalWrite(releM, LOW); // definir o chapéu mexicano em nível baixo (desligado) digitalWrite(releG, LOW); // definir a roda gigante em nível baixo (desligado) } }