Turinys:
- 1 žingsnis: Pradėkite paprasta: pridėkite mygtuką
- 2 žingsnis: modifikuokite kodą, kad užsiregistruotumėte
- 3 žingsnis: pridėkite tiek mygtukų, kiek turite vaikų
- 4 veiksmas: pridėkite garsinį signalą
- 5 veiksmas: pridėkite LCD ekraną
Video: Vaiko elgesio modifikatorius: 5 žingsniai (su nuotraukomis)
2024 Autorius: John Day | [email protected]. Paskutinį kartą keistas: 2024-02-01 14:41
Vaiko elgesio keitiklis įrašo, kiek kartų jūsų vaikas pateko į bėdą (dar žinomas kaip „Streikai“), o kai jam sueina trys, pasigirsta garsinis signalas, o LCD ekranas praneša, kad jis yra įžemintas.
1 žingsnis: Pradėkite paprasta: pridėkite mygtuką
Pirmasis šio projekto žingsnis yra paprastas. Pridėti 1 mygtuką. Šiame žingsnyje jums reikia 4 laidų nuo vyrų iki vyrų, 1 220 rezistoriaus ir mygtuko.
- Prijunkite 5 V maitinimo šaltinį prie teigiamos duonos lentos eilutės
-
Prijunkite GND prie neigiamos duonos lentos pusės
- Įdėkite mygtuką ant duonos lentos
-
Prijunkite maitinimą eilutėje prie kairiosios apatinės mygtuko dalies
- Įžeminkite mygtuką naudodami rezistorių apatinėje dešinėje mygtuko dalyje iki neigiamos duonos lentos eilutės.
- Prijunkite #13 skaitmeninėje „Arduino“pusėje prie viršutinės dešinės mygtuko pusės.
Naudodami kodą patikrinkite, ar mygtukas registruojamas:
int child1ButtonPin = 13; // Tai yra smeigtukas, prie kurio yra prijungtas mūsų mygtukas
int child1ButtonState = 0; // Skaito mygtuko būseną (įjungta/išjungta)
int child1Strike = 0; // Kiek smūgių vaikas turi
// sąrankos funkcija veikia vieną kartą, kai paspaudžiate iš naujo arba įjungiate plokštę
void setup () {Serial.begin (9600); pinMode (vaikas1ButtonPin, INPUT); } // ciklo funkcija kartojasi visam laikui amžinai void loop () {// skaityti mygtuko būseną (įjungta arba išjungta) child1ButtonState = digitalRead (child1ButtonPin); if (child1ButtonState == HIGH) // Mygtukas yra paspaustas {Serial.println ("HIGH"); vėlavimas (5000); }
if (vaikas1ButtonState == LOW)
{Serial.println („LOW“); vėlavimas (5000); }}
2 žingsnis: modifikuokite kodą, kad užsiregistruotumėte
Pakeiskite kodą, kad užregistruotumėte mygtuką:
int child1ButtonPin = 13; // Tai yra smeigtukas, prie kurio mūsų mygtukas yra prijungtas prie vaiko1ButtonState = 0; // Skaito mygtuko būseną (įjungta/išjungta) // Ankstesnis mygtuko būsena int child1Strike = 0;
// sąrankos funkcija veikia vieną kartą, kai paspaudžiate iš naujo arba įjungiate plokštę
void setup () {Serial.begin (9600); pinMode (vaikas1ButtonPin, INPUT); } // ciklo funkcija kartojasi visam laikui amžinai void loop () {// skaityti mygtuko būseną (įjungta arba išjungta) child1ButtonState = digitalRead (child1ButtonPin); if (vaikas1ButtonState! = child1PreviousState) {if (child1ButtonState == HIGH) // Mygtukas paspaustas {child1Strike ++; Serial.println (vaikas1Strike); vėlavimas (1000); }}
}
Tada pakeiskite kodą taip, kad vaikas gautų 3 įspėjimus, po kurių jis gaus pranešimą, kad yra pagrįstas:
int child1ButtonPin = 13; // Tai yra smeigtukas, prie kurio mūsų mygtukas yra prijungtas prie Child1ButtonState = 0; // Skaito mygtuko būseną (įjungta/išjungta) int child1Strike = 0;
// sąrankos funkcija veikia vieną kartą, kai paspaudžiate iš naujo arba įjungiate plokštę
void setup () {Serial.begin (9600); pinMode (vaikas1ButtonPin, INPUT); } // ciklo funkcija kartojasi visam laikui amžinai void loop () {// skaityti mygtuko būseną (įjungta arba išjungta) child1ButtonState = digitalRead (child1ButtonPin); if (vaikas1ButtonState! = child1PreviousState) {if (child1ButtonState == HIGH) // Mygtukas paspaustas {child1Strike ++; Serial.println (vaikas1Strike);
jei (vaikas1 smūgis> = 3)
{Serial.println („Vaikas 1 yra įžemintas!“); } uždelsimas (3000); }}
}
„Serial Moniter“turėtų atrodyti kaip aukščiau pateiktas vaizdas.
Pastaba: įsitikinkite, kad esate patenkinti vėlavimu. Truputį vėluojama ir bus užregistruotas 1 mygtuko paspaudimas daugiau nei vienu!
3 žingsnis: pridėkite tiek mygtukų, kiek turite vaikų
Šiame žingsnyje mes tiesiog nukopijuojame paskutinius porą veiksmų. Pridėkite tiek mygtukų, kiek vaikų. Mano atveju pridedu keturis. Būtinai pakeiskite skaitmeninio kaiščio, prie kurio prijungtas mygtukas, kodą. Mano atveju naudodavau kaiščius nuo 12 iki 10, kad pridėčiau mygtukus. Jei jums reikia priminti, atlikite 1 veiksmą:
- Prijunkite maitinimo šaltinio 5 V įtampą prie teigiamos duonos lentos eilutės
-
Prijunkite GND prie neigiamos duonos lentos pusės
- Įdėkite mygtuką ant duonos lentos Prijunkite maitinimo šaltinį eilutėje prie kairiosios apatinės mygtuko dalies
-
Įžeminkite mygtuką naudodami rezistorių apatinėje dešinėje mygtuko dalyje iki neigiamos duonos lentos eilutės.
- Prijunkite (savo PIN kodą) skaitmeninėje „Arduino“pusėje prie viršutinės dešinės mygtuko pusės.
Taip pat turėsite pakeisti kodą, kad galėtumėte valdyti visus mygtukus. Atminkite, kad jei turite būti atsargūs dėl naudojamų stygų. Negalite kartu pridėti mažųjų raidžių. Geriausia paskelbti 1 kaip eilutės objektą.
int child1ButtonPin = 13; // Tai yra smeigtukas, prie kurio mūsų mygtukas yra prijungtas prie vaiko2ButtonPin = 12; int child3ButtonPin = 11; int child4ButtonPin = 10; int child1ButtonState = 0; // Skaito mygtuko būseną (įjungta/išjungta) int child2ButtonState = 0; int child3ButtonState = 0; int child4ButtonState = 0; int child1PreviousState = 0; int child2PreviousState = 0; int child3PreviousState = 0; int child4PreviousState = 0; int child1Strike = 0; int vaikas2Strike = 0; int child3Strike = 0; int vaikas4Strike = 0;
// sąrankos funkcija veikia vieną kartą, kai paspaudžiate iš naujo arba įjungiate plokštę
void setup () {Serial.begin (9600); pinMode (vaikas1ButtonPin, INPUT); pinMode (vaikas2ButtonPin, INPUT); pinMode (vaikas3ButtonPin, INPUT); pinMode (vaikas4ButtonPin, INPUT); } // ciklo funkcija kartojasi visam laikui amžinai void loop () {// skaityti mygtuko būseną (įjungta arba išjungta) child1ButtonState = digitalRead (child1ButtonPin);
vaikas2ButtonState = digitalRead (child2ButtonPin);
vaikas3ButtonState = digitalRead (child3ButtonPin);
vaikas4ButtonState = digitalRead (child4ButtonPin);
if (vaikas1ButtonState! = vaikas1PreviousState)
{if (child1ButtonState == HIGH) // Mygtukas yra paspaustas {child1Strike ++; Serial.println (String ("1 vaikas turi:") + vaikas1Strike + "streikai");
jei (vaikas1 smūgis> = 3)
{Serial.println („Vaikas 1 yra įžemintas!“); } uždelsimas (3000); }} if (vaikas2ButtonState! = child2PreviousState) {if (child2ButtonState == HIGH) // Mygtukas paspaustas {child2Strike ++; Serial.println (String ("2 vaikas turi:") + vaikas2Strike + "streikai");
jei (vaikas2Strike> = 3)
{Serial.println („Vaikas 2 yra įžemintas!“); } uždelsimas (3000); }}
if (vaikas3ButtonState! = child3PreviousState)
{if (child3ButtonState == HIGH) // Mygtukas yra paspaustas {child3Strike ++; Serial.println (String ("3 vaikas turi:") + child3Strike + "streikai");
jei (Child3Strike> = 3)
{Serial.println („Vaikas 3 yra įžemintas!“); } uždelsimas (3000); }}
if (vaikas4ButtonState! = child4PreviousState)
{if (child4ButtonState == HIGH) // Mygtukas yra paspaustas {child4Strike ++; Serial.println (String ("4 vaikas turi:") + child4Strike + "streikai");
jei (vaikas4Strike> = 3)
{Serial.println („Vaikas 4 yra įžemintas!“); } uždelsimas (3000); }}}
4 veiksmas: pridėkite garsinį signalą
Dabar leiskite įsitikinti, kad jūsų vaikai žino, kad jie yra įžeminti. Pridėkime garso signalą. Norėdami prijungti garso signalą, atlikite šiuos paprastus veiksmus.
- Pridėkite „Buzzer“prie savo lentos, suplanuokite erdvę, nes pasirodys LCD ekranas.
- Prijunkite „Postive“pusę (garsinis signalas turi turėti +) prie pasirinktos smeigtuko. Aš padariau 9.
- Prijunkite kitą pusę prie duonos lentos įžeminto bėgelio.
Tada pakeiskite savo kodą, kad išjungtumėte signalą, kai vaikas tampa įžemintas. Yra keli būdai, kaip koduoti savo garsinį signalą, bet man patinka tonas (buzzerName, hercas, trukmė) dėl savo paprastumo. Taigi to pavyzdys būtų tonas (garsinis signalas, 4000, 300).
int child1ButtonPin = 13; // Tai yra smeigtukas, prie kurio mūsų mygtukas yra prijungtas prie vaiko2ButtonPin = 12; int child3ButtonPin = 11; int child4ButtonPin = 10; int child1ButtonState = 0; // Skaito mygtuko būseną (įjungta/išjungta) int child2ButtonState = 0; int child3ButtonState = 0; int child4ButtonState = 0; int child1PreviousState = 0; int child2PreviousState = 0; int child3PreviousState = 0; int child4PreviousState = 0; int child1Strike = 0; int vaikas2Strike = 0; int child3Strike = 0; int vaikas4Strike = 0; const int garsinis signalas = 2;
// sąrankos funkcija veikia vieną kartą, kai paspaudžiate iš naujo arba įjungiate plokštę
void setup () {Serial.begin (9600); pinMode (vaikas1ButtonPin, INPUT); pinMode (vaikas2ButtonPin, INPUT); pinMode (vaikas3ButtonPin, INPUT); pinMode (vaikas4ButtonPin, INPUT); pinMode (garsinis signalas, OUTPUT); } // ciklo funkcija kartojasi visam laikui amžinai void loop () {// skaityti mygtuko būseną (įjungta arba išjungta) child1ButtonState = digitalRead (child1ButtonPin);
vaikas2ButtonState = digitalRead (child2ButtonPin);
vaikas3ButtonState = digitalRead (child3ButtonPin);
vaikas4ButtonState = digitalRead (child4ButtonPin);
if (vaikas1ButtonState! = vaikas1PreviousState)
{if (child1ButtonState == HIGH) // Mygtukas yra paspaustas {child1Strike ++; Serial.println (String ("1 vaikas turi:") + vaikas1Strike + "streikai");
jei (vaikas1 smūgis> = 3)
{Serial.println („Vaikas 1 yra įžemintas!“); tonas (garsinis signalas, 5000, 500); // Siunčia 5 hercų garsą 5 milisekundėms
}
vėlavimas (3000); }} if (vaikas2ButtonState! = child2PreviousState) {if (child2ButtonState == HIGH) // Mygtukas paspaustas {child2Strike ++; Serial.println (String ("2 vaikas turi:") + vaikas2Strike + "streikai");
jei (vaikas2Strike> = 3)
{Serial.println („Vaikas 2 yra įžemintas!“); tonas (garsinis signalas, 5000, 500); } uždelsimas (3000); }}
if (vaikas3ButtonState! = vaikas3PreviousState)
{if (child3ButtonState == HIGH) // Mygtukas paspaustas {child3Strike ++; Serial.println (String ("3 vaikas turi:") + child3Strike + "streikai");
jei (Child3Strike> = 3)
{Serial.println („Vaikas 3 yra įžemintas!“); tonas (garsinis signalas, 5000, 500); } uždelsimas (3000); }}
if (vaikas4ButtonState! = child4PreviousState)
{if (child4ButtonState == HIGH) // Mygtukas paspaustas {child4Strike ++; Serial.println (String ("4 vaikas turi:") + child4Strike + "streikai");
jei (vaikas4Strike> = 3)
{Serial.println („Vaikas 4 yra įžemintas!“); tonas (garsinis signalas, 5000, 500); } uždelsimas (3000); }}}
5 veiksmas: pridėkite LCD ekraną
Dabar leidžia LCD ekranas aiškiai ir lengvai skaityti.
- Pirmiausia į savo duonos lentą pridėkite potenciometrą, kad galėtumėte valdyti LCD ekraną. Būkite atsargūs, kur jį įdėjote, nes dabar greičiausiai pritrūks vietos.
- Naudokite priekinį kairįjį, kad prijungtumėte potenciometrą prie maitinimo bėgio
- Naudokite priekinį dešinįjį, kad įžemintumėte potenciometrą.
- Nugara bus prijungta prie LCD ekrano.
- Pridėkite LCD ekraną prie savo duonos lentos
- Įžeminkite pirmąjį ekrano kaištį prie įžeminimo bėgio
- Prijunkite antrąjį kaištį prie maitinimo bėgio.
- Trečiasis LCD kaištis eina į „Arduino“8 kaištį
- Ketvirtasis skystųjų kristalų kaištis eina į „Arduino“7 kaištį
- Penkta eina į „Arduino“6 kaištį
- Šeštasis smeigtukas eina į „Arduino“5 kaištį
- 7–10 kaiščiai LCD ekrane yra tušti
- Smeigtukas 11 eina į „Arduino“5 kaištį
- 12 kaištis eina į įžemintą bėgelį
- 13 kaištis eina į „Arduino“4 kaištį
- 14 kaištis eina į potenciometro galą
- 15 kaištis eina prie maitinimo bėgio
- 16 kaištis eina į antžeminį bėgelį.
Dabar turėsite atnaujinti savo kodą, kad galėtumėte naudoti LCD ekraną. Tam naudosite biblioteką „Liquid Crystal“. Būkite atsargūs dėl savo LCD spausdinimo pareiškimų. Nepamirškite išvalyti ekrano, kai jums reikia naujo pranešimo. Taip pat nepamirškite nustatyti žymeklio, kai norite naudoti dvi eilutes.
#įtraukti
„LiquidCrystal lcd“(3, 4, 5, 6, 7, 8); // Nustato LCD ekraną
int child1ButtonPin = 13; // Tai yra smeigtukas, prie kurio mūsų mygtukas yra prijungtas prie int child2ButtonPin = 12; int child3ButtonPin = 11; int child4ButtonPin = 10; int child1ButtonState = 0; // Skaito mygtuko būseną (įjungta/išjungta) int child2ButtonState = 0; int child3ButtonState = 0; int child4ButtonState = 0; int child1PreviousState = 0; // Ankstesnė mygtuko būsena paspausta int child2PreviousState = 0; int child3PreviousState = 0; int child4PreviousState = 0; int child1Strike = 0; // Kiek smūgių vaikas turi int child2Strike = 0; int child3Strike = 0; int child4Strike = 0; const int garsinis signalas = 9; // garsinis signalas
// sąrankos funkcija veikia vieną kartą, kai paspaudžiate iš naujo arba įjungiate plokštę
void setup () {Serial.begin (9600); LCD. pradžia (16, 2); lcd.print („Vaikas“); lcd.setCursor (0, 1); lcd.print ("Elgesio keitiklis"); pinMode (vaikas1ButtonPin, INPUT); pinMode (vaikas2ButtonPin, INPUT); pinMode (vaikas3ButtonPin, INPUT); pinMode (vaikas4ButtonPin, INPUT); pinMode (garsinis signalas, OUTPUT); } // ciklo funkcija kartojasi visam laikui amžinai void loop () {lcd.setCursor (0, 0); // skaityti mygtuko būseną (įjungta arba išjungta) child1ButtonState = digitalRead (child1ButtonPin);
vaikas2ButtonState = digitalRead (child2ButtonPin);
vaikas3ButtonState = digitalRead (child3ButtonPin);
vaikas4ButtonState = digitalRead (child4ButtonPin);
if (vaikas1ButtonState! = vaikas1PreviousState)
{if (child1ButtonState == HIGH) // Mygtukas paspaustas {lcd.clear (); vaikas1Strike ++; Serial.println (String ("1 vaikas turi:") + vaikas1Strike + "streikai"); lcd.print ("1 vaikas turi:"); lcd.setCursor (0, 1); lcd.print (vaikas1Strike); lcd.print ("Streikai!");
jei (vaikas1 smūgis> = 3)
{Serial.println („Vaikas 1 yra įžemintas!“); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("1 vaikas yra"); lcd.setCursor (0, 1); lcd.print ("Įžeminta!");
tonas (garsinis signalas, 5000, 500); // Siunčia 5 hercų garsą 5 milisekundėms
}
vėlavimas (3000); }} if (vaikas2ButtonState! = child2PreviousState) {lcd.clear (); if (child2ButtonState == HIGH) // Mygtukas paspaustas {child2Strike ++; Serial.println (String ("2 vaikas turi:") + vaikas2Strike + "streikai"); lcd.print ("Vaikas 2 turi:"); lcd.setCursor (0, 1); lcd.print (vaikas2Strike); lcd.print ("Streikai!"); if (child2Strike> = 3) {Serial.println ("Vaikas 2 yra įžemintas!"); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("2 vaikas yra"); lcd.setCursor (0, 1); lcd.print ("Įžeminta!"); tonas (garsinis signalas, 5000, 500); } uždelsimas (3000); }}
if (vaikas3ButtonState! = vaikas3PreviousState)
{lcd.clear (); if (child3ButtonState == HIGH) // Mygtukas paspaustas {child3Strike ++; Serial.println (String ("3 vaikas turi:") + child3Strike + "streikai"); lcd.print ("3 vaikas turi:"); lcd.setCursor (0, 1); lcd.print (vaikas3Strike); lcd.print ("Streikai!"); if (child3Strike> = 3) {Serial.println ("Vaikas 3 yra įžemintas!"); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("3 vaikas yra"); lcd.setCursor (0, 1); lcd.print ("Įžeminta!"); tonas (garsinis signalas, 5000, 500); } uždelsimas (3000); }}
if (vaikas4ButtonState! = child4PreviousState)
{lcd.clear (); if (child4ButtonState == HIGH) // Mygtukas paspaustas {child4Strike ++; Serial.println (String ("4 vaikas turi:") + child4Strike + "streikai"); lcd.print ("Vaikas 4 turi:"); lcd.setCursor (0, 1); lcd.print (vaikas4Strike); lcd.print ("Streikai!");
jei (vaikas4Strike> = 3)
{Serial.println („Vaikas 4 yra įžemintas!“); lcd.clear (); lcd.setCursor (0, 0); lcd.print („4 vaikas yra“); lcd.setCursor (0, 1); lcd.print ("Įžeminta!"); tonas (garsinis signalas, 5000, 500); } uždelsimas (3000); }}} Štai ir viskas, ko jums reikia norint sukurti savo vaiko elgesio modifikatorių
Rekomenduojamas:
„Pasidaryk pats“„Leds Arduino“ruletės žaidimas: 3 žingsniai (su nuotraukomis)
„Pasidaryk pats“37 „Leds Arduino“ruletės žaidimas: Ruletė yra kazino žaidimas, pavadintas prancūziško žodžio, reiškiančio mažą ratą, vardu
Dabar nereikia šlapintis, naminių gyvūnėlių elgesio reguliavimo prietaisas, neleidžiantis katėms šlapintis jūsų namuose: 4 žingsniai
Jokio šlapinimosi, naminių gyvūnėlių elgesio reguliavimo prietaisas, neleidžiantis katėms šlapintis jūsų namuose: mane taip vargino kačiukas, kad jai patinka šlapintis ant mano lovos, aš patikrinau viską, ko jai reikia, taip pat nuvedžiau pas veterinarą. Išsiaiškinęs viską, ką galiu galvoti, ir įsiklausęs į gydytojo žodį, suprantu, kad ji tiesiog elgiasi blogai. Taigi t
„Arduino Halloween Edition“- „Zombies“iššokantis ekranas (žingsniai su nuotraukomis): 6 žingsniai
„Arduino Halloween Edition“- „Zombies“iššokantis ekranas (žingsniai su paveikslėliais): norite Helovino metu išgąsdinti savo draugus ir sukelti riksmą? O gal tiesiog norite padaryti gerą išdaigą? Šis iššokantis „Zombies“ekranas gali tai padaryti! Šioje instrukcijoje aš išmokysiu jus, kaip lengvai padaryti iššokančius zombius naudojant „Arduino“. HC-SR0
Varžtas - „pasidaryk pats“belaidis įkrovimo naktinis laikrodis (6 žingsniai): 6 žingsniai (su nuotraukomis)
Varžtas - „Pasidaryk pats“belaidis įkrovimo naktinis laikrodis (6 žingsniai): Indukcinis įkrovimas (taip pat žinomas kaip belaidis įkrovimas arba belaidis įkrovimas) yra belaidžio energijos perdavimo tipas. Jis naudoja elektromagnetinę indukciją tiekti elektros energiją nešiojamiesiems įrenginiams. Dažniausia programa yra „Qi“belaidžio įkrovimo st
Kaip padaryti, kad fėjos pasirodytų jūsų vaiko gimtadienio vakarėlyje!: 4 žingsniai
Kaip padaryti, kad fėjos pasirodytų jūsų vaiko gimtadienio vakarėlyje!: Mano netrukus sulaukusi 8 metų dukra norėjo gimtadienio pasakų tema, todėl nusprendžiau jį padaryti ypatingai. Aš sukūriau labai paprastą efektą, kuris privertė visus vakarėlio dalyvius galvoti, kad tikros fėjos pasirodė tik jiems