Sisällysluettelo:

Lapsen käyttäytymisen muokkaus: 5 vaihetta (kuvilla)
Lapsen käyttäytymisen muokkaus: 5 vaihetta (kuvilla)

Video: Lapsen käyttäytymisen muokkaus: 5 vaihetta (kuvilla)

Video: Lapsen käyttäytymisen muokkaus: 5 vaihetta (kuvilla)
Video: Kuinka auttaa käytöshäiriöistä lasta? 2024, Marraskuu
Anonim
Lapsen käyttäytymisen muokkaaja
Lapsen käyttäytymisen muokkaaja

Lapsen käyttäytymisen muokkaaja tallentaa kuinka monta kertaa lapsesi on joutunut vaikeuksiin (eli lakot) ja kun he saavuttavat kolme, summeri soi ja LCD -näyttö ilmoittaa, että he ovat maadoitettuja.

Vaihe 1: Aloita yksinkertaisesti: Lisää painike

Aloita yksinkertaisesti: Lisää painike
Aloita yksinkertaisesti: Lisää painike

Ensimmäinen vaihe tässä projektissa on yksinkertainen. Lisää 1 -painike. Tässä vaiheessa tarvitset 4 uros -uros -johtoa, 1 220 Resisitoria ja painikkeen.

  1. Liitä virtapuolen 5 V leipälevyn positiiviseen riviin
  2. Liitä GND leipälevyn negatiiviseen puoleen

  3. Aseta painike leipälevylle
  4. Kytke virransyöttö rivin painikkeen vasempaan alaosaan

  5. Maadoita painike käyttämällä vastusta painikkeen oikeassa alakulmassa leipälevyn negatiiviselle riville.
  6. Liitä numero 13 Arduinon digitaalipuolella painikkeen oikeaan yläreunaan.

Varmista koodillasi, että painike rekisteröidään:

int child1ButtonPin = 13; // Tämä on nasta, johon painike on yhdistetty

int child1ButtonState = 0; // lukee painikkeen tilan (päällä/pois)

int lapsi1Strike = 0; // Kuinka monta iskua lapsella on

// asennustoiminto suoritetaan kerran, kun painat nollauspainiketta tai käynnistät kortin

void setup () {Serial.begin (9600); pinMode (child1ButtonPin, INPUT); } // silmukkafunktio toimii yhä uudelleen ikuisesti void loop () {// lukee painikkeen tila (päällä tai pois) child1ButtonState = digitalRead (child1ButtonPin); if (child1ButtonState == HIGH) // -painiketta painetaan {Serial.println ("HIGH"); viive (5000); }

jos (lapsi1ButtonState == LOW)

{Serial.println ("LOW"); viive (5000); }}

Vaihe 2: Muuta koodi rekisteröintipainikkeiksi

Muuta koodi rekisteröintipainikkeiksi
Muuta koodi rekisteröintipainikkeiksi
Muuta koodi rekisteröintipainikkeiksi
Muuta koodi rekisteröintipainikkeiksi

Muokkaa koodia napin rekisteröimiseksi:

int child1ButtonPin = 13; // Tämä on nasta, johon painike on kytketty // Edellinen painikkeen tila int child1Strike = 0;

// asennustoiminto suoritetaan kerran, kun painat nollauspainiketta tai käynnistät kortin

void setup () {Serial.begin (9600); pinMode (child1ButtonPin, INPUT); } // silmukkafunktio toimii yhä uudelleen ikuisesti void loop () {// lukee painikkeen tila (päällä tai pois) child1ButtonState = digitalRead (child1ButtonPin); if (lapsi1ButtonState! = child1PreviousState) {if (child1ButtonState == HIGH) // -painiketta painetaan {child1Strike ++; Serial.println (lapsi1Strike); viive (1000); }}

}

Seuraavaksi Muokkaa koodia niin, että lapsi saa 3 lakkoa, minkä jälkeen hän saa viestin, että he ovat maadoitettuja:

