Kazalo:

Modifikator vedenja otrok: 5 korakov (s slikami)
Modifikator vedenja otrok: 5 korakov (s slikami)

Video: Modifikator vedenja otrok: 5 korakov (s slikami)

Video: Modifikator vedenja otrok: 5 korakov (s slikami)
Video: Как перестать проигрывать? План на победу.#настольныйтеннис #tabletennis 2024, November
Anonim
Modifikator vedenja otrok
Modifikator vedenja otrok

Modifikator vedenja otrok zabeleži, kolikokrat je vaš otrok imel težave (aka Strikes), in ko dosežejo tri, se oglasi zvočni signal in LCD zaslon sporoči, da so ozemljeni.

1. korak: Začnite preprosto: dodajte gumb

Začni preprosto: dodajte gumb
Začni preprosto: dodajte gumb

Prvi korak v tem projektu je preprost. Dodaj 1 gumb. V tem koraku potrebujete 4 moške do moške žice, 1 220 uporov in pritisni gumb.

  1. Priključite 5V na strani napajanja v pozitivno vrstico na plošči
  2. GND priključite na negativno stran plošče

  3. Gumb vstavite na ploščo
  4. Napajalno vrstico priključite na spodnji levi del potisnega gumba

  5. Gumb ozemljite z uporom v spodnjem desnem delu potisnega gumba do negativne vrstice plošče.

  6. Priključite #13 na digitalni strani Arduina na zgornjo desno stran gumba.

S kodo preverite, ali se gumb registrira:

int child1ButtonPin = 13; // To je pin, na katerega je povezan naš potisni gumb

int child1ButtonState = 0; // Prebere stanje gumba (vklop/izklop)

int child1Strike = 0; // Koliko stavk ima otrok

// nastavitvena funkcija se zažene enkrat, ko pritisnete reset ali vklopite ploščo

void setup () {Serial.begin (9600); pinMode (child1ButtonPin, INPUT); } // funkcija zanke se vedno znova zažene void loop () {// prebere stanje gumba (vklopljeno ali izklopljeno) child1ButtonState = digitalRead (child1ButtonPin); if (child1ButtonState == HIGH) // Gumb je pritisnjen {Serial.println ("HIGH"); zamuda (5000); }

če (child1ButtonState == LOW)

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

2. korak: Spremenite kodo za registracijo pritiskov gumbov

Spremenite kodo za registracijo pritiskov gumbov
Spremenite kodo za registracijo pritiskov gumbov
Spremenite kodo za registracijo pritiskov gumbov
Spremenite kodo za registracijo pritiskov gumbov

Spremenite kodo, da registrirate gumb:

int child1ButtonPin = 13; // To je pin, ki ga je naš potisni gumb priključil naint child1ButtonState = 0; // Prebere stanje gumba (vklop/izklop) int child1PreviousState = 0; // Prejšnje stanje gumba int child1Strike = 0;

// nastavitvena funkcija se zažene enkrat, ko pritisnete reset ali vklopite ploščo

void setup () {Serial.begin (9600); pinMode (child1ButtonPin, INPUT); } // funkcija zanke se vedno znova zažene void loop () {// prebere stanje gumba (vklop ali izklop) child1ButtonState = digitalRead (child1ButtonPin); if (child1ButtonState! = child1PreviousState) {if (child1ButtonState == HIGH) // Gumb je pritisnjen {child1Strike ++; Serial.println (child1Strike); zamuda (1000); }}

}

Nato spremenite kodo, tako da bo otrok dobil 3 opomine, nato pa bo prejel sporočilo, da je utemeljen:

int child1ButtonPin = 13; // To je pin, ki ga je naš potisni gumb priključil naint child1ButtonState = 0; // Prebere stanje gumba (vklop/izklop) int child1PreviousState = 0; int child1Strike = 0;

// nastavitvena funkcija se zažene enkrat, ko pritisnete reset ali vklopite ploščo

void setup () {Serial.begin (9600); pinMode (child1ButtonPin, INPUT); } // funkcija zanke se vedno znova zažene void loop () {// prebere stanje gumba (vklop ali izklop) child1ButtonState = digitalRead (child1ButtonPin); if (child1ButtonState! = child1PreviousState) {if (child1ButtonState == HIGH) // Gumb je pritisnjen {child1Strike ++; Serial.println (child1Strike);

če (child1Strike> = 3)

{Serial.println ("Otrok 1 je ozemljen!"); } zakasnitev (3000); }}

}

Serijski monitor mora izgledati kot zgornja slika.

Opomba: Poskrbite, da vam zamuda ne ustreza. Malo zamude in registriral bo 1 pritisk gumba kot več kot en!

