AlcoTester

Per i nostri clienti estendiamo costantemente il nostro assortimento e così abbiamo accolto di nuovo Sampels per il nostro negozio in linea dal fabbricante. (Consegna di giudizio) questo qualche volta compreso, un modulo di sensore MQ-03. I sensori MQ-02 e MQ-135 se abbiamo già fatto amicizia nel nostro programma di consegna. Speciale in MQ-03: questo modulo deve riconoscere da alcool nell'aria calibrata. Sopportiamo all'occasione presa a Lei oggi un tester di respiro Arduino- Introdurre la base che abbiamo liberato scavando in un forum. Dai sensori del gas deve esser seguito questo questi molte correnti hanno bisogno, così come hanno bisogno di Vorheiztzeit certo.

Usiamo per esso:
1x Nano V3
1x Piastra per montaggio di circuiti elettronici mini
1x MB102
1x LCD12864
Cavo Pullover

Predefinito ha Condotto all'esposizione del risultato è facoltativo nel codice non posa noi, tuttavia, nel nostro esempio di uso di uso.

Gli Spilli di tutti i moduli sono segnati. (Esposizione al dorso)

Nano V3 MQ-03 Esposizione MB 102
GND GND GND GND
5 V VCC VCC 5 V
A0 A0
D3 RS
D4 R/W
D5 E
D6 RST
3.3 V BLA
BLK GND

 

Biblioteche richieste: u8glib dal governatore di biblioteca

Codice:

 

#include «U8glib.h»

U8GLIB_ST7920_128X64_1X u8g(5, 4, 3 , 6);

#define qtdLED 6

intervallo LEDs[qtdLED];
intervallo numero;
intervallo value_sensor = 0;
non firmato a lungo tempo;
intervallo maxTime = 300;
intervallo stato = 1;
Spago stato;
intervallo position1;
intervallo io;
intervallo j;
intervallo maximumReading;

vuoto disegnare() {   u8g.setFont(u8g_font_8x13B);   u8g.drawRFrame(0, 20, 128, 44, 4);   u8g.drawStr( 30, 10, «AlcoTester»);   u8g.setFont(u8g_font_robot_de_niro);   u8g.drawStr( 8, 20, «Non beva e avanzi»);   u8g.setFont(u8g_font_8x13B);   u8g.drawStr( 10, 37, «Aspettare»);   se (stato == 1) {     u8g.drawBox(80, 25, 20, 30);     u8g.drawHLine(77, 24, 26);     u8g.drawRFrame(78, 25 , 24, 32, 0);     u8g.drawRFrame(77, 25 , 26, 32, 0);     u8g.drawHLine(76, 57, 28);     u8g.drawHLine(76, 58, 28);     u8g.drawRFrame(102, 30 , 7, 20, 2);     u8g.drawRFrame(102, 28 , 9, 24, 2);     u8g.setColorIndex(0);     se (tempo == 0) {       tempo = 1;     }     u8g.drawBox(79, 25, 22, tempo);     u8g.setColorIndex(1);   }   se (stato == 0) {     u8g.setFont(u8g_font_fub20);     u8g.setColorIndex(0);     u8g.drawBox(10, 25, 110, 33);     u8g.setColorIndex(1);     se (value_sensor <= 99) {       position1 = 50;     }     altro {       position1 = 43;     }     u8g.setPrintPos(position1, 45);     u8g.stampa(value_sensor);     u8g.setFont(u8g_font_orgv01);     intervallo dimensioni = stato.lunghezza();     intervallo posizione = (128 / 2) - ((dimensioni * 5) / 2);     u8g.setPrintPos(posizione, 60);     u8g.stampa(stato);   }
}

vuoto situazione(vuoto) {      Seriale.cominciare(9600);   pinMode(A0, IMPIEGO);   se ( u8g.getMode() == U8G_MODE_R3G3B2 ) {     u8g.setColorIndex(255);   }   altro se ( u8g.getMode() == U8G_MODE_GRAY2BIT ) {     u8g.setColorIndex(3);   }   altro se ( u8g.getMode() == U8G_MODE_BW ) {     u8g.setColorIndex(1);   }   altro se ( u8g.getMode() == U8G_MODE_HICOLOR ) {     u8g.setHiColorByRGB(255, 255, 255);   }   io = 0;   j = 7;   mentre (io < qtdLED) {     LEDs[io] = j;     io++;     j++;   }   per (io = 0; io < qtdLED; io++)   {     pinMode(LEDs[io], USCITA);   }   digitalWrite(2, USCITA);
}

vuoto cappio(vuoto) {      value_sensor = analogRead(A0);   tempo = millis() / 1000;   u8g.pagina di cresta();   se (tempo <= maxTime) {     tempo = mappa(tempo, 0, maxTime, 0, 30);     stato = 1;   }   altro {     stato = 0;   }   se (value_sensor >= 0 e value_sensor <= 100) {     stato = «nessun impiego riconosciuto»;   }   altro se (value_sensor >= 101 e value_sensor <= 200) {     stato = «è stato eccellente solo il succo di mela»;   }   altro se (value_sensor >= 201 e value_sensor <= 300) {     stato = «Certamente è stata solo una birra?»;   }   altro se (value_sensor >= 301 e value_sensor <= 400) {     stato = «Là il superalcolico è stato presente probabilmente!»;   }   altro se (value_sensor >= 401 e value_sensor <= 550) {     stato = «Perfino in Baviera troppo!»;   }   altro se (value_sensor >= 551) {     stato = «Ähm... Ambulanze?»;   }   Th {     disegnare();   }   mentre (u8g.nextPage() );   ritardo(50);         intervallo sensore = analogRead(A0);   se (sensore >= 40) {     digitalWrite(2, IN ALTO);     maximumReading = 0;     per (numero = 0; numero <= 500; numero++) {       intervallo sensore = analogRead(A0);       ritardo(1);       se (sensore > maximumReading) {         maximumReading = sensore;       }     }     digitalWrite(2, IN BASSO);     intervallo livello = mappa(maximumReading, 0, 551, 0, qtdLED);     per (io = 0; io < qtdLED; io++) {       se (io < livello) {         digitalWrite(LEDs[io], IN ALTO);         ritardo(100);       } altro {         digitalWrite(LEDs[io], IN BASSO);       }     }     ritardo(500);     per (io = 0; io < qtdLED; io++) {       digitalWrite(LEDs[io], IN BASSO);     }   }
}

 

Per arduinoSpeciali

Einen Kommentar hinterlassen

Alle Kommentare werden vor der Veröffentlichung moderiert

Post di blog consigliati

  1. Installa ESP32 ora dal gestore del consiglio di amministrazione
  2. Lüftersteuerung Raspberry Pi
  3. Arduino IDE - Programmieren für Einsteiger - Teil 1
  4. ESP32 - das Multitalent
  5. OTA - Over the Air - Programmazione ESP tramite WLAN