int child1ButtonPin = 13; // Tämä on nasta, johon painike on kytketty int lapsi1Strike = 0;

// asennustoiminto suoritetaan kerran, kun painat nollauspainiketta tai käynnistät kortin

void setup () {Serial.begin (9600); pinMode (child1ButtonPin, INPUT); } // silmukkafunktio juoksee uudestaan ja uudestaan ikuisesti void loop () {// lukee painikkeen tila (päällä tai pois) child1ButtonState = digitalRead (child1ButtonPin); if (lapsi1ButtonState! = child1PreviousState) {if (child1ButtonState == HIGH) // -painiketta painetaan {child1Strike ++; Serial.println (lapsi1Strike);

jos (lapsi1 isku> = 3)

{Serial.println ("Lapsi 1 on maadoitettu!"); } viive (3000); }}

}

Sarjamonitorin pitäisi näyttää yllä olevasta kuvasta.

Huomautus: Varmista, että olet tyytyväinen viiveeseen. Vähän viivettä ja se rekisteröi 1 painikkeen painalluksen useammaksi kuin yhdeksi!

Vaihe 3: Lisää niin monta painiketta kuin sinulla on lapsia

Lisää niin monta painiketta kuin sinulla on lapsia
Lisää niin monta painiketta kuin sinulla on lapsia
Lisää niin monta painiketta kuin sinulla on lapsia
Lisää niin monta painiketta kuin sinulla on lapsia

Tässä vaiheessa kopioimme vain pari viimeistä vaihetta. Lisää yhtä monta painiketta kuin lapset. Omalla kohdalla lisään neljä. Muista vaihtaa koodisi digitaalinen nasta, johon painike on kytketty. Minun tapauksessani käytin nastoja 12-10 painikkeiden lisäämiseksi. Jos tarvitset muistutusta, tässä on vaihe 1:

  1. Liitä virtapuolen 5 V leipälevyn positiiviseen riviin
  2. Liitä GND leipälevyn negatiiviseen puoleen

  3. Työnnä painike leipälevylle Kytke viritys rivillä painikkeen vasempaan alaosaan
  4. Maadoita painike käyttämällä vastusta painikkeen oikeassa alakulmassa leipälevyn negatiiviselle riville.

  5. Yhdistä (PIN -numero) Arduinon digitaalipuolella painikkeen oikeaan yläreunaan.

Sinun on myös muokattava koodia, jotta voit käsitellä kaikkia painikkeitasi. Muista, että jos sinun on oltava varovainen käyttämiesi merkkijonojen kanssa. Et voi lisätä pieniä kirjaimia yhdessä. On parasta julistaa 1 merkkijono -objektiksi.

int child1ButtonPin = 13; // Tämä on tappi, johon painike on kytketty Child2ButtonPin = 12; int child3ButtonPin = 11; int child4ButtonPin = 10; int lapsi1ButtonState = 0; // lukee painikkeen tilan (päällä/pois) int child2ButtonState = 0; int child3ButtonState = 0; int child4ButtonState = 0; int lapsi1EdellinenTila = 0; int lapsi2EdellinenState = 0; int child3PreviousState = 0; int child4PreviousState = 0; int lapsi1Strike = 0; int lapsi2Strike = 0; int child3Strike = 0; int child4Strike = 0;

// asennustoiminto suoritetaan kerran, kun painat nollauspainiketta tai käynnistät kortin

void setup () {Serial.begin (9600); pinMode (child1ButtonPin, INPUT); pinMode (child2ButtonPin, INPUT); pinMode (child3ButtonPin, INPUT); pinMode (child4ButtonPin, INPUT); } // silmukkafunktio toimii yhä uudelleen ikuisesti void loop () {// lukee painikkeen tila (päällä tai pois) child1ButtonState = digitalRead (child1ButtonPin);

lapsi2ButtonState = digitalRead (child2ButtonPin);

child3ButtonState = digitalRead (child3ButtonPin);

child4ButtonState = digitalRead (child4ButtonPin);

if (lapsi1ButtonState! = child1PreviousState)

