Ir ao conteúdo
  • Cadastre-se

Wesley Guntzel

Membro Júnior
  • Posts

    3
  • Cadastrado em

  • Última visita

Tudo que Wesley Guntzel postou

  1. Obrigado @Isadora Ferraz. Porém ainda não encontrei um complemento de código correto para meu caso.
  2. Boa noite. Estou fazendo um projeto de um semáforo diferenciado, acessível para cegos. Ele funcionará de modo que quando todos os sinais de carros estiverem vermelhos, o sinal do pedestre abre e o pedestre passa. Caso o pedestre for cego, o mesmo deverá apertar um botão localizado em uma altura acessível do chão, ao lado do poste do semáforo e aguardar um aviso sonoro que é acionado quando o semáforo de pedestre ficar verde. Por enquanto estou usando um buzzer como emissor de som. Entretanto, não estou conseguindo adaptar ao meu projeto o pressionar do botão para ativar o som do buzzer, pois quando o sinal de pedestre abre, o buzzer toca toda vez, e não é isso que eu quero... somente se o botão for pressionado previamente. Eis o código Arduíno que estou usando: /* Modos: 1- Normal 2- Amarelo Piscante 3- Manual Estados: 1- 1Vd - 2Vm 2- 1Am - 2Vm 3- 1Vm - 2Vd 4- 1Vm - 2Am Velocidades: 1-Rápido 2-Normal 3-Lento */ #include <EEPROM.h> #define pin1Vm 10 #define pin1Am 9 #define pin1Vd 7 #define pin2Vm 6 #define pin2Am 5 #define pin2Vd 4 #define pinpedver 11 #define pinpedvm 13 #define botao 3 #define buzzer 8 #define pressionado 0 #define ligado 0 #define delayV1 5; #define delayV1Am 1; #define delayV2 20; #define delayV2Am 6; #define delayV3 80; #define delayV3Am 12; byte modo; byte estado; byte velocidade; byte modoAnt; byte estadoAnt; byte startMode; byte startVelo; byte pisca; int delayControl; int cicloSemaforo; String comando; char serialBuff; void setup() { pinMode(pin1Vm, OUTPUT); //Pino Vermelho - Semaforo 1 pinMode(pin1Am, OUTPUT); //Pino Amarelo - Semaforo 1 pinMode(pin1Vd, OUTPUT); //Pino Verde - Semaforo 1 pinMode(pin2Vm, OUTPUT); //Pino Vermelho - Semaforo 2 pinMode(pin2Am, OUTPUT); //Pino Amarelo - Semaforo 2 pinMode(pin2Vd, OUTPUT); //Pino Verde - Semaforo 2 pinMode(pinpedver, OUTPUT); //Pino Verde - Semaforo pedestre pinMode(pinpedvm, OUTPUT); //Pino Vermelho - Semaforo pedestre pinMode(buzzer, OUTPUT); //Buzzer pinMode(pressionado, OUTPUT); //botão pressionado pinMode(botao, OUTPUT); //botão pressionado //Lê modo de inicio e grava o próximo modo de inicio na EEPROM startMode = EEPROM.read(0); if (startMode == 0){ EEPROM.write(0, 1); } else { EEPROM.write(0, 0); } //Lê modo de inicio e grava o próximo modo de inicio na EEPROM startVelo = EEPROM.read(1); if ((startVelo < 1) || (startVelo > 3)) { startVelo = 2; //Velocidade Inicial = Normal EEPROM.write(1, 2); } //Inicia as variaveis modo = startMode + 1; estado = 1; velocidade = startVelo; pisca = 0; delayControl = 0; cicloSemaforo = 0; modoAnt = 99; //Força a primeira execução estadoAnt = 99; //Força a primeira execução comando = ""; Serial.begin(9600); } void loop() { if (delayControl < 49) { //Executa 49 ciclos sem atividade, porém recebendo comandos. As atividades são executadas apenas no ciclo 50. while (Serial.available() > 0) { serialBuff = Serial.read(); comando = comando + serialBuff; } if (comando != "") { if ((comando.substring(0,1) == "V") || (comando.substring(0,1) == "v")) { //Velocidade if (comando.substring(1,2) == "1") { velocidade = 1; } //Rápido if (comando.substring(1,2) == "2") { velocidade = 2; } //Normal if (comando.substring(1,2) == "3") { velocidade = 3; } //Lento cicloSemaforo = 0; EEPROM.write(1, velocidade); } if ((comando.substring(0,1) == "M") || (comando.substring(0,1) == "m")) { //Modo if (comando.substring(1,2) == "1") { modo = 1; } //Normal if (comando.substring(1,2) == "2") { modo = 2; } //Amarelo Piscante if (comando.substring(1,2) == "3") { modo = 3; } //Manual cicloSemaforo = 0; delayControl = 50; estadoAnt = 99; //Força a execução } if (comando.substring(0,1) == "*") { //Muda o estado do semáforo estado++; if (estado > 6) { estado = 1; } delayControl = 50; //Força a execução imediata } comando = ""; } delayControl++; } else { if ((modo == 1) || (modo == 3)) { //Modo Automático ou Manual if (modo != modoAnt) { //Inicia o estado para quando o modo for alterado para normal (também é executado quando iniciado) estado = 1; cicloSemaforo = 0; } if (cicloSemaforo > 0) { //Conta os ciclos para mudar de fase cicloSemaforo--; } else { if (modo == modoAnt) { //Inicia o estado para quando o modo for alterado para normal (também é executado quando iniciado) if (modo == 1) { //Se for modo Automático estado++; if (estado > 6) { estado = 1; } } } //Atualiza o tempo do ciclo if ((estado == 1) || (estado == 3)) { switch (velocidade) { case 1: //Rápido cicloSemaforo = delayV1; break; case 2: //Normal cicloSemaforo = delayV2; break; default: //Lento cicloSemaforo = delayV3; break; } } else { switch (velocidade) { case 1: //Rápido cicloSemaforo = delayV1Am; break; case 2: //Normal cicloSemaforo = delayV2Am; break; default: //Lento cicloSemaforo = delayV3Am; break; } } } //Processa o Estado if (estado != estadoAnt) { switch (estado) { case 1: //1Vd - 2Vm // Primeira Mudança - 1: verde, 2: vermelho digitalWrite(pin1Vm, LOW); digitalWrite(pin1Am, LOW); digitalWrite(pin2Vd, LOW); digitalWrite(pin2Am, LOW); digitalWrite(pin1Vd, HIGH); digitalWrite(pin2Vm, HIGH); digitalWrite(pinpedvm, HIGH); break; case 2: //1Am - 2Vm // Segundo sinal, 1: amarelo, 2:vermelho digitalWrite(pin1Vm, LOW); digitalWrite(pin1Vd, LOW); digitalWrite(pin2Vd, LOW); digitalWrite(pin2Am, LOW); digitalWrite(pin1Am, HIGH); digitalWrite(pin2Vm, HIGH); digitalWrite(pinpedvm, HIGH); break; case 3: //1Vm - 2Vd// Terceiro sinal, 1: vermelho, 2:verde digitalWrite(pin1Vd, LOW); digitalWrite(pin1Am, LOW); digitalWrite(pin2Am, LOW); digitalWrite(pin2Vm, LOW); digitalWrite(pin1Vm, HIGH); digitalWrite(pin2Vd, HIGH); digitalWrite(pinpedvm, HIGH); break; case 4: //1Vm - 2Am// Quarto sinal, 1: vermelho, 2: amarelo digitalWrite(pin1Vd, LOW); digitalWrite(pin1Am, LOW); digitalWrite(pin2Vd, LOW); digitalWrite(pin2Vm, LOW); digitalWrite(pin1Vm, HIGH); digitalWrite(pin2Am, HIGH); digitalWrite(pinpedvm, HIGH); break; case 5: //1Vm - 2Vm // Quinto sinal, 1: vermelho, 2: vermelho, semáforo pedestre verde e buzina ligada digitalWrite(pin1Vd, LOW); digitalWrite(pin1Am, LOW); digitalWrite(pin2Vd, LOW); digitalWrite(pin2Vm, HIGH); digitalWrite(pin1Vm, HIGH); digitalWrite(pin2Am, LOW); digitalWrite(pinpedvm, LOW); digitalWrite(pinpedver, HIGH); tone(buzzer, 440, 300); // play tone 57 (A4 = 440 Hz) digitalWrite(11, LOW); delay(1000); // Wait for 1000 millisecond(s tone(buzzer, 494, 300); // play tone 59 (B4 = 494 Hz) digitalWrite(11, LOW); delay(buzzer); // Wait for 1000 millisecond(s tone(8, 523, 300); // play tone 60 (C5 = 523 Hz) break; case 6: //1Vm - 2Vm // Quinto sinal, 1: amarelo, 2: vermelho, semáforo pedestre vermelho e buzzer tocando digitalWrite(pin1Vd, LOW); digitalWrite(pin1Am, HIGH); digitalWrite(pin2Vd, LOW); digitalWrite(pin2Vm, HIGH); digitalWrite(pin1Vm, LOW); digitalWrite(pin2Am, LOW); digitalWrite(pinpedvm, HIGH); digitalWrite(pinpedver, LOW); break; } estadoAnt = estado; } } if (modo == 2) { //Modo Piscante digitalWrite(pin1Vm, LOW); digitalWrite(pin1Vd, LOW); digitalWrite(pin2Vm, LOW); digitalWrite(pin2Vd, LOW); if (pisca == 0) { digitalWrite(pin1Am, LOW); digitalWrite(pin2Am, LOW); pisca = 1; } else { digitalWrite(pin1Am, HIGH); digitalWrite(pin2Am, HIGH); pisca = 0; } } delayControl = 0; modoAnt = modo; } delay(10); } Alguém pode me auxiliar a adaptar ao botão? Preciso para um projeto escolar É muito importante pra mim Fico grato.
  3. Olá! Tenho um notebook Acer 5338, processador Genuine Intel t1600 e memória de 2 gb. Porém, ele está muito lento e nem a formatação ajudou para melhorá-lo. É possível trocar o processador e a memória?

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!