Obsah:
2025 Autor: John Day | [email protected]. Naposledy zmenené: 2025-01-13 06:58
Modifikátor správania dieťaťa zaznamenáva, koľkokrát sa vaše dieťa dostalo do problémov (alias Údery), a keď dosiahnu tri, zaznie bzučiak a obrazovka LCD oznámi, že sú uzemnené.
Krok 1: Začnite jednoducho: Pridajte tlačidlo
Prvý krok v tomto projekte je jednoduchý. Pridať 1 tlačidlo. V tomto kroku potrebujete 4 mužské až mužské vodiče, 1 220 rezistor a tlačidlo.
- Pripojte 5 V na strane napájania k kladnému radu na doske
-
Pripojte GND k zápornej strane nepájivého poľa
- Vložte tlačidlo na dosku na chlieb
- Pripojte napájanie na postivnom rade k ľavej spodnej časti tlačidla
- Uzemnite tlačidlo pomocou odporu v pravej dolnej časti tlačidla do záporného radu nepájivého poľa.
- Pripojte #13 na digitálnej strane Arduina k pravej hornej časti tlačidla.
Overte pomocou kódu, že sa tlačidlo registruje:
int child1ButtonPin = 13; // Toto je pin, ku ktorému je pripojené naše tlačidlo
int child1ButtonState = 0; // Číta stav tlačidla (zapnuté/vypnuté)
int dieťa1Strike = 0; // Koľko úderov má dieťa
// funkcia nastavenia sa spustí raz, keď stlačíte reset alebo napájate dosku
void setup () {Serial.begin (9600); pinMode (child1ButtonPin, INPUT); } // funkcia slučky beží znova a znova navždy neplatná slučka () {// čítanie stavu tlačidla (zapnuté alebo vypnuté) child1ButtonState = digitalRead (child1ButtonPin); if (child1ButtonState == HIGH) // Tlačidlo je stlačené {Serial.println ("HIGH"); oneskorenie (5 000); }
if (child1ButtonState == LOW)
{Serial.println ("LOW"); oneskorenie (5 000); }}
Krok 2: Upravte kód tak, aby registroval stlačenia tlačidiel
Upravte kód, aby sa zaregistrovalo stlačenie tlačidla:
int child1ButtonPin = 13; // Toto je kolík, ku ktorému je naše tlačidlo pripojené, aby child1ButtonState = 0; // Číta stav tlačidla (zapnuté/vypnuté) int child1PreviousState = 0; // Predchádzajúci stav tlačidla int child1Strike = 0;
// funkcia nastavenia sa spustí raz, keď stlačíte reset alebo napájate dosku
void setup () {Serial.begin (9600); pinMode (child1ButtonPin, INPUT); } // funkcia slučky beží znova a znova navždy neplatná slučka () {// čítanie stavu tlačidla (zapnuté alebo vypnuté) child1ButtonState = digitalRead (child1ButtonPin); if (child1ButtonState! = child1PreviousState) {if (child1ButtonState == HIGH) // Tlačidlo je stlačené {child1Strike ++; Serial.println (child1Strike); oneskorenie (1000); }}
}
Ďalej Upravte kód tak, aby dieťa dostalo tri údery, po ktorých dostane správu, že sú uzemnené:
int child1ButtonPin = 13; // Toto je kolík, ku ktorému je naše tlačidlo pripojené, aby child1ButtonState = 0; // Číta stav tlačidla (zapnuté/vypnuté) int child1PreviousState = 0; int dieťa1Strike = 0;
// funkcia nastavenia sa spustí raz, keď stlačíte reset alebo napájate dosku
void setup () {Serial.begin (9600); pinMode (child1ButtonPin, INPUT); } // funkcia slučky beží znova a znova navždy neplatná slučka () {// čítanie stavu tlačidla (zapnuté alebo vypnuté) child1ButtonState = digitalRead (child1ButtonPin); if (child1ButtonState! = child1PreviousState) {if (child1ButtonState == HIGH) // Tlačidlo je stlačené {child1Strike ++; Serial.println (child1Strike);
ak (child1Strike> = 3)
{Serial.println ("Dieťa 1 je uzemnené!"); } oneskorenie (3000); }}
}
Sériový monitor by mal vyzerať ako na obrázku vyššie.
Poznámka: Uistite sa, že vám oneskorenie vyhovuje. S malým oneskorením a zaregistruje sa 1 stlačenie tlačidla ako viac ako jedno!
Krok 3: Pridajte toľko tlačidiel, koľko budete mať detí
V tomto kroku jednoducho skopírujeme posledných pár krokov. Pridajte toľko tlačidiel, koľko detí. V mojom prípade pridávam štyri. Nezabudnite zmeniť kód digitálneho pinu, ku ktorému je tlačidlo zapojené. V mojom prípade som na pridanie svojich tlačidiel použil kolíky 12 až 10. V prípade, že potrebujete pripomenúť, je tu krok 1:
- Pripojte 5 V na strane napájania k kladnému radu na doske
-
Pripojte GND k zápornej strane nepájivého poľa
- Vložte tlačidlo na nepájivú dosku Pripojte napájanie v rade postive k ľavej spodnej časti tlačidla
- Uzemnite tlačidlo pomocou odporu v pravej dolnej časti tlačidla do záporného radu nepájivého poľa.
- Pripojte (svoje číslo PIN) na digitálnej strane Arduina k pravej hornej časti tlačidla.
Budete tiež musieť upraviť kód, aby zvládol všetky vaše tlačidlá. Majte na pamäti, že ak si musíte dávať pozor na struny, ktoré ste použili. Nemôžete pridávať do malých písmen spoločne. Najlepšie je deklarovať 1 ako objekt typu String.
int child1ButtonPin = 13; // Toto je kolík, ku ktorému je naše tlačidlo pripojené, aby child2ButtonPin = 12; int dieťa3ButtonPin = 11; int dieťa4ButtonPin = 10; int child1ButtonState = 0; // Číta stav tlačidla (zapnuté/vypnuté) int child2ButtonState = 0; int child3ButtonState = 0; int child4ButtonState = 0; int dieťa1PreviousState = 0; int child2PreviousState = 0; int dieťa3PreviousState = 0; int child4PreviousState = 0; int dieťa1Strike = 0; int dieťa2Strike = 0; int dieťa3Strike = 0; int dieťa4Strike = 0;
// funkcia nastavenia sa spustí raz, keď stlačíte reset alebo napájate dosku
void setup () {Serial.begin (9600); pinMode (child1ButtonPin, INPUT); pinMode (child2ButtonPin, INPUT); pinMode (child3ButtonPin, INPUT); pinMode (child4ButtonPin, INPUT); } // funkcia slučky beží znova a znova navždy neplatná slučka () {// čítanie stavu tlačidla (zapnuté alebo vypnuté) child1ButtonState = digitalRead (child1ButtonPin);
child2ButtonState = digitalRead (child2ButtonPin);
child3ButtonState = digitalRead (child3ButtonPin);
child4ButtonState = digitalRead (child4ButtonPin);
if (child1ButtonState! = child1PreviousState)
{if (child1ButtonState == HIGH) // Tlačidlo je stlačené {child1Strike ++; Serial.println (Reťazec („Dieťa 1 má:“) + dieťa1Strike + „štrajky“);
ak (child1Strike> = 3)
{Serial.println („Dieťa 1 je uzemnené!“); } oneskorenie (3000); }} if (child2ButtonState! = child2PreviousState) {if (child2ButtonState == HIGH) // Tlačidlo je stlačené {child2Strike ++; Serial.println (Reťazec („Dieťa 2 má:“) + dieťa2Strike + „štrajky“);
ak (child2Strike> = 3)
{Serial.println („Dieťa 2 je uzemnené!“); } oneskorenie (3000); }}
if (child3ButtonState! = child3PreviousState)
{if (child3ButtonState == HIGH) // Tlačidlo je stlačené {child3Strike ++; Serial.println (Reťazec („Dieťa 3 má:“) + dieťa3Strike + „štrajky“);
ak (child3Strike> = 3)
{Serial.println („Dieťa 3 je uzemnené!“); } oneskorenie (3000); }}
if (child4ButtonState! = child4PreviousState)
{if (child4ButtonState == HIGH) // Tlačidlo je stlačené {child4Strike ++; Serial.println (Reťazec („Dieťa 4 má:“) + dieťa4Strike + „štrajky“);
ak (child4Strike> = 3)
{Serial.println („Dieťa 4 je uzemnené!“); } oneskorenie (3000); }}}
Krok 4: Pridajte bzučiak
Teraz sa uistite, že vaše deti vedia, že sú uzemnené. Pridajme bzučiak. Ak chcete pripojiť bzučiak, postupujte podľa týchto jednoduchých krokov.
- Pridajte na svoj prkénko bzučiak a naplánujte si miesto, pretože sa blíži LCD obrazovka.
- Pripojte postívnu stranu (bzučiak by mal mať na kladnej strane +) k pinu podľa vášho výberu. Urobil som 9.
- Pripojte druhú stranu k uzemnenej koľajnici vášho nepájivého poľa.
Potom upravte svoj kód a vypnite bzučiak, keď sa dieťa uzemní. Existuje niekoľko rôznych spôsobov kódovania bzučiaka, ale páči sa mi tón (buzzerName, hertz, trvanie) pre jeho jednoduchosť. Príkladom by bol tón (bzučiak, 4000, 300).
int child1ButtonPin = 13; // Toto je kolík, ku ktorému je naše tlačidlo pripojené, aby child2ButtonPin = 12; int dieťa3ButtonPin = 11; int dieťa4ButtonPin = 10; int child1ButtonState = 0; // Číta stav tlačidla (zapnuté/vypnuté) int child2ButtonState = 0; int child3ButtonState = 0; int child4ButtonState = 0; int dieťa1PreviousState = 0; int child2PreviousState = 0; int dieťa3PreviousState = 0; int child4PreviousState = 0; int dieťa1Strike = 0; int dieťa2Strike = 0; int dieťa3Strike = 0; int dieťa4Strike = 0; bzučiak const int = 2;
// funkcia nastavenia sa spustí raz, keď stlačíte reset alebo napájate dosku
void setup () {Serial.begin (9600); pinMode (child1ButtonPin, INPUT); pinMode (child2ButtonPin, INPUT); pinMode (child3ButtonPin, INPUT); pinMode (child4ButtonPin, INPUT); pinMode (bzučiak, VÝSTUP); } // funkcia slučky beží znova a znova navždy neplatná slučka () {// čítanie stavu tlačidla (zapnuté alebo vypnuté) child1ButtonState = digitalRead (child1ButtonPin);
child2ButtonState = digitalRead (child2ButtonPin);
child3ButtonState = digitalRead (child3ButtonPin);
child4ButtonState = digitalRead (child4ButtonPin);
if (child1ButtonState! = child1PreviousState)
{if (child1ButtonState == HIGH) // Tlačidlo je stlačené {child1Strike ++; Serial.println (Reťazec („Dieťa 1 má:“) + dieťa1Strike + „štrajky“);
ak (child1Strike> = 3)
{Serial.println („Dieťa 1 je uzemnené!“); tón (bzučiak, 5000, 500); // Odošle zvuk 5 hertzov na 5 milisekúnd
}
oneskorenie (3000); }} if (child2ButtonState! = child2PreviousState) {if (child2ButtonState == HIGH) // Tlačidlo je stlačené {child2Strike ++; Serial.println (Reťazec („Dieťa 2 má:“) + dieťa2Strike + „štrajky“);
ak (child2Strike> = 3)
{Serial.println („Dieťa 2 je uzemnené!“); tón (bzučiak, 5000, 500); } oneskorenie (3000); }}
if (child3ButtonState! = child3PreviousState)
{if (child3ButtonState == HIGH) // Tlačidlo je stlačené {child3Strike ++; Serial.println (Reťazec („Dieťa 3 má:“) + dieťa3Strike + „štrajky“);
ak (child3Strike> = 3)
{Serial.println („Dieťa 3 je uzemnené!“); tón (bzučiak, 5000, 500); } oneskorenie (3000); }}
if (child4ButtonState! = child4PreviousState)
{if (child4ButtonState == HIGH) // Tlačidlo je stlačené {child4Strike ++; Serial.println (Reťazec („Dieťa 4 má:“) + dieťa4Strike + „štrajky“);
ak (child4Strike> = 3)
{Serial.println („Dieťa 4 je uzemnené!“); tón (bzučiak, 5000, 500); } oneskorenie (3000); }}}
Krok 5: Pridajte obrazovku LCD
Teraz umožňuje obrazovka LCD jasné a ľahké čítanie.
- Najskôr pridajte na svoju dosku potenciometer na ovládanie obrazovky LCD. Dávajte si pozor na to, kam ho umiestnite, pretože vám pravdepodobne už dôjde miesto.
- Pomocou ľavého predného rohu pripojte potenciometer k napájacej lište
- Použite pravý predný uzemnenie potenciometra.
- Zadná strana bude spojená s obrazovkou LCD.
- Pridajte obrazovku LCD na svoj breadboard
- Uzemnite prvý kolík obrazovky k uzemňovacej lište
- Druhý kolík zapojte do napájacej lišty.
- Tretí pin LCD smeruje k pinu 8 na Arduine
- Štvrtý kolík LCD ide na pin 7 na Arduine
- Piaty ide na Pin 6 na Arduine
- Šiesty pin ide na pin 5 na Arduine
- Piny 7 až 10 na LCD obrazovke sú prázdne
- Pin 11 ide na pin 5 na Arduino
- Kolík 12 smeruje k uzemnenej koľajnici
- Pin 13 ide na Pin 4 na Arduino
- Kolík 14 smeruje do zadnej časti potenciometra
- Kolík 15 smeruje k napájacej lište
- Kolík 16 smeruje k pozemnej koľajnici.
Teraz budete musieť aktualizovať svoj kód, aby ste mohli používať obrazovku LCD. Na to použijete knižnicu Liquid Crystal. Dávajte si pozor na tlačové vyhlásenia na LCD. Keď potrebujete novú správu, nezabudnite vymazať obrazovku. Nezabudnite tiež nastaviť kurzor, ak chcete použiť dva riadky.
#zahrnúť
LiquidCrystal lcd (3, 4, 5, 6, 7, 8); // Nastaví obrazovku LCD
int child1ButtonPin = 13; // Toto je kolík, ku ktorému je naše tlačidlo pripojené k int child2ButtonPin = 12; int dieťa3ButtonPin = 11; int dieťa4ButtonPin = 10; int child1ButtonState = 0; // Číta stav tlačidla (zapnuté/vypnuté) int child2ButtonState = 0; int child3ButtonState = 0; int child4ButtonState = 0; int dieťa1PreviousState = 0; // Predchádzajúci stav stlačeného tlačidla int child2PreviousState = 0; int dieťa3PreviousState = 0; int child4PreviousState = 0; int dieťa1Strike = 0; // Koľko úderov má dieťa int child2Strike = 0; int dieťa3Strike = 0; int dieťa4Strike = 0; bzučiak const int = 9; // Bzučiak
// funkcia nastavenia sa spustí raz, keď stlačíte reset alebo napájate dosku
void setup () {Serial.begin (9600); lcd.begin (16, 2); lcd.print („Dieťa“); lcd.setCursor (0, 1); lcd.print ("Modifikátor správania"); pinMode (child1ButtonPin, INPUT); pinMode (child2ButtonPin, INPUT); pinMode (child3ButtonPin, INPUT); pinMode (child4ButtonPin, INPUT); pinMode (bzučiak, VÝSTUP); } // funkcia slučky beží znova a znova navždy neplatná slučka () {lcd.setCursor (0, 0); // prečítanie stavu tlačidla (zapnuté alebo vypnuté) child1ButtonState = digitalRead (child1ButtonPin);
child2ButtonState = digitalRead (child2ButtonPin);
child3ButtonState = digitalRead (child3ButtonPin);
child4ButtonState = digitalRead (child4ButtonPin);
if (child1ButtonState! = child1PreviousState)
{if (child1ButtonState == HIGH) // Tlačidlo je stlačené {lcd.clear (); child1Strike ++; Serial.println (Reťazec („Dieťa 1 má:“) + dieťa1Strike + „štrajky“); lcd.print („Dieťa 1 má:“); lcd.setCursor (0, 1); lcd.print (child1Strike); lcd.print („Štrajky!“);
ak (child1Strike> = 3)
{Serial.println ("Dieťa 1 je uzemnené!"); lcd.clear (); lcd.setCursor (0, 0); lcd.print („Dieťa 1 je“); lcd.setCursor (0, 1); lcd.print („Uzemnený!“);
tón (bzučiak, 5000, 500); // Odošle zvuk 5 hertzov na 5 milisekúnd
}
oneskorenie (3000); }} if (child2ButtonState! = child2PreviousState) {lcd.clear (); if (child2ButtonState == HIGH) // Tlačidlo je stlačené {child2Strike ++; Serial.println (Reťazec („Dieťa 2 má:“) + dieťa2Strike + „štrajky“); lcd.print („Dieťa 2 má:“); lcd.setCursor (0, 1); lcd.print (child2Strike); lcd.print („Štrajky!“); if (child2Strike> = 3) {Serial.println ("Dieťa 2 je uzemnené!"); lcd.clear (); lcd.setCursor (0, 0); lcd.print („Dieťa 2 je“); lcd.setCursor (0, 1); lcd.print („Uzemnený!“); tón (bzučiak, 5000, 500); } oneskorenie (3000); }}
if (child3ButtonState! = child3PreviousState)
{lcd.clear (); if (child3ButtonState == HIGH) // Tlačidlo je stlačené {child3Strike ++; Serial.println (Reťazec („Dieťa 3 má:“) + dieťa3Strike + „štrajky“); lcd.print („Dieťa 3 má:“); lcd.setCursor (0, 1); lcd.print (child3Strike); lcd.print („Štrajky!“); if (child3Strike> = 3) {Serial.println ("Dieťa 3 je uzemnené!"); lcd.clear (); lcd.setCursor (0, 0); lcd.print („Dieťa 3 je“); lcd.setCursor (0, 1); lcd.print („Uzemnený!“); tón (bzučiak, 5000, 500); } oneskorenie (3000); }}
if (child4ButtonState! = child4PreviousState)
{lcd.clear (); if (child4ButtonState == HIGH) // Tlačidlo je stlačené {child4Strike ++; Serial.println (Reťazec („Dieťa 4 má:“) + dieťa4Strike + „štrajky“); lcd.print („Dieťa 4 má:“); lcd.setCursor (0, 1); lcd.print (child4Strike); lcd.print („Štrajky!“);
ak (child4Strike> = 3)
{Serial.println ("Dieťa 4 je uzemnené!"); lcd.clear (); lcd.setCursor (0, 0); lcd.print („Dieťa 4 je“); lcd.setCursor (0, 1); lcd.print („Uzemnený!“); tón (bzučiak, 5000, 500); } oneskorenie (3000); }}} A to je všetko, to je všetko, čo potrebujete na zostavenie vlastného modifikátora správania dieťaťa