{if (child1ButtonState == HIGH) // -painiketta painetaan {child1Strike ++; Serial.println (Merkkijono ("Lapsella 1 on:") + lapsi1Strike + "iskee");

jos (lapsi1 isku> = 3)

{Serial.println ("Lapsi 1 on maadoitettu!"); } viive (3000); }} if (child2ButtonState! = child2PreviousState) {if (child2ButtonState == HIGH) // -painiketta painetaan {child2Strike ++; Serial.println (String ("Lapsella 2 on:") + child2Strike + "iskee");

jos (lapsi2Strike> = 3)

{Serial.println ("Lapsi 2 on maadoitettu!"); } viive (3000); }}

if (lapsi3ButtonState! = child3PreviousState)

{if (child3ButtonState == HIGH) // -painiketta painetaan {child3Strike ++; Serial.println (String ("Lapsella 3 on:") + child3Strike + "iskee");

jos (lapsi3Strike> = 3)

{Serial.println ("Lapsi 3 on maadoitettu!"); } viive (3000); }}

if (lapsi4ButtonState! = child4PreviousState)

{if (child4ButtonState == HIGH) // -painiketta painetaan {child4Strike ++; Serial.println (String ("Lapsella 4 on:") + child4Strike + "iskee");

jos (lapsi4Strike> = 3)

{Serial.println ("Lapsi 4 on maadoitettu!"); } viive (3000); }}}

Vaihe 4: Lisää summeri

Lisää summeri
Lisää summeri
Lisää summeri
Lisää summeri

Varmista nyt, että lapsesi tietävät, että he ovat maadoitettuja. Lisätään summeri. Liitä summeri seuraavasti.

  1. Lisää summeri leipälautaasi ja suunnittele tilaa, koska nestekidenäyttö tulee esiin.
  2. Kytke positiivinen puoli (summerissa tulee olla + -merkki) haluamaasi nastaan. Tein 9.
  3. Liitä toinen puoli leipälautasi maadoitettuun kiskoon.

Muokkaa sitten koodiasi asettaaksesi summerin pois päältä, kun lapsi maadoitetaan. On olemassa pari eri tapaa koodata summeri, mutta pidän äänestä (buzzerName, hertz, kesto) yksinkertaisuutensa vuoksi. Esimerkki tästä olisi ääni (summeri, 4000, 300).

int child1ButtonPin = 13; // Tämä on tappi, johon painike on kytketty Child2ButtonPin = 12; int child3ButtonPin = 11; int child4ButtonPin = 10; int lapsi1ButtonState = 0; // lukee painikkeen tilan (päällä/pois) int child2ButtonState = 0; int child3ButtonState = 0; int child4ButtonState = 0; int lapsi1EdellinenTila = 0; int lapsi2EdellinenState = 0; int child3PreviousState = 0; int child4PreviousState = 0; int lapsi1Strike = 0; int lapsi2Strike = 0; int child3Strike = 0; int child4Strike = 0; const int summeri = 2;

// asennustoiminto suoritetaan kerran, kun painat nollauspainiketta tai käynnistät kortin

void setup () {Serial.begin (9600); pinMode (child1ButtonPin, INPUT); pinMode (child2ButtonPin, INPUT); pinMode (child3ButtonPin, INPUT); pinMode (child4ButtonPin, INPUT); pinMode (summeri, OUTPUT); } // silmukkafunktio juoksee uudestaan ja uudestaan ikuisesti void loop () {// lukee painikkeen tila (päällä tai pois) child1ButtonState = digitalRead (child1ButtonPin);

lapsi2ButtonState = digitalRead (child2ButtonPin);

child3ButtonState = digitalRead (child3ButtonPin);

child4ButtonState = digitalRead (child4ButtonPin);

if (lapsi1ButtonState! = child1PreviousState)