3. korak: Dodajte toliko gumbov, kot jih imate

Dodajte toliko gumbov, kot imate otroke
Dodajte toliko gumbov, kot imate otroke
Dodajte toliko gumbov, kot imate otroke
Dodajte toliko gumbov, kot imate otroke

V tem koraku preprosto kopiramo zadnjih nekaj korakov. Dodajte toliko gumbov, kot jih dodate otrokom. V mojem primeru dodam štiri. Ne pozabite spremeniti svoje kode na digitalni pin, na katerega je priklopljen gumb. V mojem primeru sem za dodajanje gumbov uporabil zatiče od 12 do 10. Če vas je treba opomniti, je 1. korak:

  1. Priključite 5V na strani napajanja v pozitivno vrstico na plošči

  2. GND priključite na negativno stran plošče
  3. Vstavite gumb na ploščo Priključite napajanje pozitivne vrstice na spodnji levi del potisnega gumba

  4. Gumb ozemljite z uporom v spodnjem desnem delu potisnega gumba do negativne vrstice plošče.

  5. Povežite (vaš PIN) na digitalni strani Arduina z zgornjo desno stran gumba.

Prav tako boste morali spremeniti kodo, da bo upravljala vse gumbe. Upoštevajte, da morate biti previdni pri nizih, ki ste jih uporabljali. Ne morete skupaj dodajati malih črk. Najbolje je, da 1 označite kot objekt String.

int child1ButtonPin = 13; // To je pin, ki ga naš potisni gumb poveže s toint child2ButtonPin = 12; int child3ButtonPin = 11; int child4ButtonPin = 10; int child1ButtonState = 0; // Prebere stanje gumba (vklop/izklop) 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 child2Strike = 0; int child3Strike = 0; int child4Strike = 0;

// nastavitvena funkcija se enkrat zažene, ko pritisnete reset ali vklopite ploščo

void setup () {Serial.begin (9600); pinMode (child1ButtonPin, INPUT); pinMode (child2ButtonPin, INPUT); pinMode (child3ButtonPin, INPUT); pinMode (child4ButtonPin, INPUT); } // funkcija zanke se vedno znova zažene void loop () {// prebere stanje gumba (vklopljeno ali izklopljeno) child1ButtonState = digitalRead (child1ButtonPin);

child2ButtonState = digitalno branje (child2ButtonPin);

child3ButtonState = digitalno branje (child3ButtonPin);

child4ButtonState = digitalno branje (child4ButtonPin);

if (otrok1ButtonState! = otrok1PreviousState)

{if (child1ButtonState == HIGH) // Gumb je pritisnjen {child1Strike ++; Serial.println (String ("Otrok 1 ima:") + child1Strike + "stavke");

če (child1Strike> = 3)

{Serial.println ("Otrok 1 je ozemljen!"); } zakasnitev (3000); }} if (child2ButtonState! = child2PreviousState) {if (child2ButtonState == HIGH) // Gumb je pritisnjen {child2Strike ++; Serial.println (String ("Otrok 2 ima:") + child2Strike + "stavke");

če (child2Strike> = 3)

{Serial.println ("Otrok 2 je ozemljen!"); } zakasnitev (3000); }}

if (child3ButtonState! = child3PreviousState)

{if (child3ButtonState == HIGH) // Gumb je pritisnjen {child3Strike ++; Serial.println (String ("Otrok 3 ima:") + child3Strike + "stavke");

če (child3Strike> = 3)

{Serial.println ("Otrok 3 je ozemljen!"); } zakasnitev (3000); }}

if (child4ButtonState! = child4PreviousState)

{if (child4ButtonState == HIGH) // Gumb je pritisnjen {child4Strike ++; Serial.println (String ("Otrok 4 ima:") + child4Strike + "stavke");

če (child4Strike> = 3)

{Serial.println ("Otrok 4 je ozemljen!"); } zakasnitev (3000); }}}

4. korak: Dodajte zvočni signal

Dodajte zvočni signal
Dodajte zvočni signal
Dodajte zvočni signal
Dodajte zvočni signal

Zdaj pa poskrbimo, da bodo vaši otroci vedeli, da so prizemljeni. Dodamo zvočni signal. Če želite povezati zvočni signal, sledite tem preprostim korakom.

  1. Na mizo dodajte zvočni signal, načrtujte prostor, saj se prikaže LCD zaslon.
  2. Priključite stran Postive (zvočni signal mora imeti + na pozitivni strani) na izbrani pin. Jaz sem naredil 9.
  3. Priključite drugo stran na ozemljeno tirnico vaše plošče.

