alle_x_andy

Spark Detector Counter

Aug 12th, 2019
175
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. /*Este código foi escrito para utilizar uma placa Attiny85 e não foi escrito por um profissional de programação.
  2.  *Pode-se alterar os valores dos pinos de acordo com sua montagem, levando em conta as funcionalidades necessárias.
  3.  *Foram utilizadas variáveis com nome em inglês para evitar a utilização de palavras com caracteres proibidos.
  4.  */
  5.  
  6. #include <LiquidCrystal_I2C.h>        //inclui biblioteca para o display com interface serial
  7. #include <Wire.h>                     //Inclui biblioteca I2C para o a interface do display
  8.  
  9. #define reset_counter PB1             //define o pino para o botão que zera a contagem
  10. #define sensor_pin PB3                //define o pino de entrada para o sensor de faísca **Pino com ADC**
  11.  
  12. uint32_t count = 0, lastcount = 0;    //variáveis para valor de contagem e última contagem
  13. uint8_t change = 1;                   //variável para atualização do display
  14.  
  15. LiquidCrystal_I2C lcd(0x27,16,02);    //Define endereço lógico do display e dimensões em caracteres  **endereços mais comuns: 0x27 e 0x3f**
  16.  
  17. void setup() {
  18.   pinMode(sensor_pin, INPUT);           //ativa o pino do sensor como entrada
  19.   pinMode(reset_counter, INPUT_PULLUP); //ativa o resistor interno do pino de zerar o contador
  20.   Wire.begin();               //inicia a conexão wire
  21.   lcd.init();                 //inicia o display
  22.   lcd.setBacklight(HIGH);     //Acende a luz de fundo do display
  23.   lcd.clear();                //limpa o display e retorna o cursor para o início
  24.   lcd.print("Contagens: ");
  25. }
  26.  
  27.  
  28. void loop() {
  29.  
  30. if(change == 1){
  31.  
  32. //se precisar atualizar o valor no lcd, sobrescreve com espaços o valor presente no lcd e escreve o novo valor e desativa a variável atualização do display
  33.  
  34. lcd.setCursor(10,0);
  35. lcd.print("      ");
  36. lcd.setCursor(10,0);
  37. lcd.print(count);
  38. change = 0;
  39. }
  40.  
  41. if(analogRead(sensor_pin) < 600){
  42.   //se detectar uma faísca o número de contagens aumenta
  43.   count++;
  44. }
  45.  
  46. if (count != lastcount){
  47.   //detecta variação da contagem
  48.   change = 1;
  49. }
  50. if (digitalRead(reset_counter) == 0){
  51.   //ao detectar o botão de zerar pressionado, zera as variáveis de contagem e ativa a atualização do display
  52.     count = 0;
  53.     change = 1;
  54.   }
  55.  
  56. lastcount = count; //define o valor para a última contagem
  57. }
Advertisement
Add Comment
Please, Sign In to add comment