Este primeiro projeto e bem simples, vamos utilizar um display lcd como menu, push buttons para selecionar as opções, led e um buzzer (para alertar que a contagem acabou e a bomba foi detonada).
Materiais:
- Arduino Uno
- Display LCD 16x2
- 4 push buttons
- Buzzer 5v
- Led alto brilho vermelho
- Potenciometro de 10k ohm para ajustar o brilho do display (cursorlight)
- 7 resistores limitadores de corrente
- Fonte de alimentação externa
Código:
#include <LiquidCrystal.h>LiquidCrystal lcd(12, 11, 5, 4, 3, 2); // entradas do lcdint buttonPushCounter = 0; // declara a variável contadoraint cutwire = 0; // push button que desativa a bomba
int cutwire1 = 0; // push button que detona a bombaint buttonState7 = 0; // push button que seleciona o tempoint buttonState8 = 0; // push button que ativa a bombaint lastButtonState = 0; // variavel para o ultimo estado do botãoint redled = 9; // ledint buzzer = 13; // buzzervoid setup(){pinMode(7, INPUT); //entradapinMode(8, INPUT);pinMode(6, INPUT);pinMode(10, INPUT);pinMode(redled, OUTPUT); //saidapinMode(buzzer,OUTPUT);lcd.begin(16,2); // inicia o display com 16 colunas e 2 linhaslcd.setCursor(0,0); // define a posição do cursorlcd.print("Tempo:");}void loop(){buttonState7 = digitalRead(7); // verifica o estado dos push buttonsbuttonState8 = digitalRead(8);cutwire = digitalRead(6);cutwire1 = digitalRead(10);if (buttonState7 != lastButtonState) { //verifica se o estado do botão foi //alteradoif (buttonState7 == HIGH){buttonPushCounter+=300; // incrementar um valor de 300delay(300);lcd.setCursor(7,1);lcd.print(buttonPushCounter); // printa o contadordelay(100);}}buttonState8 = digitalRead(8); // verifica se o botão foi pressionadoif(buttonState8 == HIGH){ //se sim inicia um laçowhile(buttonPushCounter != 0){buttonPushCounter = buttonPushCounter - 1; // enquanto o contador for //menor que 0 subtrai 1digitalWrite(redled, HIGH); // led acesodelay(500); //durante 500millisegundosdigitalWrite(redled, LOW); // led apagadodelay(500); //durante 500 millisegundos formando o laço de 1 em 1 //segundolcd.setCursor(0,0);lcd.print("Detonacao em:");lcd.setCursor(7,1);lcd.print(buttonPushCounter);if (buttonPushCounter < 10) // se a contagem for menor que 10{lcd.setCursor(8,1);lcd.print(" "); // apaga o digito "sobrando"}if (buttonPushCounter < 100){lcd.setCursor(9,1);lcd.print(" ");}if (buttonPushCounter < 1000){lcd.setCursor(10,1);lcd.print(" ");}if (buttonPushCounter < 10000){lcd.setCursor(11,1);lcd.print(" ");}cutwire = digitalRead(6);if (cutwire == HIGH && buttonPushCounter > 0) { //verifica se o botão //desativador foi precionado e se a contagem e maior que 0lcd.setCursor(0,0);lcd.print(" ");lcd.setCursor(1,0);lcd.print(" ");lcd.setCursor(0,1);lcd.print(" ");lcd.setCursor(3,0);lcd.print("Desativado ");break;}cutwire1 = digitalRead(10);if(cutwire1 == HIGH || buttonPushCounter <= 0){ //verifica se o botão //detonador foi precionado ou se a contagem chegou a zerolcd.setCursor(0,0);lcd.print(" ");lcd.setCursor(1,0);lcd.print(" ");lcd.setCursor(0,1);lcd.print(" ");lcd.setCursor(2,0);lcd.print("Terroristas ");lcd.setCursor(3,1);lcd.print("Venceram");for(int buzzer = 0;buzzer < 20 ; buzzer++){lcd.noDisplay(); // display desligadodelay(250);lcd.display(); // display ligadodelay(250);tone(13,1500);delay(500);noTone(13);delay(500);}break;}}}}
E isso ai galera o codigo e bem simples, vou deixar o link dele no http://pastebin.com/FiR6Lug1 e finalizo com um video:
Quero agradecer meu amigo meganha por ter me dado a dica de criar o blog!!
Posso estoura ela pela Internet amigo
ResponderExcluirPode sim amigo, porem vai precisar de um shild ethernet e uma pagina própria para acionamento e deflagração, dai vc pode acessar ela de qlq dispositivo que tenha acesso a internet, computadores, notes, smartphones e etc. Lembre-se que se trata de um simulador para jogos de airsoft, um meio praticado apenas para diversão de seus jogadores.
ResponderExcluirUma dúvida.
ResponderExcluirQual o valor dos resistors?
E a propósito, no video mostra a bomba com apenas dois botões, no seu esquema tem 4, pq?
ResponderExcluirOlá, seria muito complicado incluir no projeto a deflagração da bomba pelo corte de um fio? Exemplo: seriam 04 fios, a cada acionamento da bomba um desses fios (randomicamente) seria o responsável por fazer parar o relógio (contagem) e a detonação. Acaso se cortasse o fio errado, a bomba seria detonada. Vi uma assim nesse vídeo: https://www.youtube.com/watch?v=5qG2MddBU2s
ResponderExcluirBOM DIA AMIGO QUANTO VC COBRA PARA FAZER UM DESCE MAIS NA PLACA
ResponderExcluirGRATO OBRIGADO
Fazendo a plca de circuito impresso sairia em torno de R$300 reais!!
Excluirboa noite acabo de construir no simulador, fica u buzzer tocando e uma imagem escrito terroristas vencerao
ResponderExcluircomo fazer para configurar o timer ?
acabei de resolver a duvida
ResponderExcluirgostaria de saber qual a sequencia de armar a bomba, notei que acionou pela chave depois acionou uma segunda chave que não estou descobrindo o que seria