Nato spremenite kodo, da izklopite zvočni signal, ko se otrok ozemlji. Obstaja nekaj različnih načinov kodiranja vašega brenčalnika, vendar mi je všeč ton (buzzerName, herc, trajanje) zaradi njegove preprostosti. Primer tega bi bil lahko ton (brenčalo, 4000, 300).

int child1ButtonPin = 13; // To je pin, ki ga naš potisni gumb poveže s toint child2ButtonPin = 12; int child3ButtonPin = 11; int child4ButtonPin = 10; int child1ButtonState = 0; // Prebere stanje gumba (vklop/izklop) 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 child2Strike = 0; int child3Strike = 0; int child4Strike = 0; zvočni signal const int = 2;

// nastavitvena funkcija se zažene enkrat, ko pritisnete reset ali vklopite ploščo

void setup () {Serial.begin (9600); pinMode (child1ButtonPin, INPUT); pinMode (child2ButtonPin, INPUT); pinMode (child3ButtonPin, INPUT); pinMode (child4ButtonPin, INPUT); pinMode (zvočni signal, OUTPUT); } // funkcija zanke se vedno znova zažene void loop () {// prebere stanje gumba (vklop ali izklop) child1ButtonState = digitalRead (child1ButtonPin);

child2ButtonState = digitalno branje (child2ButtonPin);

child3ButtonState = digitalno branje (child3ButtonPin);

child4ButtonState = digitalno branje (child4ButtonPin);

if (otrok1ButtonState! = otrok1PreviousState)

{if (child1ButtonState == HIGH) // Gumb je pritisnjen {child1Strike ++; Serial.println (String ("Otrok 1 ima:") + child1Strike + "stavke");

če (child1Strike> = 3)

{Serial.println ("Otrok 1 je ozemljen!"); ton (zvonec, 5000, 500); // Pošlje 5 hercev zvok za 5 milisekund

}

zamuda (3000); }} if (child2ButtonState! = child2PreviousState) {if (child2ButtonState == HIGH) // Gumb je pritisnjen {child2Strike ++; Serial.println (String ("Otrok 2 ima:") + child2Strike + "stavke");

če (child2Strike> = 3)

{Serial.println ("Otrok 2 je ozemljen!"); ton (zvonec, 5000, 500); } zakasnitev (3000); }}

if (child3ButtonState! = child3PreviousState)

{if (child3ButtonState == HIGH) // Gumb je pritisnjen {child3Strike ++; Serial.println (String ("Otrok 3 ima:") + child3Strike + "stavke");

če (child3Strike> = 3)

{Serial.println ("Otrok 3 je ozemljen!"); ton (zvonec, 5000, 500); } zakasnitev (3000); }}

if (child4ButtonState! = child4PreviousState)

{if (child4ButtonState == HIGH) // Gumb je pritisnjen {child4Strike ++; Serial.println (String ("Otrok 4 ima:") + child4Strike + "stavke");

če (child4Strike> = 3)

{Serial.println ("Otrok 4 je ozemljen!"); ton (zvonec, 5000, 500); } zakasnitev (3000); }}}

5. korak: Dodajte LCD zaslon

Image
Image
Dodajte LCD zaslon
Dodajte LCD zaslon

Zdaj omogoča LCD zaslon za jasno in enostavno branje.

  1. Najprej na nadzorno ploščo dodajte potenciometer za nadzor LCD zaslona. Bodite previdni, kam ga postavite, saj vam verjetno že zmanjka prostora.
  2. S sprednjo levo priključite potenciometer na napajalno tirnico
  3. S sprednjo desno stranjo ozemljite potenciometer.
  4. Hrbtna stran bo povezana z LCD zaslonom.
  5. Dodajte LCD zaslon na ploščo
  6. Prvi zatič zaslona ozemljite na ozemljitveno tirnico
  7. Drugi zatič priključite na napajalno tirnico.
  8. Tretji zatič LCD pride do Pin 8 na Arduinu
  9. Četrti zatič LCD gre na Pin 7 na Arduinu
  10. Peti gre na Pin 6 na Arduinu
  11. Šesti pin gre na pin 5 na Arduinu
  12. Zatiči od 7 do 10 na LCD zaslonu so prazni
  13. Pin 11 gre na Pin 5 na Arduinu
  14. Pin 12 gre na ozemljeno tirnico
  15. Pin 13 gre na Pin 4 na Arduinu
  16. Pin 14 gre na zadnjo stran potenciometra
  17. Pin 15 gre na Power rail
  18. Pin 16 gre na zemeljsko tirnico.

Zdaj boste morali za uporabo LCD zaslona posodobiti kodo. Za to boste uporabili knjižnični tekoči kristal. Bodite previdni pri izjavah o tiskanju na LCD. Ne pozabite počistiti zaslona, ko potrebujete novo sporočilo. Ne pozabite tudi nastaviti kurzorja, če želite uporabiti dve vrstici.

#vključi

LCD tekoči kristal (3, 4, 5, 6, 7, 8); // Nastavi LCD zaslon

int child1ButtonPin = 13; // To je pin, ki ga je naš potisni gumb priključil na int child2ButtonPin = 12; int child3ButtonPin = 11; int child4ButtonPin = 10; int child1ButtonState = 0; // Prebere stanje gumba (vklop/izklop) int child2ButtonState = 0; int child3ButtonState = 0; int child4ButtonState = 0; int child1PreviousState = 0; // Prejšnje stanje gumba pritisnjenega int child2PreviousState = 0; int child3PreviousState = 0; int child4PreviousState = 0; int child1Strike = 0; // Koliko stavk ima otrok int child2Strike = 0; int child3Strike = 0; int child4Strike = 0; zvočni signal const int = 9; // zvočni signal

// nastavitvena funkcija se enkrat zažene, ko pritisnete reset ali vklopite ploščo

void setup () {Serial.begin (9600); lcd.begin (16, 2); lcd.print ("Otrok"); lcd.setCursor (0, 1); lcd.print ("Sprememba vedenja"); pinMode (child1ButtonPin, INPUT); pinMode (child2ButtonPin, INPUT); pinMode (child3ButtonPin, INPUT); pinMode (child4ButtonPin, INPUT); pinMode (zvočni signal, OUTPUT); } // funkcija zanke se vedno znova izvaja za vedno void loop () {lcd.setCursor (0, 0); // preberemo stanje gumba (vklopljeno ali izklopljeno) child1ButtonState = digitalRead (child1ButtonPin);

child2ButtonState = digitalno branje (child2ButtonPin);

child3ButtonState = digitalno branje (child3ButtonPin);

child4ButtonState = digitalno branje (child4ButtonPin);

if (otrok1ButtonState! = otrok1PreviousState)

{if (child1ButtonState == HIGH) // Gumb je pritisnjen {lcd.clear (); child1Strike ++; Serial.println (String ("Otrok 1 ima:") + child1Strike + "stavke"); lcd.print ("Otrok 1 ima:"); lcd.setCursor (0, 1); lcd.print (child1Strike); lcd.print ("Stavke!");

če (child1Strike> = 3)

{Serial.println ("Otrok 1 je ozemljen!"); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Otrok 1 je"); lcd.setCursor (0, 1); lcd.print ("Ozemljeno!");

ton (zvonec, 5000, 500); // Pošlje 5 hercev zvok za 5 milisekund

}

zamuda (3000); }} if (child2ButtonState! = child2PreviousState) {lcd.clear (); if (child2ButtonState == HIGH) // Gumb je pritisnjen {child2Strike ++; Serial.println (String ("Otrok 2 ima:") + child2Strike + "stavke"); lcd.print ("Otrok 2 ima:"); lcd.setCursor (0, 1); lcd.print (child2Strike); lcd.print ("Stavke!"); if (child2Strike> = 3) {Serial.println ("Otrok 2 je ozemljen!"); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Otrok 2 je"); lcd.setCursor (0, 1); lcd.print ("Ozemljeno!"); ton (zvonec, 5000, 500); } zakasnitev (3000); }}

if (child3ButtonState! = child3PreviousState)

{lcd.clear (); if (child3ButtonState == HIGH) // Gumb je pritisnjen {child3Strike ++; Serial.println (String ("Otrok 3 ima:") + child3Strike + "stavke"); lcd.print ("Otrok 3 ima:"); lcd.setCursor (0, 1); lcd.print (child3Strike); lcd.print ("Stavke!"); if (child3Strike> = 3) {Serial.println ("Otrok 3 je ozemljen!"); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Otrok 3 je"); lcd.setCursor (0, 1); lcd.print ("Ozemljeno!"); ton (zvonec, 5000, 500); } zakasnitev (3000); }}

if (child4ButtonState! = child4PreviousState)

{lcd.clear (); if (child4ButtonState == HIGH) // Gumb je pritisnjen {child4Strike ++; Serial.println (String ("Otrok 4 ima:") + child4Strike + "stavke"); lcd.print ("Otrok 4 ima:"); lcd.setCursor (0, 1); lcd.print (child4Strike); lcd.print ("Stavke!");

če (child4Strike> = 3)

{Serial.println ("Otrok 4 je ozemljen!"); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Otrok 4 je"); lcd.setCursor (0, 1); lcd.print ("Ozemljeno!"); ton (zvonec, 5000, 500); } zakasnitev (3000); }}} In to je to, vse, kar potrebujete za izgradnjo lastnega modifikatorja vedenja otrok

Priporočena: