@paulo9 escreveu:
Bom dia pessoal,estou começando a pegar conceitos em c++ agora,estou com um problema.Criei um código para simular um semáforo de carros e de pedestre,porém passarei a seguinte descrição do problema:Agora o semáforo terá opção de pânico. Caso o botão seja acionado 6 vezes consecutivas,o semáforo para o carro independente da luz que esteja, irá automaticamente para o amarelo e em seguida, para o vermelho. E o semáforo do pedestre irá para a luz verde assim que o led vermelho estiver aceso no semáforo dos carros.Segue o código:
//projeto 4-Semáforo interativo int carRed = 12;//Definindo os leds dos carros int carYellow =11; int carGreen =10; int pedRed =9; //Definindo os leds dos pedestres int pedGreen =8; int button =2; //pino do botão int crossTime = 10000; // Tempo de travessia unsigned long changeTime; //Tempo que o botão foi pressionado pela ultima vez void setup(){ pinMode(carRed,OUTPUT); pinMode(carYellow,OUTPUT); pinMode(carGreen,OUTPUT); pinMode(pedRed,OUTPUT); pinMode(pedGreen,OUTPUT); pinMode(button,IMPUT); digitalWriter(carGreen,HIGH); digitalWriter(pedRed,HIGH); } void loop(){ int state = digitalRead(button);//Verifica se o botão foi pressionado e se faz mais de 5 segs desde a ultima vez if(state==HIGH&&(millis()-changeTime)>5000){ // chama a função que altera as luzes delay(4000); changeLights(); } } void changeLights(){ digitalWrite(carGreen,LOW); //Apaga luz verde digitalWrite(carYellow,HIGH); // Ascende luz amarela delay(4000); digitalWrite(carYellow,LOW); //Apaga luz amarela digitalWrite(carRed,HIGH); // Ascende luz vermelha digitalWrite(pedRed,LOW); //Apaga luz vermelha do pedestre digitalWrite(pedGreen,HIGH); //Acende luz verde pedestre delay(crossTime); //Aguarda crossTime //Pisca pedGreen for(int x=0;x<10;x++){ digitalWrite(pedGreen,HIGH); delay(250); digitalWrite(pedGreen,LOW); delay(250); } digitalWrite(pedRed,HIGH); //Acende luz vermelha pedestre digitalWrite(carRed,LOW); //Apaga luz vermelha carro digitalWrite(carGreen,HIGH); //Acende luz verde carro changeTime = millis(); }
Mensagens: 4
Participantes: 3