{if (child1ButtonState == HIGH) // -painiketta painetaan {child1Strike ++; Serial.println (Merkkijono ("Lapsella 1 on:") + lapsi1Strike + "iskee");

jos (lapsi1 isku> = 3)

{Serial.println ("Lapsi 1 on maadoitettu!"); ääni (summeri, 5000, 500); // Lähettää 5 hertsin äänen 5 millisekunnin ajan

}

viive (3000); }} if (child2ButtonState! = child2PreviousState) {if (child2ButtonState == HIGH) // -painiketta painetaan {child2Strike ++; Serial.println (String ("Lapsella 2 on:") + child2Strike + "iskee");

jos (lapsi2Strike> = 3)

{Serial.println ("Lapsi 2 on maadoitettu!"); ääni (summeri, 5000, 500); } viive (3000); }}

if (lapsi3ButtonState! = child3PreviousState)

{if (child3ButtonState == HIGH) // -painiketta painetaan {child3Strike ++; Serial.println (String ("Lapsella 3 on:") + child3Strike + "iskee");

jos (lapsi3Strike> = 3)

{Serial.println ("Lapsi 3 on maadoitettu!"); ääni (summeri, 5000, 500); } viive (3000); }}

if (lapsi4ButtonState! = child4PreviousState)

{if (child4ButtonState == HIGH) // -painiketta painetaan {child4Strike ++; Serial.println (String ("Lapsella 4 on:") + child4Strike + "iskee");

jos (lapsi4Strike> = 3)

{Serial.println ("Lapsi 4 on maadoitettu!"); ääni (summeri, 5000, 500); } viive (3000); }}}

Vaihe 5: Lisää nestekidenäyttö

Image
Image
Lisää LCD -näyttö
Lisää LCD -näyttö

Nyt LCD -näyttö mahdollistaa selkeän ja helpon lukemisen.

  1. Lisää ensin potentiometri leipälautaasi ohjataksesi lcd -näyttöä. Ole varovainen mihin laitat sen, koska tila on todennäköisesti loppumassa.
  2. Liitä potentiometri virtakiskoon vasemman etuosan avulla
  3. Käytä potentiometrin maadoitusta etuoikealla.
  4. Takaosa liitetään LCD -näyttöön.
  5. Lisää nestekidenäyttö leipälevyllesi
  6. Maadoita ensimmäinen suojatappi maadoituskiskoon
  7. Kytke toinen nasta sähkökiskoon.
  8. Kolmas LCD -nasta menee Arduinon nastaan 8
  9. Neljäs LCD -nasta menee Arduinon nastaan 7
  10. Viides menee Arduinon nastaan 6
  11. Kuudes nasta menee Arduinon nastaan 5
  12. Nestekidenäytön nastat 7-10 ovat tyhjiä
  13. Nasta 11 menee Arduinon nastaan 5
  14. Nasta 12 menee maadoitettuun kiskoon
  15. Nasta 13 menee Arduinon nastaan 4
  16. Nasta 14 menee potentiometrin takaosaan
  17. Nasta 15 menee virtakiskoon
  18. Nasta 16 menee maadoituskiskoon.

Nyt sinun on päivitettävä koodisi käyttääksesi lcd -näyttöä. Tätä varten käytät libary Liquid Crystalia. Ole varovainen lcd -tulostesi kanssa. Muista tyhjentää näyttö, kun tarvitset uuden viestin. Muista myös asettaa kohdistin, kun haluat käyttää kahta riviä.

#sisältää

LiquidCrystal lcd (3, 4, 5, 6, 7, 8); // Asettaa LCD -näytön

int child1ButtonPin = 13; // Tämä on nasta, jonka painike on yhdistetty int child2ButtonPin = 12; int child3ButtonPin = 11; int child4ButtonPin = 10; int lapsi1ButtonState = 0; // lukee painikkeen tilan (päällä/pois) int child2ButtonState = 0; int child3ButtonState = 0; int child4ButtonState = 0; int lapsi1EdellinenTila = 0; // Edellinen painikkeen tila on painettu int child2PreviousState = 0; int child3PreviousState = 0; int child4PreviousState = 0; int lapsi1Strike = 0; // Kuinka monta iskua lapsella on int child2Strike = 0; int child3Strike = 0; int child4Strike = 0; const int summeri = 9; // summeri

