AlcoTester

Para nuestros clientes, estamos ampliando la gama de nuestros productos, así que hemos recibido muestras de nuestra tienda en línea del fabricante.Esta vez se utilizó el módulo de sensores MQ - 03.Sensor MQ - 02 Y MQ - 135 Ya estamos incluidos en nuestro plan de entrega.La característica especial del MQ - 03 es que el módulo está calibrado para detectar el alcohol en el aire.Hoy aprovechamos esta oportunidad para hacerte una prueba de respiración. Adino.- la presentación de nuestra base en un foro. En el caso de los sensores de gas, hay que tener en cuenta que requieren mucha potencia y cierto tiempo de calentamiento.

Utilizamos:
El doble. Nanov3.
El doble. Panel de ensayo
El doble. Tipo mb102
El doble. Tipo lcd12864
Salto M.

Opcionalmente, el led predefinido se almacena en el Código para mostrar el resultado, que no utilizamos en el ejemplo de la aplicación.

Todos los pies de tubo de los módulos están etiquetados.(presentación de reversa)

Nanov3. MQ - 03 Mostrar MB - 102
Ingreso nacional bruto Ingreso nacional bruto Ingreso nacional bruto Ingreso nacional bruto
Cinco. VCC Corporation VCC Corporation - cinco.
Clase A0 Clase A0
D3. Rupia
D4. Derecha
D5. Categoría E
Página D6 Rst.
3,3 voltios. Brat.
Negro Ingreso nacional bruto

 

Biblioteca de necesidades: u8glib del Bibliotecario

Código:

 

35; incluye Uglieb.

U8glib st7920 128x64 1x U8g(5, 4, 3 , 6);

- definición. Cantidad 6

Interior Diodos luminosos[Cantidad];
Interior Contar;
Interior Valor / sensor = 0;
Inapropiado adj. Largo adj. Tiempo;
Interior Tiempo máximo = 300;
Interior Estatuto = 1;
Cadena Estado;
Interior Ubicación;
Interior Yo;
Interior Tipo j;
Interior Lecturas máximas;

Vacío. Pintura() {   U8g.Tipo de letra(Fuente 8x13b);   U8g.Soporte de tracción(0, 20, 128, 44, 4);   U8g.Pintura( 30, 10, Prueba de alcohol.);   U8g.Tipo de letra(Robot from Niro);   U8g.Pintura( 8, 20, Prohibido conducir borracho.);   U8g.Tipo de letra(Fuente 8x13b);   U8g.Pintura( 10, 37, Espera.);   Si (Estatuto == 1) {     U8g.Caja de tracción(80, 25, 20, 30);     U8g.Ruslan.(77, 24, 26);     U8g.Soporte de tracción(78, 25 , 24, 32, 0);     U8g.Soporte de tracción(77, 25 , 26, 32, 0);     U8g.Ruslan.(76, 57, 28);     U8g.Ruslan.(76, 58, 28);     U8g.Soporte de tracción(102, 30 , 7, 20, 2);     U8g.Soporte de tracción(102, 28 , 9, 24, 2);     U8g.Índice de colores(0);     Si (Tiempo == 0) {       Tiempo = 1;     }     U8g.Caja de tracción(79, 25, 22, Tiempo);     U8g.Índice de colores(1);   }   Si (Estatuto == 0) {     U8g.Tipo de letra(Tipo de letra);     U8g.Índice de colores(0);     U8g.Caja de tracción(10, 25, 110, 33);     U8g.Índice de colores(1);     Si (Valor / sensor <= 99) {       Ubicación = 50;     }     Hora prevista de despegue {       Ubicación = 43;     }     U8g.Posición de impresión(Ubicación, 45);     U8g.Imprimir(Valor / sensor);     U8g.Tipo de letra(Fuente: orgv01.);     Interior Tamaño = Estado.Longitud();     Interior Ubicación = (128 / 2) - ((Tamaño * 5) / 2);     U8g.Posición de impresión(Ubicación, 60);     U8g.Imprimir(Estado);   }
}

