Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <Wire.h> //Inclui a biblioteca do display 16x2
- #include <LCD.h> //Inclui a biblioteca do display 16x2
- #include <LiquidCrystal_I2C.h> //Inclui a biblioteca do módulo lc2
- #include <LiquidCrystal.h> // Inclui a biblioteca do LCD
- int botao = 8; // Declaração da variável "botão" onde determino que será utilizado meu pushbutton no pino digital "8" do arduino
- //int botao = 2; // Declaração da variável "botão" onde determino que será utilizado meu pushbutton no pino digital "8" do arduino
- LiquidCrystal_I2C lcd(0x27, 2, 1, 0, 4, 5, 6, 7); // 0x27 é o endereço da memória do módulo lc2 para modificações no display
- //LiquidCrystal lcd( 7, 8, 9, 10, 11, 12); // Pinos do LCD
- void setup() // È aqui onde será feito os comandos iniciais necessários para o progama funcionar (boot)
- {
- lcd.begin (16, 2); // Inicia a comunicação entre o arduino e o display 16x2
- lcd.setBacklightPin(3, POSITIVE); // Comando necessário para ligar a luz de fundo do display 16x2 caso haja alimentação no pino 3 do display
- lcd.setBacklight(HIGH); // Aciona os leds contidos no display para luz de fundo do display 16x2
- lcd.setCursor(0, 0); // Move o cursor para o primeiro segmento da primeira linha do display 16x2
- lcd.print(" Etilometro"); // Imprime uma mensagem no display 16x2
- lcd.setCursor(0, 1); // Move o cursor para o primeiro segmento da segunda linha do display 16x2
- lcd.print(" A.A.A v1.0"); // Imprime uma mensagem no dispaly 16x2
- delay(5000); // Aguarda um tempo de 5000 millisegundos (5segundos)
- lcd.setCursor(0, 0); // Move o cursor para o primeiro segmento e primeira linha do display 16x2
- lcd.print(" "); // Imprime uma mensagem no display 16x2
- lcd.setCursor(0, 1); // Move o cursor para o primeiro segmento da segunda linha do display 16x2
- lcd.print(" "); // Imprime uma mensagem no display 16x2
- pinMode(botao,INPUT_PULLUP); // Definir pino de botão como entrada
- }
- void loop() // É aqui onde será executado uma rotina repetitiva de instruçoes para o arduino
- {
- botao = digitalRead(8); // Verifica o estado do meu pushbutton
- if (botao == HIGH) { // Caso o meu botão esteja em nível lógico 1 (pressionado)
- lcd.setCursor(0, 0); // Move o cursor para o primeiro segmento e primeira linha do display 16x2
- lcd.print(" "); // Imprime uma mensagem no display 16x2
- lcd.setCursor(0, 1); // Move o cursor para o primeiro segmento da segunda linha do display 16x2
- lcd.print(" "); // Imprime uma mensagem no display 16x2
- lcd.setCursor(0, 0); // Move o cursor para o primeiro segmento e primeira linha do display 16x2
- lcd.print("Analizando..."); // Imprime uma mensagem no display 16x2
- delay(5000); // Aguarda um tempo de 5000 millisegundos(5segundos)
- int val = analogRead(0); // Variável que faz a leitura do pino anlógico "0"
- val = map(val, 31, 690, 0, 100); // Função que correlaciona os valores mínimo e máximo obtidos pelo sensor mq-3
- lcd.setCursor(0, 0); // Move o cursor para o primeiro segmento e primeira linha do display 16x2
- lcd.print(" "); // Imprime uma mensagem no display 16x2
- lcd.setCursor(0, 1); // Move o cursor para o primeiro segmento da segunda linha do display 16x2
- lcd.print(" "); // Imprime uma mensagem no display 16x2
- lcd.setCursor(0, 0); // Move o cursor para o primeiro segmento e primeira linha do display 16x2
- lcd.print("Nivel de Alcool"); // Imprime uma mensagem no display 16x2
- lcd.setCursor(0, 1); // Move o cursor para o primeiro segmento da segunda linha do display 16x2
- lcd.print(val); // Imprime o valor da minha variável
- lcd.print(" %"); // Imprime uma mensagem no display 16x2
- delay(5000); // Aguarda um tempo de 5000 millisegundos(5segundos)
- if (val <=10){ // Se o valor for menor que 10
- lcd.setCursor(0, 1); // Move o cursor para o primeiro segmento da segunda linha do display 16x2
- lcd.print("Vc não bebeu "); // Imprime uma mensagem no display 16x2
- }
- if (val >80){ // Se o valor for maior que 80
- lcd.setCursor(0, 1); // Move o cursor para o primeiro segmento da segunda linha do display 16x2
- lcd.print("Vc bebeu muito "); // Imprime uma mensagem no display 16x2
- }
- if (val >60){ // Se o valor for maior que 60
- lcd.setCursor(0, 1); // Move o cursor para o primeiro segmento da segunda linha do display 16x2
- lcd.print("Vc bebeu medio "); // Imprime uma mensagem no display 16x2
- }
- if (val >10){ // Se o valor for maior que 10
- lcd.setCursor(0, 1); // Move o cursor para o primeiro segmento da segunda linha do display 16x2
- lcd.print("Vc bebeu pouco "); // Imprime uma mensagem no display 16x2
- }
- delay(10000); // Aguarda um tempo de 10000 millisegundos (10segundos)
- }
- else {
- lcd.setCursor(0, 0); // Move o cursor para o primeiro segmento e primeira linha do display 16x2
- lcd.print(" "); // Imprime uma mensagem no display 16x2
- lcd.setCursor(0, 1); // Move o cursor para o primeiro segmento da segunda linha do display 16x2
- lcd.print(" "); // Imprime uma mensagem no display 16x2
- lcd.setCursor(0, 0); // Move o cursor para o primeiro segmento e primeira linha do display 16x2
- lcd.print(" Aperte o botao"); // Imprime uma mensagem no display 16x2
- lcd.setCursor(0, 1); // Move o cursor para o primeiro segmento da segunda linha do display 16x2
- lcd.print(" para comecar"); // Imprime uma mensagem no display 16x2
- delay(1000); // Aguarda um tempo de 1000 millsegundos (1segundo) e repete tudo.
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement