Obsah:
- Krok 1: Začněte jednoduše: Přidejte tlačítko
- Krok 2: Upravte kód tak, aby registroval stisknutí tlačítka
- Krok 3: Přidejte tolik tlačítek, kolik máte dětí
- Krok 4: Přidejte bzučák
- Krok 5: Přidejte obrazovku LCD
Video: Modifikátor chování dítěte: 5 kroků (s obrázky)
2024 Autor: John Day | [email protected]. Naposledy změněno: 2024-02-01 14:39
Modifikátor chování dítěte zaznamenává, kolikrát se vaše dítě dostalo do potíží (aka Strikes), a když dosáhnou tří, zazní bzučák a obrazovka LCD oznámí, že jsou uzemněny.
Krok 1: Začněte jednoduše: Přidejte tlačítko
První krok v tomto projektu je jednoduchý. Přidat 1 tlačítko. V tomto kroku potřebujete 4 dráty od muže k muži, 1 220 rezistorů a tlačítko.
- Připojte 5V na straně napájení k kladné řadě na desce
-
Připojte GND k záporné straně prkénka
- Vložte tlačítko na prkénko
- Připojte napájení v řadě postive k levé spodní části tlačítka
- Uzemněte tlačítko pomocí odporu v pravé dolní části tlačítka na zápornou řadu prkénka.
- Připojte #13 na digitální straně Arduina k pravé horní straně tlačítka.
Ověřte pomocí kódu, že se tlačítko registruje:
int child1ButtonPin = 13; // Toto je pin, ke kterému je připojeno naše tlačítko
int child1ButtonState = 0; // Přečte stav tlačítka (zapnuto/vypnuto)
int dítě1Strike = 0; // Kolik úderů má dítě
// funkce nastavení se spustí jednou, když stisknete reset nebo napájení desky
neplatné nastavení () {Serial.begin (9600); pinMode (child1ButtonPin, INPUT); } // funkce smyčky běží stále znovu a znovu navždy void loop () {// čtení stavu tlačítka (zapnuto nebo vypnuto) child1ButtonState = digitalRead (child1ButtonPin); if (child1ButtonState == HIGH) // Tlačítko je stisknuto {Serial.println ("HIGH"); zpoždění (5000); }
if (child1ButtonState == LOW)
{Serial.println ("LOW"); zpoždění (5000); }}
Krok 2: Upravte kód tak, aby registroval stisknutí tlačítka
Upravte kód tak, aby zaregistroval stisknutí tlačítka:
int child1ButtonPin = 13; // Toto je pin, ke kterému je připojeno naše tlačítko, aby child1ButtonState = 0; // Čte stav tlačítka (zapnuto/vypnuto) int child1PreviousState = 0; // Předchozí stav tlačítka int child1Strike = 0;
// funkce nastavení se spustí jednou, když stisknete reset nebo napájení desky
neplatné nastavení () {Serial.begin (9600); pinMode (child1ButtonPin, INPUT); } // funkce smyčky běží stále znovu a znovu navždy void loop () {// čtení stavu tlačítka (zapnuto nebo vypnuto) child1ButtonState = digitalRead (child1ButtonPin); if (child1ButtonState! = child1PreviousState) {if (child1ButtonState == HIGH) // Tlačítko je stisknuto {child1Strike ++; Serial.println (child1Strike); zpoždění (1000); }}
}
Další Upravte kód tak, aby dítě dostalo 3 údery, po kterých obdrží zprávu, že jsou uzemněny:
int child1ButtonPin = 13; // Toto je pin, ke kterému je připojeno naše tlačítko, aby child1ButtonState = 0; // Čte stav tlačítka (zapnuto/vypnuto) int child1PreviousState = 0; int dítě1Strike = 0;
// funkce nastavení se spustí jednou, když stisknete reset nebo napájení desky
neplatné nastavení () {Serial.begin (9600); pinMode (child1ButtonPin, INPUT); } // funkce smyčky běží stále znovu a znovu navždy void loop () {// čtení stavu tlačítka (zapnuto nebo vypnuto) child1ButtonState = digitalRead (child1ButtonPin); if (child1ButtonState! = child1PreviousState) {if (child1ButtonState == HIGH) // Tlačítko je stisknuto {child1Strike ++; Serial.println (child1Strike);
if (child1Strike> = 3)
{Serial.println ("Dítě 1 je uzemněno!"); } zpoždění (3000); }}
}
Sériový monitor by měl vypadat jako na obrázku výše.
Poznámka: Ujistěte se, že vám zpoždění vyhovuje. S malým zpožděním zaregistruje 1 tlačítko jako více než jedno!
Krok 3: Přidejte tolik tlačítek, kolik máte dětí
V tomto kroku jednoduše zkopírujeme posledních pár kroků. Přidejte tolik tlačítek, kolik dětí. V mém případě přidávám čtyři. Nezapomeňte změnit kód digitálního pinu, ke kterému je tlačítko připojeno. V mém případě jsem použil piny 12 až 10 k přidání svých tlačítek. V případě, že potřebujete připomenout, je zde krok 1:
-
Připojte 5V na straně napájení k kladné řadě na desce
- Připojte GND k záporné straně prkénka
- Vložte tlačítko na prkénko Připojte napájení na řadě postive k levé spodní části tlačítka
- Uzemněte tlačítko pomocí odporu v pravé dolní části tlačítka na zápornou řadu prkénka.
- Připojte (vaše číslo PIN) na digitální straně Arduina k pravé horní straně tlačítka.
Budete také muset upravit kód, aby zvládl všechna vaše tlačítka. Mějte na paměti, že pokud si musíte dávat pozor na použité struny. Nelze přidat do malých písmen dohromady. Nejlepší je deklarovat 1 jako objekt String.
int child1ButtonPin = 13; // Toto je pin, ke kterému je připojeno naše tlačítko, aby child2ButtonPin = 12; int dítě3ButtonPin = 11; int dítě4ButtonPin = 10; int child1ButtonState = 0; // Přečte stav tlačítka (zapnuto/vypnuto) int child2ButtonState = 0; int dítě3ButtonState = 0; int dítě4ButtonState = 0; int child1PreviousState = 0; int child2PreviousState = 0; int child3PreviousState = 0; int child4PreviousState = 0; int dítě1Strike = 0; int dítě2Strike = 0; int dítě3Strike = 0; int dítě4Strike = 0;
// funkce nastavení se spustí jednou, když stisknete reset nebo napájení desky
neplatné nastavení () {Serial.begin (9600); pinMode (child1ButtonPin, INPUT); pinMode (child2ButtonPin, INPUT); pinMode (child3ButtonPin, INPUT); pinMode (child4ButtonPin, INPUT); } // funkce smyčky běží stále znovu a znovu navždy void loop () {// čtení stavu tlačítka (zapnuto nebo vypnuto) child1ButtonState = digitalRead (child1ButtonPin);
child2ButtonState = digitalRead (child2ButtonPin);
child3ButtonState = digitalRead (child3ButtonPin);
child4ButtonState = digitalRead (child4ButtonPin);
if (child1ButtonState! = child1PreviousState)
{if (child1ButtonState == HIGH) // Tlačítko je stisknuto {child1Strike ++; Serial.println (String ("Child 1 Has:") + child1Strike + "strikes");
if (child1Strike> = 3)
{Serial.println ("Dítě 1 je uzemněno!"); } zpoždění (3000); }} if (child2ButtonState! = child2PreviousState) {if (child2ButtonState == HIGH) // Tlačítko je stisknuto {child2Strike ++; Serial.println (String („Dítě 2 má:“) + child2Strike + „udeří“);
if (child2Strike> = 3)
{Serial.println („Dítě 2 je uzemněno!“); } zpoždění (3000); }}
if (child3ButtonState! = child3PreviousState)
{if (child3ButtonState == HIGH) // Tlačítko je stisknuto {child3Strike ++; Serial.println (String („Dítě 3 má:“) + child3Strike + „udeří“);
if (child3Strike> = 3)
{Serial.println („Dítě 3 je uzemněno!“); } zpoždění (3000); }}
if (child4ButtonState! = child4PreviousState)
{if (child4ButtonState == HIGH) // Tlačítko je stisknuto {child4Strike ++; Serial.println (String („Dítě 4 má:“) + child4Strike + „udeří“);
if (child4Strike> = 3)
{Serial.println ("Child 4 Is Grounded!"); } zpoždění (3000); }}}
Krok 4: Přidejte bzučák
Nyní se ujistěte, že vaše děti vědí, že jsou uzemněny. Pojďme přidat bzučák. Chcete -li připojit bzučák, postupujte podle těchto jednoduchých kroků.
- Přidejte na svůj prkénko bzučák a naplánujte si místo, protože se blíží LCD obrazovka.
- Připojte postivní stranu (bzučák by měl mít na postivní straně +) ke kolíku podle vašeho výběru. Udělal jsem 9.
- Připojte druhou stranu k uzemněné kolejnici vašeho prkénka.
Dále upravte kód, aby se bzučák vypnul, když se dítě uzemní. Existuje několik různých způsobů, jak kódovat bzučák, ale mám rád tón (buzzerName, hertz, doba trvání) pro jeho jednoduchost Takže příkladem toho by byl tón (bzučák, 4000, 300).
int child1ButtonPin = 13; // Toto je pin, ke kterému je připojeno naše tlačítko, aby child2ButtonPin = 12; int dítě3ButtonPin = 11; int dítě4ButtonPin = 10; int child1ButtonState = 0; // Přečte stav tlačítka (zapnuto/vypnuto) int child2ButtonState = 0; int dítě3ButtonState = 0; int dítě4ButtonState = 0; int child1PreviousState = 0; int child2PreviousState = 0; int child3PreviousState = 0; int child4PreviousState = 0; int dítě1Strike = 0; int dítě2Strike = 0; int dítě3Strike = 0; int child4Strike = 0; konstantní bzučák = 2;
// funkce nastavení se spustí jednou, když stisknete reset nebo napájení desky
neplatné nastavení () {Serial.begin (9600); pinMode (child1ButtonPin, INPUT); pinMode (child2ButtonPin, INPUT); pinMode (child3ButtonPin, INPUT); pinMode (child4ButtonPin, INPUT); pinMode (bzučák, VÝSTUP); } // funkce smyčky běží stále znovu a znovu navždy void loop () {// čtení stavu tlačítka (zapnuto nebo vypnuto) child1ButtonState = digitalRead (child1ButtonPin);
child2ButtonState = digitalRead (child2ButtonPin);
child3ButtonState = digitalRead (child3ButtonPin);
child4ButtonState = digitalRead (child4ButtonPin);
if (child1ButtonState! = child1PreviousState)
{if (child1ButtonState == HIGH) // Tlačítko je stisknuto {child1Strike ++; Serial.println (String ("Child 1 Has:") + child1Strike + "strikes");
if (child1Strike> = 3)
{Serial.println ("Dítě 1 je uzemněno!"); tón (bzučák, 5000, 500); // Vysílá zvuk 5 hertzů po dobu 5 milisekund
}
zpoždění (3000); }} if (child2ButtonState! = child2PreviousState) {if (child2ButtonState == HIGH) // Tlačítko je stisknuto {child2Strike ++; Serial.println (String („Dítě 2 má:“) + child2Strike + „udeří“);
if (child2Strike> = 3)
{Serial.println ("Child 2 Is Grounded!"); tón (bzučák, 5000, 500); } zpoždění (3000); }}
if (child3ButtonState! = child3PreviousState)
{if (child3ButtonState == HIGH) // Tlačítko je stisknuto {child3Strike ++; Serial.println (String („Dítě 3 má:“) + child3Strike + „udeří“);
if (child3Strike> = 3)
{Serial.println („Dítě 3 je uzemněno!“); tón (bzučák, 5000, 500); } zpoždění (3000); }}
if (child4ButtonState! = child4PreviousState)
{if (child4ButtonState == HIGH) // Tlačítko je stisknuto {child4Strike ++; Serial.println (String („Dítě 4 má:“) + child4Strike + „udeří“);
if (child4Strike> = 3)
{Serial.println ("Child 4 Is Grounded!"); tón (bzučák, 5000, 500); } zpoždění (3000); }}}
Krok 5: Přidejte obrazovku LCD
Nyní umožňuje LCD displej jasné a snadné čtení.
- Nejprve přidejte na prkénko potenciometr pro ovládání obrazovky LCD. Dávejte si pozor na to, kam to dáte, protože vám už pravděpodobně dochází místo.
- Použijte přední levý k připojení potenciometru k napájecí liště
- K uzemnění potenciometru použijte pravou přední část.
- Zadní strana bude připojena k obrazovce LCD.
- Přidejte obrazovku LCD na prkénko
- Uzemněte první kolík obrazovky k uzemňovací liště
- Připojte druhý kolík k napájecí liště.
- Třetí pin LCD přejde na pin 8 na Arduinu
- Čtvrtý LCD pin jde na Pin 7 na Arduinu
- Pátý jde na Pin 6 na Arduinu
- Šestý pin jde na pin 5 na Arduinu
- Piny 7 až 10 na LCD obrazovce jsou prázdné
- Pin 11 jde na Pin 5 na Arduinu
- Kolík 12 vede k uzemněné kolejnici
- Pin 13 jde na Pin 4 na Arduinu
- Pin 14 jde do zadní části potenciometru
- Kolík 15 směřuje k napájecí liště
- Kolík 16 vede k pozemní příčce.
Nyní budete muset aktualizovat kód, abyste mohli používat obrazovku LCD. K tomu použijete libary Liquid Crystal. Dávejte si pozor na tiskové výpisy LCD. Když potřebujete novou zprávu, nezapomeňte vymazat obrazovku. Nezapomeňte také nastavit kurzor, pokud chcete použít dva řádky.
#zahrnout
LiquidCrystal lcd (3, 4, 5, 6, 7, 8); // Nastaví LCD obrazovku
int child1ButtonPin = 13; // Toto je pin, ke kterému je naše tlačítko připojeno k int child2ButtonPin = 12; int dítě3ButtonPin = 11; int dítě4ButtonPin = 10; int child1ButtonState = 0; // Přečte stav tlačítka (zapnuto/vypnuto) int child2ButtonState = 0; int dítě3ButtonState = 0; int dítě4ButtonState = 0; int child1PreviousState = 0; // Předchozí stav tlačítka stisknuto int child2PreviousState = 0; int child3PreviousState = 0; int child4PreviousState = 0; int dítě1Strike = 0; // Kolik úderů má dítě int child2Strike = 0; int dítě3Strike = 0; int child4Strike = 0; konstantní bzučák = 9; // Bzučák
// funkce nastavení se spustí jednou, když stisknete reset nebo napájení desky
neplatné nastavení () {Serial.begin (9600); lcd.begin (16, 2); lcd.print („Dítě“); lcd.setCursor (0, 1); lcd.print ("Modifikátor chování"); pinMode (child1ButtonPin, INPUT); pinMode (child2ButtonPin, INPUT); pinMode (child3ButtonPin, INPUT); pinMode (child4ButtonPin, INPUT); pinMode (bzučák, VÝSTUP); } // funkce smyčky běží stále znovu a znovu navždy void loop () {lcd.setCursor (0, 0); // čtení stavu tlačítka (zapnuto nebo vypnuto) child1ButtonState = digitalRead (child1ButtonPin);
child2ButtonState = digitalRead (child2ButtonPin);
child3ButtonState = digitalRead (child3ButtonPin);
child4ButtonState = digitalRead (child4ButtonPin);
if (child1ButtonState! = child1PreviousState)
{if (child1ButtonState == HIGH) // Tlačítko je stisknuto {lcd.clear (); child1Strike ++; Serial.println (String ("Child 1 Has:") + child1Strike + "strikes"); lcd.print ("Dítě 1 má:"); lcd.setCursor (0, 1); lcd.print (child1Strike); lcd.print („Strikes!“);
if (child1Strike> = 3)
{Serial.println ("Dítě 1 je uzemněno!"); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Dítě 1 je"); lcd.setCursor (0, 1); lcd.print („Uzemněno!“);
tón (bzučák, 5000, 500); // Vysílá zvuk 5 hertzů po dobu 5 milisekund
}
zpoždění (3000); }} if (child2ButtonState! = child2PreviousState) {lcd.clear (); if (child2ButtonState == HIGH) // Tlačítko je stisknuto {child2Strike ++; Serial.println (String („Dítě 2 má:“) + child2Strike + „udeří“); lcd.print ("Dítě 2 má:"); lcd.setCursor (0, 1); lcd.print (child2Strike); lcd.print („Strikes!“); if (child2Strike> = 3) {Serial.println ("Child 2 Is Grounded!"); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Child 2 is"); lcd.setCursor (0, 1); lcd.print („Uzemněno!“); tón (bzučák, 5000, 500); } zpoždění (3000); }}
if (child3ButtonState! = child3PreviousState)
{lcd.clear (); if (child3ButtonState == HIGH) // Tlačítko je stisknuto {child3Strike ++; Serial.println (String („Dítě 3 má:“) + child3Strike + „udeří“); lcd.print ("Dítě 3 má:"); lcd.setCursor (0, 1); lcd.print (child3Strike); lcd.print („Strikes!“); if (child3Strike> = 3) {Serial.println ("Child 3 is Grounded!"); lcd.clear (); lcd.setCursor (0, 0); lcd.print („Dítě 3 je“); lcd.setCursor (0, 1); lcd.print („Uzemněno!“); tón (bzučák, 5000, 500); } zpoždění (3000); }}
if (child4ButtonState! = child4PreviousState)
{lcd.clear (); if (child4ButtonState == HIGH) // Tlačítko je stisknuto {child4Strike ++; Serial.println (String („Dítě 4 má:“) + child4Strike + „udeří“); lcd.print ("Dítě 4 má:"); lcd.setCursor (0, 1); lcd.print (child4Strike); lcd.print („Strikes!“);
if (child4Strike> = 3)
{Serial.println ("Child 4 Is Grounded!"); lcd.clear (); lcd.setCursor (0, 0); lcd.print („Dítě 4 je“); lcd.setCursor (0, 1); lcd.print („Uzemněno!“); tón (bzučák, 5000, 500); } zpoždění (3000); }}} A to je vše, to je vše, co potřebujete k vytvoření vlastního modifikátoru chování dítěte
Doporučuje:
Střídavě okluzní dichoptický modifikátor stereoskopického přenosu 32 [STM32F103C8T6+STMAV340 VGA Superimposer]: 6 kroků
Střídavě okluzní dichoptický modifikátor stereoskopického přenosu 32 [STM32F103C8T6+STMAV340 VGA Superimposer]: Nějakou dobu jsem pracoval na nástupci původního AODMoST. Nové zařízení využívá rychlejší a lepší 32bitový mikrokontrolér a rychlejší analogový video přepínač. Umožňuje AODMoST 32 pracovat s vyšším rozlišením a implementovat nové funkční
Střídavě okluzní dichoptický modifikátor stereoskopického přenosu [ATmega328P+HEF4053B VGA superimposer]: 7 kroků
Střídavě okluzivní dichoptický modifikátor stereoskopického přenosu [ATmega328P+HEF4053B VGA Superimposer]: Po mých experimentech s brýlemi z tekutých krystalů, které používaly k zatemnění očí (sem a tam), jsem se rozhodl postavit něco, co je trochu sofistikovanější a také nenutí uživatele nosit PCB na čele (lidé se někdy mohou bát
Postup: Instalace Raspberry PI 4 bezhlavého (VNC) s Rpi imagerem a obrázky: 7 kroků (s obrázky)
Jak na to: Instalace Raspberry PI 4 Headless (VNC) s Rpi-imager a obrázky: Mám v plánu použít tento Rapsberry PI ve spoustě zábavných projektů zpět na mém blogu. Neváhejte se na to podívat. Chtěl jsem se vrátit k používání svého Raspberry PI, ale na novém místě jsem neměl klávesnici ani myš. Už je to dlouho, co jsem nastavoval Raspberry
Modifikátor směrovosti zesilovače kytary: 5 kroků
Modifikátor směrovosti směrovače kytarového zesilovače: Pozadí: Tento návod je přímou implementací programu „Mitchell Donut“modifikátor směrovosti reproduktoru kytary navrhl Jay Mitchell z diskusního fóra The Gear Page. Nejrelevantnější diskusi najdete v reproduktoru
Jak přimět víly, aby se objevily na oslavě narozenin vašeho dítěte!: 4 kroky
Jak přimět víly, aby se objevily na oslavě narozenin vašeho dítěte!: Moje brzy 8letá dcera chtěla narozeniny s pohádkovou tématikou, a tak jsem se rozhodl, že z nich udělám extra speciální. Vytvořil jsem velmi jednoduchý efekt, díky kterému si všichni návštěvníci party mysleli, že skutečné víly se objevily jen pro ně