Tartalomjegyzék:
- 1. lépés: Kezdje egyszerűen: Adjon hozzá egy gombot
- 2. lépés: Módosítsa a kódot a regisztrációs gomb megnyomására
- 3. lépés: Adjon hozzá annyi gombot, amennyi gyermeke van
- 4. lépés: Zümmögő hozzáadása
- 5. lépés: LCD képernyő hozzáadása
Videó: Gyermek viselkedésmódosító: 5 lépés (képekkel)
2024 Szerző: John Day | [email protected]. Utoljára módosítva: 2024-02-01 14:40
A gyermek viselkedésmódosító rögzíti, hogy gyermeke hányszor került bajba (más néven Strikes), és amikor eléri a három évet, egy hangjelzés megszólal, és egy LCD képernyő jelzi, hogy földeltek.
1. lépés: Kezdje egyszerűen: Adjon hozzá egy gombot
A projekt első lépése egyszerű. 1 gomb hozzáadása. Ebben a lépésben 4 db férfi -férfi vezetékre, 1 220 Resisitor -ra és egy nyomógombra van szüksége.
- Csatlakoztassa az 5 V -ot a tápellátás oldalára a kenyértábla pozitív sorához
-
Csatlakoztassa a GND -t a kenyértábla negatív oldalához
- Illessze a nyomógombot a kenyértáblára
- Csatlakoztassa a tápellátást a nyomógomb bal alsó részéhez
-
Földelje le a gombot egy ellenállás segítségével a nyomógomb jobb alsó részén a kenyértábla negatív sorához.
- Csatlakoztassa a #13 -at az Arduino digitális oldalán a gomb jobb felső sarkához.
Ellenőrizze kódjával, hogy a gomb regisztrál:
int child1ButtonPin = 13; // Ez a gomb, amelyhez a nyomógombunk csatlakozik
int child1ButtonState = 0; // Olvassa be a gomb állapotát (be/ki)
int child1Strike = 0; // Hány ütése van a gyermeknek
// a beállítási funkció egyszer fut, amikor megnyomja a reset gombot vagy bekapcsolja a táblát
void setup () {Serial.begin (9600); pinMode (child1ButtonPin, INPUT); } // a ciklusfüggvény újra és újra fut örökké void loop () {// olvassa el a gomb állapotát (be vagy ki) child1ButtonState = digitalRead (child1ButtonPin); if (child1ButtonState == HIGH) // A gomb megnyomása {Serial.println ("HIGH"); késleltetés (5000); }
if (gyermek1ButtonState == LOW)
{Serial.println ("LOW"); késleltetés (5000); }}
2. lépés: Módosítsa a kódot a regisztrációs gomb megnyomására
Módosítsa a kódot egy gombnyomás regisztrálásához:
int child1ButtonPin = 13; // Ez az a gomb, amelyhez a nyomógombunk csatlakozik // Előző gomb állapota int child1Strike = 0;
// a beállítási funkció egyszer fut, amikor megnyomja a reset gombot vagy bekapcsolja a táblát
void setup () {Serial.begin (9600); pinMode (child1ButtonPin, INPUT); } // a ciklusfüggvény újra és újra fut örökké void loop () {// olvassa el a gomb állapotát (be vagy ki) child1ButtonState = digitalRead (child1ButtonPin); if (child1ButtonState! = child1PreviousState) {if (child1ButtonState == HIGH) // A gomb megnyomása {child1Strike ++; Serial.println (gyermek1Strike); késleltetés (1000); }}
}
Ezután módosítsa a kódot úgy, hogy a gyermek 3 ütést kapjon, majd kapjon egy üzenetet arról, hogy megalapozott:
int child1ButtonPin = 13; // Ez az a gomb, amelyhez a nyomógombunk csatlakozik int child1Strike = 0;
// a beállítási funkció egyszer fut, amikor megnyomja a reset gombot vagy bekapcsolja a táblát
void setup () {Serial.begin (9600); pinMode (child1ButtonPin, INPUT); } // a ciklusfüggvény újra és újra fut örökké void loop () {// olvassa el a gomb állapotát (be vagy ki) child1ButtonState = digitalRead (child1ButtonPin); if (child1ButtonState! = child1PreviousState) {if (child1ButtonState == HIGH) // A gomb megnyomása {child1Strike ++; Serial.println (gyermek1Strike);
ha (gyermek1ütés> = 3)
{Serial.println ("Az 1. gyermek megalapozott!"); } késleltetés (3000); }}
}
A soros monitornak úgy kell kinéznie, mint a fenti képen.
Megjegyzés: Győződjön meg arról, hogy jól érzi magát a késleltetéssel. Kicsit késik, és regisztrál 1 gombnyomást több mint egynél!
3. lépés: Adjon hozzá annyi gombot, amennyi gyermeke van
Ebben a lépésben egyszerűen lemásoljuk az utolsó pár lépést. Adjon hozzá annyi gombot, mint a gyerekek. Esetemben négyet adok hozzá. Győződjön meg arról, hogy megváltoztatta a kódot azon a digitális tűn, amelyhez a gomb csatlakozik. Esetemben a 12-10 -es csapokat használtam a gombok hozzáadásához. Ha emlékeztetni szeretne, itt van az 1. lépés:
- Csatlakoztassa az 5 V -ot a tápellátás oldalára a kenyértábla pozitív sorához
-
Csatlakoztassa a GND -t a kenyértábla negatív oldalához
- Helyezze be a nyomógombot a kenyértáblára
- Földelje le a gombot egy ellenállással a nyomógomb jobb alsó részén a kenyértábla negatív sorához.
- Csatlakoztassa (PIN -kódját) az Arduino digitális oldalán a gomb jobb felső sarkához.
Ezenkívül módosítania kell a kódot, hogy kezelje az összes gombot. Kérjük, ne feledje, hogy ha óvatosnak kell lennie a használt húrokkal. Nem adhat hozzá kisbetűket együtt. A legjobb, ha az 1 -t String objektumként deklaráljuk.
int child1ButtonPin = 13; // Ez az a gomb, amelyhez a nyomógombunk csatlakozik a child2ButtonPin = 12; int child3ButtonPin = 11; int child4ButtonPin = 10; int child1ButtonState = 0; // Olvassa be a gomb állapotát (be/ki) int child2ButtonState = 0; int child3ButtonState = 0; int child4ButtonState = 0; int gyermek1Előzőállapot = 0; int gyermek2Előzőállapot = 0; int gyermek3Előzőállapot = 0; int child4PreviousState = 0; int child1Strike = 0; int gyermek2Strike = 0; int child3Strike = 0; int child4Strike = 0;
// a beállítási funkció egyszer fut, amikor megnyomja a reset gombot vagy bekapcsolja a táblát
void setup () {Serial.begin (9600); pinMode (child1ButtonPin, INPUT); pinMode (child2ButtonPin, INPUT); pinMode (child3ButtonPin, INPUT); pinMode (child4ButtonPin, INPUT); } // a ciklusfüggvény újra és újra fut örökké void loop () {// olvassa el a gomb állapotát (be vagy ki) child1ButtonState = digitalRead (child1ButtonPin);
child2ButtonState = digitalRead (child2ButtonPin);
child3ButtonState = digitalRead (child3ButtonPin);
child4ButtonState = digitalRead (child4ButtonPin);
if (child1ButtonState! = child1PreviousState)
{if (child1ButtonState == HIGH) // A gomb megnyomása {child1Strike ++; Serial.println (String ("Az 1. gyermeknek van:") + child1Strike + "ütések");
ha (gyermek1ütés> = 3)
{Serial.println ("Az 1. gyermek megalapozott!"); } késleltetés (3000); }} if (child2ButtonState! = child2PreviousState) {if (child2ButtonState == HIGH) // A gomb megnyomása {child2Strike ++; Serial.println (String ("A 2. gyermeknek van:") + child2Strike + "ütések");
ha (child2Strike> = 3)
{Serial.println ("A 2. gyermek földelve van!"); } késleltetés (3000); }}
if (child3ButtonState! = child3PreviousState)
{if (child3ButtonState == HIGH) // A gomb megnyomása {child3Strike ++; Serial.println (String ("A 3. gyermeknek van:") + child3Strike + "ütések");
ha (child3Strike> = 3)
{Serial.println ("A 3. gyermek földelve van!"); } késleltetés (3000); }}
if (child4ButtonState! = child4PreviousState)
{if (child4ButtonState == HIGH) // A gomb megnyomása {child4Strike ++; Serial.println (String ("A 4. gyermek rendelkezik:") + child4Strike + "ütések");
ha (child4Strike> = 3)
{Serial.println ("A 4. gyermek földelve van!"); } késleltetés (3000); }}}
4. lépés: Zümmögő hozzáadása
Most győződjön meg arról, hogy gyermekei tudják, hogy földelve vannak. Adjunk hozzá egy hangjelzőt. A hangjelző csatlakoztatásához kövesse ezeket az egyszerű lépéseket.
- Adjon hozzá egy zümmögőt a kenyértáblához, és tervezzen helyet, mivel megjelenik egy LCD képernyő.
- Csatlakoztassa a posztív oldalt (a zümmernek + -nak kell lennie a posztív oldalon) az Ön által választott csaphoz. 9 -et csináltam.
- Csatlakoztassa a másik oldalt a kenyértáblájának földelt sínjéhez.
Ezután módosítsa a kódot, hogy kikapcsolja a zümmögőt, amikor egy gyermek földel. Van néhány különböző módszer a zümmögő kódolására, de szeretem a hangot (buzzerName, hertz, duration) az egyszerűsége miatt. Tehát erre példa lehet a tone (zümmögő, 4000, 300).
int child1ButtonPin = 13; // Ez a gomb, amelyhez a nyomógombunk csatlakozik a child2ButtonPin = 12; int child3ButtonPin = 11; int child4ButtonPin = 10; int child1ButtonState = 0; // Olvassa be a gomb állapotát (be/ki) int child2ButtonState = 0; int child3ButtonState = 0; int child4ButtonState = 0; int gyermek1Előzőállapot = 0; int gyermek2Előzőállapot = 0; int gyermek3Előzőállapot = 0; int child4PreviousState = 0; int child1Strike = 0; int gyermek2Strike = 0; int child3Strike = 0; int child4Strike = 0; const int zümmögő = 2;
// a beállítási funkció egyszer fut, amikor megnyomja a reset gombot vagy bekapcsolja a táblát
void setup () {Serial.begin (9600); pinMode (child1ButtonPin, INPUT); pinMode (child2ButtonPin, INPUT); pinMode (child3ButtonPin, INPUT); pinMode (child4ButtonPin, INPUT); pinMode (hangjelző, OUTPUT); } // a ciklusfüggvény újra és újra fut örökké void loop () {// olvassa el a gomb állapotát (be vagy ki) child1ButtonState = digitalRead (child1ButtonPin);
child2ButtonState = digitalRead (child2ButtonPin);
child3ButtonState = digitalRead (child3ButtonPin);
child4ButtonState = digitalRead (child4ButtonPin);
if (child1ButtonState! = child1PreviousState)
{if (child1ButtonState == HIGH) // A gomb megnyomása {child1Strike ++; Serial.println (String ("Az 1. gyermeknek van:") + child1Strike + "ütések");
ha (gyermek1ütés> = 3)
{Serial.println ("Az 1. gyermek megalapozott!"); hangjelzés (zümmögő, 5000, 500); // 5 hertz hangot küld 5 ezredmásodpercig
}
késleltetés (3000); }} if (child2ButtonState! = child2PreviousState) {if (child2ButtonState == HIGH) // A gomb megnyomása {child2Strike ++; Serial.println (String ("A 2. gyermeknek van:") + child2Strike + "ütések");
ha (child2Strike> = 3)
{Serial.println ("A 2. gyermek földelve van!"); hangjelzés (zümmögő, 5000, 500); } késleltetés (3000); }}
if (child3ButtonState! = child3PreviousState)
{if (child3ButtonState == HIGH) // A gomb megnyomása {child3Strike ++; Serial.println (String ("A 3. gyermeknek van:") + child3Strike + "ütések");
ha (child3Strike> = 3)
{Serial.println ("A 3. gyermek földelve van!"); hangjelzés (zümmögő, 5000, 500); } késleltetés (3000); }}
if (child4ButtonState! = child4PreviousState)
{if (child4ButtonState == HIGH) // A gomb megnyomása {child4Strike ++; Serial.println (String ("A 4. gyermek rendelkezik:") + child4Strike + "ütések");
ha (child4Strike> = 3)
{Serial.println ("A 4. gyermek földelve van!"); hangjelzés (zümmögő, 5000, 500); } késleltetés (3000); }}}
5. lépés: LCD képernyő hozzáadása
Most engedje meg az LCD képernyőt a tiszta és könnyű olvasáshoz.
- Először adjon hozzá egy potenciométert a kenyértáblájához az LCD képernyő vezérléséhez. Vigyázzon arra, hová tette, mert valószínűleg mostanra elfogy a hely.
- A bal oldali elülső oldalon csatlakoztassa a potenciométert az áramellátáshoz
- Használja a jobb első részt a potenciométer földeléséhez.
- A hátlap csatlakozik az LCD képernyőhöz.
- Adja hozzá az LCD -képernyőt a kenyértáblához
- Földelje le az első szitacsapot a földelő sínhez
- Csatlakoztassa a második tüskét a hálózati sínhez.
- A harmadik LCD -tű az Arduino 8 -as csapjához megy
- A negyedik LCD -tű az Arduino 7 -es csapjához kerül
- Az ötödik az Arduino 6 -os csapjára vonatkozik
- A hatodik tű az Arduino 5. tűje
- Az LCD -kijelző 7-10 -es csapjai üresek
- A 11 -es tű az Arduino 5 -ös csapjához megy
- A 12 -es csap a földelt sínhez megy
- A 13 -as tű az Arduino 4 -es csapjához kerül
- A 14 -es csap a potenciométer hátuljára megy
- A 15 -ös csap a tápegységhez kerül
- A 16 csap a földi sínhez megy.
Most frissítenie kell a kódot az LCD képernyő használatához. Ehhez a liberális folyékony kristályt fogja használni. Legyen óvatos az LCD nyomtatott nyilatkozatokkal. Ne felejtse el törölni a képernyőt, ha új üzenetre van szüksége. Ne felejtse el beállítani a kurzort, ha két sort szeretne használni.
#befoglalni
LiquidCrystal LCD (3, 4, 5, 6, 7, 8); // Beállítja az LCD képernyőt
int child1ButtonPin = 13; // Ez a gomb, amellyel a nyomógombunk az int child2ButtonPin = 12; int child3ButtonPin = 11; int child4ButtonPin = 10; int child1ButtonState = 0; // Olvassa be a gomb állapotát (be/ki) int child2ButtonState = 0; int child3ButtonState = 0; int child4ButtonState = 0; int gyermek1Előzőállapot = 0; // A gomb előző állapota megnyomva int child2PreviousState = 0; int gyermek3Előzőállapot = 0; int child4PreviousState = 0; int child1Strike = 0; // Hány sztrájk van egy gyermekben int child2Strike = 0; int child3Strike = 0; int child4Strike = 0; const int zümmögő = 9; // a zümmögő
// a beállítási funkció egyszer fut, amikor megnyomja a reset gombot vagy bekapcsolja a táblát
void setup () {Serial.begin (9600); lcd. kezdet (16, 2); lcd.print ("A gyermek"); lcd.setCursor (0, 1); lcd.print ("Behavior Modifer"); pinMode (child1ButtonPin, INPUT); pinMode (child2ButtonPin, INPUT); pinMode (child3ButtonPin, INPUT); pinMode (child4ButtonPin, INPUT); pinMode (hangjelző, OUTPUT); } // a ciklusfüggvény újra és újra fut örökké void loop () {lcd.setCursor (0, 0); // olvassa el a gomb állapotát (be vagy ki) child1ButtonState = digitalRead (child1ButtonPin);
child2ButtonState = digitalRead (child2ButtonPin);
child3ButtonState = digitalRead (child3ButtonPin);
child4ButtonState = digitalRead (child4ButtonPin);
if (child1ButtonState! = child1PreviousState)
{if (child1ButtonState == HIGH) // A gomb megnyomása {lcd.clear (); child1Strike ++; Serial.println (String ("Az 1. gyermeknek van:") + child1Strike + "ütések"); lcd.print ("Az 1. gyermek rendelkezik:"); lcd.setCursor (0, 1); lcd.print (child1Strike); lcd.print ("Ütések!");
ha (gyermek1ütés> = 3)
{Serial.println ("Az 1. gyermek megalapozott!"); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Az 1. gyermek"); lcd.setCursor (0, 1); lcd.print ("Földelt!");
hangjelzés (zümmögő, 5000, 500); // 5 hertz hangot küld 5 ezredmásodpercig
}
késleltetés (3000); }} if (child2ButtonState! = child2PreviousState) {lcd.clear (); if (child2ButtonState == HIGH) // A gomb megnyomása {child2Strike ++; Serial.println (String ("A 2. gyermeknek van:") + child2Strike + "ütések"); lcd.print ("A 2. gyermek rendelkezik:"); lcd.setCursor (0, 1); lcd.print (child2Strike); lcd.print ("Ütések!"); if (child2Strike> = 3) {Serial.println ("A 2. gyermek földelve van!"); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("A 2. gyermek"); lcd.setCursor (0, 1); lcd.print ("Földelt!"); hangjelzés (zümmögő, 5000, 500); } késleltetés (3000); }}
if (child3ButtonState! = child3PreviousState)
{lcd.clear (); if (child3ButtonState == HIGH) // A gomb megnyomása {child3Strike ++; Serial.println (String ("A 3. gyermeknek van:") + child3Strike + "ütések"); lcd.print ("A 3. gyermek rendelkezik:"); lcd.setCursor (0, 1); lcd.print (child3Strike); lcd.print ("Ütések!"); if (child3Strike> = 3) {Serial.println ("A 3. gyermek földelve van!"); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("3. gyermek"); lcd.setCursor (0, 1); lcd.print ("Földelt!"); hangjelzés (zümmögő, 5000, 500); } késleltetés (3000); }}
if (child4ButtonState! = child4PreviousState)
{lcd.clear (); if (child4ButtonState == HIGH) // A gomb megnyomása {child4Strike ++; Serial.println (String ("A 4. gyermek rendelkezik:") + child4Strike + "ütések"); lcd.print ("A 4. gyermek rendelkezik:"); lcd.setCursor (0, 1); lcd.print (child4Strike); lcd.print ("Ütések!");
ha (child4Strike> = 3)
{Serial.println ("A 4. gyermek földelve van!"); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("A 4. gyermek"); lcd.setCursor (0, 1); lcd.print ("Földelt!"); hangjelzés (zümmögő, 5000, 500); } késleltetés (3000); }}} És ennyi, ennyi kell a saját gyermek viselkedésmódosító létrehozásához
Ajánlott:
Útmutató: A Raspberry PI 4 fej nélküli (VNC) telepítése Rpi-képalkotóval és képekkel: 7 lépés (képekkel)
Útmutató: A Raspberry PI 4 fej nélküli (VNC) telepítése Rpi-képalkotóval és képekkel: Ezt a Rapsberry PI-t tervezem használni egy csomó szórakoztató projektben a blogomban. Nyugodtan nézd meg. Vissza akartam kezdeni a Raspberry PI használatát, de nem volt billentyűzetem vagy egér az új helyen. Rég volt, hogy beállítottam egy málnát
Bolt - DIY vezeték nélküli töltő éjszakai óra (6 lépés): 6 lépés (képekkel)
Bolt - DIY vezeték nélküli töltés éjszakai óra (6 lépés): Az induktív töltés (más néven vezeték nélküli töltés vagy vezeték nélküli töltés) a vezeték nélküli áramátvitel egyik típusa. Elektromágneses indukciót használ a hordozható eszközök áramellátásához. A leggyakoribb alkalmazás a Qi vezeték nélküli töltő
Gyermek alvási edzőóra: 6 lépés (képekkel)
Gyerekek alvó edzőórája: szükségem volt egy órára, hogy segítsem a 4 éves ikreimet egy kicsit tovább tanulni aludni (elegem van abból, hogy szombaton reggel fél 5 -kor kell felkelnem), de nem tudják olvasási idő még. Miután néhány elemet böngészett egy nagyon népszerű vásárláson
Gyermek MP3 Music Box: 6 lépés (képekkel)
Gyerekek MP3 Music Box: Amikor új DIY projekteket kerestem az arduino környékén, találtam néhány jó ötletet az RFID -alapú MP3 -lejátszókról gyerekeknek. És van egy nagyszerű professzionális játékdoboz a piacon - ezek a srácok uralkodnak. Nagyszerű üzletet csináltak okos ötletükből. Jelölje be
A számítógép szétszerelése egyszerű lépésekkel és képekkel: 13 lépés (képekkel)
A számítógép szétszerelése egyszerű lépésekkel és képekkel: Ez az utasítás a számítógép szétszereléséről szól. A legtöbb alapvető alkatrész moduláris és könnyen eltávolítható. Fontos azonban, hogy szervezett legyen ezzel kapcsolatban. Ez segít elkerülni az alkatrészek elvesztését, és az újra összerakást is