Vacío. Configuración(Vacío.) {      Transporte.Iniciar(9600);   Modo pinmode(Clase A0, Entrada);   Si ( U8g.Modo de adquisición() == Modo u8g r3g3b2 ) {     U8g.Índice de colores(255);   }   Hora prevista de despegue Si ( U8g.Modo de adquisición() == Modo u8g ) {     U8g.Índice de colores(3);   }   Hora prevista de despegue Si ( U8g.Modo de adquisición() == Modo 8g bw ) {     U8g.Índice de colores(1);   }   Hora prevista de despegue Si ( U8g.Modo de adquisición() == Modo u8g hicoor ) {     U8g.Polilla Barbosa(255, 255, 255);   }   Yo = 0;   Tipo j = 7;   Aunque (Yo < Cantidad) {     Diodos luminosos[Yo] = Tipo j;     Yo++;     Tipo j++;   }   Para (Yo = 0; Yo < Cantidad; Yo++)   {     Modo pinmode(Diodos luminosos[Yo], Salida);   }   Escritura digital(2, Salida);
}

Vacío. Correr(Vacío.) {      Valor / sensor = Simulación(Clase A0);   Tiempo = Millis() / 1000;   U8g.Página 1();   Si (Tiempo <= Tiempo máximo) {     Tiempo = Carpeta(Tiempo, 0, Tiempo máximo, 0, 30);     Estatuto = 1;   }   Hora prevista de despegue {     Estatuto = 0;   }   Si (Valor / sensor >= 0 Y Valor / sensor <= 100) {     Estado = "Entrada no detectada";   }   Hora prevista de despegue Si (Valor / sensor >= 101 Y Valor / sensor <= 200) {     Estado = "Podría ser jugo de manzana.";   }   Hora prevista de despegue Si (Valor / sensor >= 201 Y Valor / sensor <= 300) {     Estado = "Por supuesto, sólo cerveza?";   }   Hora prevista de despegue Si (Valor / sensor >= 301 Y Valor / sensor <= 400) {     Estado = "Debe haber estado bebiendo!";   }   Hora prevista de despegue Si (Valor / sensor >= 401 Y Valor / sensor <= 550) {     Estado = "Incluso en Baviera es demasiado!";   }   Hora prevista de despegue Si (Valor / sensor >= 551) {     Estado = "Ah - hmm.¿Una ambulancia?;   }   Hora prevista de despegue {     Pintura();   }   Aunque (U8g.Bajo el sol() );   Retraso(50);         Interior Sensor = Simulación(Clase A0);   Si (Sensor >= 40) {     Escritura digital(2, Alto);     Lecturas máximas = 0;     Para (Contar = 0; Contar <= 500; Contar++) {       Interior Sensor = Simulación(Clase A0);       Retraso(1);       Si (Sensor > Lecturas máximas) {         Lecturas máximas = Sensor;       }     }     Escritura digital(2, Bajo);     Interior Horizontal = Carpeta(Lecturas máximas, 0, 551, 0, Cantidad);     Para (Yo = 0; Yo < Cantidad; Yo++) {       Si (Yo < Horizontal) {         Escritura digital(Diodos luminosos[Yo], Alto);         Retraso(100);       } Hora prevista de despegue {         Escritura digital(Diodos luminosos[Yo], Bajo);       }     }     Retraso(500);     Para (Yo = 0; Yo < Cantidad; Yo++) {       Escritura digital(Diodos luminosos[Yo], Bajo);     }   }
}

 

Para arduinoSpecials

Deja un comentario

Todos los comentarios son moderados antes de ser publicados

Artículos de blog

  1. Ahora instalamos el esp32 a través de la administración.
  2. Lüftersteuerung Raspberry Pi
  3. Arduino IDE - Programmieren für Einsteiger - Teil 1
  4. ESP32 - das Multitalent
  5. Transporte Aéreo - programación de ESP mediante redes locales inalámbricas