Quantcast
Channel: Programação - GUJ
Viewing all articles
Browse latest Browse all 33090

Comando para acender led em arduino em c++

$
0
0

@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

Ler tópico completo


Viewing all articles
Browse latest Browse all 33090


<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>