// asennustoiminto suoritetaan kerran, kun painat nollauspainiketta tai käynnistät kortin

void setup () {Serial.begin (9600); lcd. alku (16, 2); lcd.print ("Lapsi"); lcd.setCursor (0, 1); lcd.print ("Behavior Modifer"); pinMode (child1ButtonPin, INPUT); pinMode (child2ButtonPin, INPUT); pinMode (child3ButtonPin, INPUT); pinMode (child4ButtonPin, INPUT); pinMode (summeri, OUTPUT); } // silmukkafunktio toimii yhä uudelleen ikuisesti void loop () {lcd.setCursor (0, 0); // lukea painikkeen tila (päällä tai pois päältä) child1ButtonState = digitalRead (child1ButtonPin);

lapsi2ButtonState = digitalRead (child2ButtonPin);

child3ButtonState = digitalRead (child3ButtonPin);

child4ButtonState = digitalRead (child4ButtonPin);

if (lapsi1ButtonState! = child1PreviousState)

{if (child1ButtonState == HIGH) // -painiketta painetaan {lcd.clear (); lapsi1Strike ++; Serial.println (Merkkijono ("Lapsella 1 on:") + lapsi1Strike + "iskee"); lcd.print ("Lapsella 1 on:"); lcd.setCursor (0, 1); lcd.print (lapsi1Strike); lcd.print ("Lakot!");

jos (lapsi1 isku> = 3)

{Serial.println ("Lapsi 1 on maadoitettu!"); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Lapsi 1 on"); lcd.setCursor (0, 1); lcd.print ("Maadoitettu!");

ääni (summeri, 5000, 500); // Lähettää 5 hertsin äänen 5 millisekunnin ajan

}

viive (3000); }} if (child2ButtonState! = child2PreviousState) {lcd.clear (); if (child2ButtonState == HIGH) // -painiketta painetaan {child2Strike ++; Serial.println (String ("Lapsella 2 on:") + child2Strike + "iskee"); lcd.print ("Lapsella 2 on:"); lcd.setCursor (0, 1); lcd.print (lapsi2Strike); lcd.print ("Lakot!"); if (child2Strike> = 3) {Serial.println ("Lapsi 2 on maadoitettu!"); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Lapsi 2 on"); lcd.setCursor (0, 1); lcd.print ("Maadoitettu!"); ääni (summeri, 5000, 500); } viive (3000); }}

if (lapsi3ButtonState! = child3PreviousState)

{lcd.clear (); if (child3ButtonState == HIGH) // -painiketta painetaan {child3Strike ++; Serial.println (String ("Lapsella 3 on:") + child3Strike + "iskee"); lcd.print ("Lapsella 3 on:"); lcd.setCursor (0, 1); lcd.print (child3Strike); lcd.print ("Lakot!"); if (child3Strike> = 3) {Serial.println ("Lapsi 3 on maadoitettu!"); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Lapsi 3 on"); lcd.setCursor (0, 1); lcd.print ("Maadoitettu!"); ääni (summeri, 5000, 500); } viive (3000); }}

if (lapsi4ButtonState! = child4PreviousState)

{lcd.clear (); if (child4ButtonState == HIGH) // -painiketta painetaan {child4Strike ++; Serial.println (String ("Lapsella 4 on:") + child4Strike + "iskee"); lcd.print ("Lapsella 4 on:"); lcd.setCursor (0, 1); lcd.print (child4Strike); lcd.print ("Lakot!");

jos (lapsi4Strike> = 3)

{Serial.println ("Lapsi 4 on maadoitettu!"); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Lapsi 4 on"); lcd.setCursor (0, 1); lcd.print ("Maadoitettu!"); ääni (summeri, 5000, 500); } viive (3000); }}} Ja siinä kaikki, mitä tarvitset oman lapsen käyttäytymismuokkaajan rakentamiseen

Suositeltava: