Turinys:

Vaiko elgesio modifikatorius: 5 žingsniai (su nuotraukomis)
Vaiko elgesio modifikatorius: 5 žingsniai (su nuotraukomis)

Video: Vaiko elgesio modifikatorius: 5 žingsniai (su nuotraukomis)

Video: Vaiko elgesio modifikatorius: 5 žingsniai (su nuotraukomis)
Video: Milda Karklytė - Palevičienė. Kaip ugdyti vaiko įprotį teisingai elgtis su pinigais? 2024, Lapkritis
Anonim
Vaiko elgesio modifikatorius
Vaiko elgesio modifikatorius

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ą

Pradėti paprasta: pridėkite mygtuką
Pradėti 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.

  1. Prijunkite 5 V maitinimo šaltinį prie teigiamos duonos lentos eilutės
  2. Prijunkite GND prie neigiamos duonos lentos pusės

  3. Įdėkite mygtuką ant duonos lentos
  4. Prijunkite maitinimą eilutėje prie kairiosios apatinės mygtuko dalies

  5. Įžeminkite mygtuką naudodami rezistorių apatinėje dešinėje mygtuko dalyje iki neigiamos duonos lentos eilutės.
  6. 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

Keisti kodą į registracijos mygtuką
Keisti kodą į registracijos mygtuką
Keisti kodą į registracijos mygtuką
Keisti kodą į registracijos mygtuką

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ų

Pridėkite tiek mygtukų, kiek turite vaikų
Pridėkite tiek mygtukų, kiek turite vaikų
Pridėkite tiek mygtukų, kiek turite vaikų
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ą:

  1. Prijunkite maitinimo šaltinio 5 V įtampą prie teigiamos duonos lentos eilutės
  2. Prijunkite GND prie neigiamos duonos lentos pusės

  3. Įdėkite mygtuką ant duonos lentos Prijunkite maitinimo šaltinį eilutėje prie kairiosios apatinės mygtuko dalies
  4. Įžeminkite mygtuką naudodami rezistorių apatinėje dešinėje mygtuko dalyje iki neigiamos duonos lentos eilutės.

  5. 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ą

Pridėti garsinį signalą
Pridėti garsinį signalą
Pridėti garsinį signalą
Pridėti 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.

  1. Pridėkite „Buzzer“prie savo lentos, suplanuokite erdvę, nes pasirodys LCD ekranas.
  2. Prijunkite „Postive“pusę (garsinis signalas turi turėti +) prie pasirinktos smeigtuko. Aš padariau 9.
  3. 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ą

Image
Image
Pridėkite LCD ekraną
Pridėkite LCD ekraną

Dabar leidžia LCD ekranas aiškiai ir lengvai skaityti.

  1. 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.
  2. Naudokite priekinį kairįjį, kad prijungtumėte potenciometrą prie maitinimo bėgio
  3. Naudokite priekinį dešinįjį, kad įžemintumėte potenciometrą.
  4. Nugara bus prijungta prie LCD ekrano.
  5. Pridėkite LCD ekraną prie savo duonos lentos
  6. Įžeminkite pirmąjį ekrano kaištį prie įžeminimo bėgio
  7. Prijunkite antrąjį kaištį prie maitinimo bėgio.
  8. Trečiasis LCD kaištis eina į „Arduino“8 kaištį
  9. Ketvirtasis skystųjų kristalų kaištis eina į „Arduino“7 kaištį
  10. Penkta eina į „Arduino“6 kaištį
  11. Šeštasis smeigtukas eina į „Arduino“5 kaištį
  12. 7–10 kaiščiai LCD ekrane yra tušti
  13. Smeigtukas 11 eina į „Arduino“5 kaištį
  14. 12 kaištis eina į įžemintą bėgelį
  15. 13 kaištis eina į „Arduino“4 kaištį
  16. 14 kaištis eina į potenciometro galą
  17. 15 kaištis eina prie maitinimo bėgio
  18. 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: