Senzor oxidu uhelnatého MQ-9
Senzor reaguje nejvíce na oxid uhelnatý (CO) ale i na hořlavé plyny metan a propan. Aktivním prvkem tohoto senzoru je tenká vrstva SnO2, jejíž odpor se mění s koncentrací zmíněných plynů.
Tento projekt představuje elektronickou kostku, která po stisknutí tlačítka zobrazuje náhodné číslo od 1 do 6 na 7segmentovém displeji. Po stisknutí tlačítka začnou rychle blikající čísla, která postupně zpomalují a zastaví se na jednom náhodném čísle.
// Definice pinů pro každý segment 7segmentového displeje const int segmentA = 3; const int segmentB = 4; const int segmentC = 5; const int segmentD = 6; const int segmentE = 7; const int segmentF = 8; const int segmentG = 9; // Pin pro tlačítko const int buttonPin = 2; // Proměnné pro tlačítko int buttonState = 0; bool isRolling = false; void setup() { // Nastavení segmentů jako výstupy pinMode(segmentA, OUTPUT); pinMode(segmentB, OUTPUT); pinMode(segmentC, OUTPUT); pinMode(segmentD, OUTPUT); pinMode(segmentE, OUTPUT); pinMode(segmentF, OUTPUT); pinMode(segmentG, OUTPUT); pinMode(buttonPin, INPUT_PULLUP); // Spuštění náhodného generátoru randomSeed(analogRead(0)); } void loop() { // Kontrola stisknutí tlačítka buttonState = digitalRead(buttonPin); // Pokud je tlačítko stisknuto a už se neroluje, zahájí rolování if (buttonState == LOW & !isRolling) { isRolling = true; rollDice(); // Spustí funkci pro "házení kostky" } } // Funkce pro simulaci "házení kostky" void rollDice() { int randomNumber; int delayTime = 50; // Počáteční rychlost "házení" (ms) // Opakuje smyčku, kde se rychlost postupně snižuje, aby se kostka "zastavila" for (int i = 0; i < 20; i++) { randomNumber = random(1, 7); // Generuje náhodné číslo mezi 1 a 6 displayNumberOnSegment(randomNumber); // Zobrazí číslo na displeji delay(delayTime); // Čeká, než zobrazí další číslo delayTime += 15; // Zvyšuje prodlevu, aby simuloval zpomalování } isRolling = false; // Rolování je dokončeno } // Funkce pro zobrazení čísla na 7segmentovém displeji void displayNumberOnSegment(int number) { // Vypnutí všech segmentů před zobrazením nového čísla digitalWrite(segmentA, LOW); digitalWrite(segmentB, LOW); digitalWrite(segmentC, LOW); digitalWrite(segmentD, LOW); digitalWrite(segmentE, LOW); digitalWrite(segmentF, LOW); digitalWrite(segmentG, LOW); // Zapnutí správných segmentů podle čísla switch (number) { case 1: digitalWrite(segmentB, HIGH); digitalWrite(segmentC, HIGH); break; case 2: digitalWrite(segmentA, HIGH); digitalWrite(segmentB, HIGH); digitalWrite(segmentD, HIGH); digitalWrite(segmentE, HIGH); digitalWrite(segmentG, HIGH); break; case 3: digitalWrite(segmentA, HIGH); digitalWrite(segmentB, HIGH); digitalWrite(segmentC, HIGH); digitalWrite(segmentD, HIGH); digitalWrite(segmentG, HIGH); break; case 4: digitalWrite(segmentB, HIGH); digitalWrite(segmentC, HIGH); digitalWrite(segmentF, HIGH); digitalWrite(segmentG, HIGH); break; case 5: digitalWrite(segmentA, HIGH); digitalWrite(segmentC, HIGH); digitalWrite(segmentD, HIGH); digitalWrite(segmentF, HIGH); digitalWrite(segmentG, HIGH); break; case 6: digitalWrite(segmentA, HIGH); digitalWrite(segmentC, HIGH); digitalWrite(segmentD, HIGH); digitalWrite(segmentE, HIGH); digitalWrite(segmentF, HIGH); digitalWrite(segmentG, HIGH); break; } }
Po stisknutí tlačítka Arduino začne zobrazovat náhodná čísla od 1 do 6 v rychlém sledu, což vytváří „házení kostky“. Poté se čísla zpomalí a nakonec se zastaví na jednom náhodném čísle. Toho je dosaženo generováním náhodných čísel ve smyčce, přičemž se postupně zvyšuje časové zpoždění mezi jednotlivými čísly.
Senzor reaguje nejvíce na oxid uhelnatý (CO) ale i na hořlavé plyny metan a propan. Aktivním prvkem tohoto senzoru je tenká vrstva SnO2, jejíž odpor se mění s koncentrací zmíněných plynů.
Tento projekt ukazuje, jak vytvořit jednoduchý přístupový systém pomocí RFID čtečky, LCD displeje, bzučáku a servomotoru. Systém umožňuje kontrolu přístupu pomocí RFID tagů – při správném tagu se servo otočí, zobrazí se zpráva, a systém se resetuje. Při špatném tagu bzučák vydá zvuk a zobrazí se zamítnutí přístupu.