Advertisement
RuiViana

Leitor de Alcool

Jul 5th, 2015
317
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.32 KB | None | 0 0
  1. #include <Wire.h> //Inclui a biblioteca do display 16x2
  2. #include <LCD.h> //Inclui a biblioteca do display 16x2
  3. #include <LiquidCrystal_I2C.h> //Inclui a biblioteca do módulo lc2
  4. #include <LiquidCrystal.h> // Inclui a biblioteca do LCD
  5. int botao = 8; // Declaração da variável "botão" onde determino que será utilizado meu pushbutton no pino digital "8" do arduino
  6. //int botao = 2; // Declaração da variável "botão" onde determino que será utilizado meu pushbutton no pino digital "8" do arduino
  7.  
  8.  
  9. 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
  10. //LiquidCrystal lcd( 7, 8, 9, 10, 11, 12); // Pinos do LCD
  11. void setup() // È aqui onde será feito os comandos iniciais necessários para o progama funcionar (boot)
  12. {
  13.  
  14. lcd.begin (16, 2); // Inicia a comunicação entre o arduino e o display 16x2
  15. 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
  16. lcd.setBacklight(HIGH); // Aciona os leds contidos no display para luz de fundo do display 16x2
  17. lcd.setCursor(0, 0); // Move o cursor para o primeiro segmento da primeira linha do display 16x2
  18. lcd.print(" Etilometro"); // Imprime uma mensagem no display 16x2
  19. lcd.setCursor(0, 1); // Move o cursor para o primeiro segmento da segunda linha do display 16x2
  20. lcd.print(" A.A.A v1.0"); // Imprime uma mensagem no dispaly 16x2
  21. delay(5000); // Aguarda um tempo de 5000 millisegundos (5segundos)
  22. lcd.setCursor(0, 0); // Move o cursor para o primeiro segmento e primeira linha do display 16x2
  23. lcd.print(" "); // Imprime uma mensagem no display 16x2
  24. lcd.setCursor(0, 1); // Move o cursor para o primeiro segmento da segunda linha do display 16x2
  25. lcd.print(" "); // Imprime uma mensagem no display 16x2
  26. pinMode(botao,INPUT_PULLUP); // Definir pino de botão como entrada
  27. }
  28.  
  29. void loop() // É aqui onde será executado uma rotina repetitiva de instruçoes para o arduino
  30. {
  31.  
  32. botao = digitalRead(8); // Verifica o estado do meu pushbutton
  33. if (botao == HIGH) { // Caso o meu botão esteja em nível lógico 1 (pressionado)
  34. lcd.setCursor(0, 0); // Move o cursor para o primeiro segmento e primeira linha do display 16x2
  35. lcd.print(" "); // Imprime uma mensagem no display 16x2
  36. lcd.setCursor(0, 1); // Move o cursor para o primeiro segmento da segunda linha do display 16x2
  37. lcd.print(" "); // Imprime uma mensagem no display 16x2
  38. lcd.setCursor(0, 0); // Move o cursor para o primeiro segmento e primeira linha do display 16x2
  39. lcd.print("Analizando..."); // Imprime uma mensagem no display 16x2
  40. delay(5000); // Aguarda um tempo de 5000 millisegundos(5segundos)
  41. int val = analogRead(0); // Variável que faz a leitura do pino anlógico "0"
  42. val = map(val, 31, 690, 0, 100); // Função que correlaciona os valores mínimo e máximo obtidos pelo sensor mq-3
  43. lcd.setCursor(0, 0); // Move o cursor para o primeiro segmento e primeira linha do display 16x2
  44. lcd.print(" "); // Imprime uma mensagem no display 16x2
  45. lcd.setCursor(0, 1); // Move o cursor para o primeiro segmento da segunda linha do display 16x2
  46. lcd.print(" "); // Imprime uma mensagem no display 16x2
  47. lcd.setCursor(0, 0); // Move o cursor para o primeiro segmento e primeira linha do display 16x2
  48. lcd.print("Nivel de Alcool"); // Imprime uma mensagem no display 16x2
  49. lcd.setCursor(0, 1); // Move o cursor para o primeiro segmento da segunda linha do display 16x2
  50. lcd.print(val); // Imprime o valor da minha variável
  51. lcd.print(" %"); // Imprime uma mensagem no display 16x2
  52. delay(5000); // Aguarda um tempo de 5000 millisegundos(5segundos)
  53. if (val <=10){ // Se o valor for menor que 10
  54. lcd.setCursor(0, 1); // Move o cursor para o primeiro segmento da segunda linha do display 16x2
  55. lcd.print("Vc não bebeu "); // Imprime uma mensagem no display 16x2
  56. }
  57. if (val >80){ // Se o valor for maior que 80
  58. lcd.setCursor(0, 1); // Move o cursor para o primeiro segmento da segunda linha do display 16x2
  59. lcd.print("Vc bebeu muito "); // Imprime uma mensagem no display 16x2
  60. }
  61. if (val >60){ // Se o valor for maior que 60
  62. lcd.setCursor(0, 1); // Move o cursor para o primeiro segmento da segunda linha do display 16x2
  63. lcd.print("Vc bebeu medio "); // Imprime uma mensagem no display 16x2
  64. }
  65. if (val >10){ // Se o valor for maior que 10
  66. lcd.setCursor(0, 1); // Move o cursor para o primeiro segmento da segunda linha do display 16x2
  67. lcd.print("Vc bebeu pouco "); // Imprime uma mensagem no display 16x2
  68. }
  69. delay(10000); // Aguarda um tempo de 10000 millisegundos (10segundos)
  70. }
  71. else {
  72. lcd.setCursor(0, 0); // Move o cursor para o primeiro segmento e primeira linha do display 16x2
  73. lcd.print(" "); // Imprime uma mensagem no display 16x2
  74. lcd.setCursor(0, 1); // Move o cursor para o primeiro segmento da segunda linha do display 16x2
  75. lcd.print(" "); // Imprime uma mensagem no display 16x2
  76. lcd.setCursor(0, 0); // Move o cursor para o primeiro segmento e primeira linha do display 16x2
  77. lcd.print(" Aperte o botao"); // Imprime uma mensagem no display 16x2
  78. lcd.setCursor(0, 1); // Move o cursor para o primeiro segmento da segunda linha do display 16x2
  79. lcd.print(" para comecar"); // Imprime uma mensagem no display 16x2
  80. delay(1000); // Aguarda um tempo de 1000 millsegundos (1segundo) e repete tudo.
  81. }
  82.  
  83.  
  84.  
  85. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement