Sadržaj:

Modifikator ponašanja djeteta: 5 koraka (sa slikama)
Modifikator ponašanja djeteta: 5 koraka (sa slikama)

Video: Modifikator ponašanja djeteta: 5 koraka (sa slikama)

Video: Modifikator ponašanja djeteta: 5 koraka (sa slikama)
Video: Vegan Since 1978: Adama Alaji the Heraldess of The Establishment of the Eternal Order 2024, Studeni
Anonim
Modifikator ponašanja djeteta
Modifikator ponašanja djeteta

Modifikator ponašanja djeteta bilježi koliko je puta vaše dijete upalo u nevolje (poznate i kao štrajkovi), a kada navrše tri godine, oglašava se zvučni signal i LCD zaslon objavljuje da je uzemljen.

Korak 1: Pokrenite jednostavno: Dodajte gumb

Počnite jednostavno: Dodajte gumb
Počnite jednostavno: Dodajte gumb

Prvi korak u ovom projektu je jednostavan. Dodajte 1 gumb. U ovom koraku trebate 4 žice muški - muški, 1 220 otpornika i gumb.

  1. Spojite 5V na strani napajanja u pozitivni red na ploči
  2. Spojite GND na negativnu stranu ploče

  3. Umetnite gumb na matičnu ploču
  4. Priključite napajanje na pozitivni red u donji lijevi dio tipke

  5. Uzemljite gumb pomoću otpornika u donjem desnom dijelu gumba na negativni red ploče.
  6. Spojite #13 na digitalnoj strani Arduina na gornju desnu stranu gumba.

Svojim kodom potvrdite da se gumb registrira:

int child1ButtonPin = 13; // Ovo je pin na koji je povezan naš gumb

int child1ButtonState = 0; // Čita stanje gumba (uključeno/isključeno)

int child1Strike = 0; // Koliko dijete ima štrajkova

// funkcija postavljanja pokreće se jednom kada pritisnete reset ili uključite ploču

void setup () {Serial.begin (9600); pinMode (child1ButtonPin, INPUT); } // funkcija petlje radi uvijek iznova void loop () {// čita stanje gumba (uključeno ili isključeno) child1ButtonState = digitalRead (child1ButtonPin); if (child1ButtonState == HIGH) // Tipka je pritisnuta {Serial.println ("HIGH"); kašnjenje (5000); }

if (child1ButtonState == LOW)

{Serial.println ("LOW"); kašnjenje (5000); }}

Korak 2: Izmijenite kôd za registraciju pritiska tipki

Izmijenite kôd da biste registrirali pritiske tipki
Izmijenite kôd da biste registrirali pritiske tipki
Izmijenite kôd za registraciju pritiska tipki
Izmijenite kôd za registraciju pritiska tipki

Izmijenite kôd da biste registrirali gumb:

int child1ButtonPin = 13; // Ovo je pin koji je naš gumb spojen naint child1ButtonState = 0; // Čita stanje gumba (uključeno/isključeno) int child1PreviousState = 0; // Prethodno stanje gumba int child1Strike = 0;

// funkcija postavljanja pokreće se jednom kada pritisnete reset ili uključite ploču

void setup () {Serial.begin (9600); pinMode (child1ButtonPin, INPUT); } // funkcija petlje radi uvijek iznova void loop () {// čita stanje gumba (uključeno ili isključeno) child1ButtonState = digitalRead (child1ButtonPin); if (child1ButtonState! = child1PreviousState) {if (child1ButtonState == HIGH) // Tipka je pritisnuta {child1Strike ++; Serial.println (child1Strike); kašnjenje (1000); }}

}

Zatim izmijenite kôd tako da dijete dobije 3 opomene nakon čega će primiti poruku da je osnovano:

int child1ButtonPin = 13; // Ovo je pin koji je naš gumb spojen naint child1ButtonState = 0; // Čita stanje gumba (uključeno/isključeno) int child1PreviousState = 0; int child1Strike = 0;

// funkcija postavljanja pokreće se jednom kada pritisnete reset ili uključite ploču

void setup () {Serial.begin (9600); pinMode (child1ButtonPin, INPUT); } // funkcija petlje radi uvijek iznova void loop () {// čita stanje gumba (uključeno ili isključeno) child1ButtonState = digitalRead (child1ButtonPin); if (child1ButtonState! = child1PreviousState) {if (child1ButtonState == HIGH) // Tipka je pritisnuta {child1Strike ++; Serial.println (child1Strike);

ako (child1Strike> = 3)

{Serial.println ("Dijete 1 je uzemljeno!"); } kašnjenje (3000); }}

}

Serijski monitor trebao bi izgledati poput gornje slike.

Napomena: Pobrinite se da vam odgovara kašnjenje. Malo kašnjenje i registrirat će 1 pritisak na gumb kao više od jednog!

Korak 3: Dodajte onoliko gumba koliko imate djece

Dodajte onoliko gumba koliko imate djece
Dodajte onoliko gumba koliko imate djece
Dodajte onoliko gumba koliko imate djece
Dodajte onoliko gumba koliko imate djece

U ovom koraku jednostavno kopiramo posljednjih nekoliko koraka. Dodajte onoliko gumba koliko imate djece. U mom slučaju, dodajem četiri. Promijenite svoj kôd digitalni pin na koji je gumb spojen. U mom slučaju koristio sam iglice od 12 do 10 za dodavanje gumba. U slučaju da trebate podsjetiti, evo 1. koraka:

  1. Spojite 5V na strani napajanja s pozitivnim redom na ploči

  2. Spojite GND na negativnu stranu ploče
  3. Umetnite gumb na ploču za napajanje. Spojite napajanje pozitivnog reda u donji lijevi dio gumba.

  4. Uzemljite gumb pomoću otpornika u donjem desnom dijelu gumba na negativni red ploče.
  5. Spojite (svoj pin broj) na digitalnoj strani Arduina na gornju desnu stranu gumba.

Također ćete morati izmijeniti kôd za rukovanje svim gumbima. Imajte na umu da ako trebate paziti na žice koje ste koristili. Ne možete zajedno dodavati mala slova. Najbolje je deklarirati 1 kao objekt String.

int child1ButtonPin = 13; // Ovo je pin koji je naš gumb povezan s toint child2ButtonPin = 12; int child3ButtonPin = 11; int child4ButtonPin = 10; int child1ButtonState = 0; // Čita stanje gumba (uključeno/isključeno) 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;

// funkcija postavljanja pokreće se jednom kada pritisnete reset ili uključite ploču

void setup () {Serial.begin (9600); pinMode (child1ButtonPin, INPUT); pinMode (child2ButtonPin, INPUT); pinMode (child3ButtonPin, INPUT); pinMode (child4ButtonPin, INPUT); } // funkcija petlje radi uvijek iznova void loop () {// čita stanje gumba (uključeno ili isključeno) child1ButtonState = digitalRead (child1ButtonPin);

child2ButtonState = digitalRead (child2ButtonPin);

child3ButtonState = digitalRead (child3ButtonPin);

child4ButtonState = digitalRead (child4ButtonPin);

if (dijete1ButtonState! = dijete1PreviousState)

{if (child1ButtonState == HIGH) // Tipka je pritisnuta {child1Strike ++; Serial.println (String ("Dijete 1 ima:") + child1Strike + "štrajkovi");

ako (child1Strike> = 3)

{Serial.println ("Dijete 1 je uzemljeno!"); } kašnjenje (3000); }} if (child2ButtonState! = child2PreviousState) {if (child2ButtonState == HIGH) // Tipka je pritisnuta {child2Strike ++; Serial.println (String ("Dijete 2 ima:") + child2Strike + "štrajkovi");

if (child2Strike> = 3)

{Serial.println ("Dijete 2 je uzemljeno!"); } kašnjenje (3000); }}

if (child3ButtonState! = child3PreviousState)

{if (child3ButtonState == HIGH) // Tipka je pritisnuta {child3Strike ++; Serial.println (String ("Dijete 3 ima:") + child3Strike + "štrajkovi");

if (child3Strike> = 3)

{Serial.println ("Dijete 3 je uzemljeno!"); } kašnjenje (3000); }}

if (child4ButtonState! = child4PreviousState)

{if (child4ButtonState == HIGH) // Tipka je pritisnuta {child4Strike ++; Serial.println (String ("Dijete 4 ima:") + child4Strike + "štrajkovi");

if (child4Strike> = 3)

{Serial.println ("Dijete 4 je uzemljeno!"); } kašnjenje (3000); }}}

Korak 4: Dodajte zujalicu

Dodajte zujalicu
Dodajte zujalicu
Dodajte zujalicu
Dodajte zujalicu

Sada provjerimo da li vaša djeca znaju da su utemeljena. Dopustimo zujalicu. Za povezivanje zujalice slijedite ove jednostavne korake.

  1. Dodajte zujalicu na svoju ploču, planirajte prostor jer se pojavljuje LCD zaslon.
  2. Spojite Postive stranu (zujalica bi trebala imati + na pozitivnoj strani) na pin po vašem izboru. Ja sam napravio 9.
  3. Spojite drugu stranu na uzemljenu šinu vaše matične ploče.

Zatim promijenite svoj kôd da biste isključili zujalicu kada dijete postane uzemljeno. Postoji nekoliko različitih načina kodiranja vašeg zujalice, ali sviđa mi se ton (ime zujalice, herc, trajanje) zbog njegove jednostavnosti. Primjer za to bi bio ton (zujalica, 4000, 300).

int child1ButtonPin = 13; // Ovo je pin koji je naš gumb povezan s toint child2ButtonPin = 12; int child3ButtonPin = 11; int child4ButtonPin = 10; int child1ButtonState = 0; // Čita stanje gumba (uključeno/isključeno) 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; const int zujalica = 2;

// funkcija postavljanja pokreće se jednom kada pritisnete reset ili uključite ploču

void setup () {Serial.begin (9600); pinMode (child1ButtonPin, INPUT); pinMode (child2ButtonPin, INPUT); pinMode (child3ButtonPin, INPUT); pinMode (child4ButtonPin, INPUT); pinMode (zujalica, OUTPUT); } // funkcija petlje radi uvijek iznova void loop () {// čita stanje gumba (uključeno ili isključeno) child1ButtonState = digitalRead (child1ButtonPin);

child2ButtonState = digitalRead (child2ButtonPin);

child3ButtonState = digitalRead (child3ButtonPin);

child4ButtonState = digitalRead (child4ButtonPin);

if (dijete1ButtonState! = dijete1PreviousState)

{if (child1ButtonState == HIGH) // Tipka je pritisnuta {child1Strike ++; Serial.println (String ("Dijete 1 ima:") + child1Strike + "štrajkovi");

ako (child1Strike> = 3)

{Serial.println ("Dijete 1 je uzemljeno!"); ton (zujalica, 5000, 500); // Šalje zvuk od 5 herca 5 milisekundi

}

kašnjenje (3000); }} if (child2ButtonState! = child2PreviousState) {if (child2ButtonState == HIGH) // Tipka je pritisnuta {child2Strike ++; Serial.println (String ("Dijete 2 ima:") + child2Strike + "štrajkovi");

if (child2Strike> = 3)

{Serial.println ("Dijete 2 je uzemljeno!"); ton (zujalica, 5000, 500); } kašnjenje (3000); }}

if (child3ButtonState! = child3PreviousState)

{if (child3ButtonState == HIGH) // Tipka je pritisnuta {child3Strike ++; Serial.println (String ("Dijete 3 ima:") + child3Strike + "štrajkovi");

if (child3Strike> = 3)

{Serial.println ("Dijete 3 je uzemljeno!"); ton (zujalica, 5000, 500); } kašnjenje (3000); }}

if (child4ButtonState! = child4PreviousState)

{if (child4ButtonState == HIGH) // Tipka je pritisnuta {child4Strike ++; Serial.println (String ("Dijete 4 ima:") + child4Strike + "štrajkovi");

if (child4Strike> = 3)

{Serial.println ("Dijete 4 je uzemljeno!"); ton (zujalica, 5000, 500); } kašnjenje (3000); }}}

Korak 5: Dodajte LCD zaslon

Image
Image
Dodajte LCD zaslon
Dodajte LCD zaslon

Sada omogućuje LCD zaslon za jasno i jednostavno čitanje.

  1. Najprije dodajte potenciometar na ploču za upravljanje LCD zaslonom. Pazite gdje ste ga stavili jer vam je vjerojatno već ponestalo prostora.
  2. Pomoću prednje lijeve strane povežite svoj potenciometar s razvodnikom
  3. Upotrijebite prednju desnu stranu za uzemljenje potenciometra.
  4. Stražnja strana bit će spojena na LCD zaslon.
  5. Dodajte LCD zaslon na svoju ploču
  6. Uzemljite prvu iglu zaslona na tračnicu za uzemljenje
  7. Priključite drugi pin na razvodnik.
  8. Treći LCD pin ide na Pin 8 na Arduinu
  9. Četvrti LCD pin ide na Pin 7 na Arduinu
  10. Peti ide na Pin 6 na Arduinu
  11. Šesti pin ide na pin 5 na Arduinu
  12. Igle 7 do 10 na LCD zaslonu su prazne
  13. Pin 11 ide na Pin 5 na Arduinu
  14. Pin 12 ide do uzemljene šine
  15. Pin 13 ide na Pin 4 na Arduinu
  16. Pin 14 ide na stražnju stranu potenciometra
  17. Pin 15 ide na Power rail
  18. Pin 16 ide do uzemljenja.

Sada ćete morati ažurirati kôd za korištenje LCD zaslona. Za to ćete koristiti biblioteku tekući kristal. Budite oprezni s izjavama o ispisu na LCD -u. Ne zaboravite očistiti zaslon kada trebate novu poruku. Također ne zaboravite postaviti kursor kada želite koristiti dva retka.

#uključi

LCD tekući kristal (3, 4, 5, 6, 7, 8); // Postavlja LCD zaslon

int child1ButtonPin = 13; // Ovo je pin na koji je naš gumb povezan s int child2ButtonPin = 12; int child3ButtonPin = 11; int child4ButtonPin = 10; int child1ButtonState = 0; // Čita stanje gumba (uključeno/isključeno) int child2ButtonState = 0; int child3ButtonState = 0; int child4ButtonState = 0; int child1PreviousState = 0; // Prethodno stanje gumba pritisnutog int child2PreviousState = 0; int child3PreviousState = 0; int child4PreviousState = 0; int child1Strike = 0; // Koliko štrajkova dijete ima int child2Strike = 0; int child3Strike = 0; int child4Strike = 0; const int zujalica = 9; // zujalica

// funkcija postavljanja pokreće se jednom kada pritisnete reset ili uključite ploču

void setup () {Serial.begin (9600); lcd.begin (16, 2); lcd.print ("Dijete"); lcd.setCursor (0, 1); lcd.print ("Mijenjač ponašanja"); pinMode (child1ButtonPin, INPUT); pinMode (child2ButtonPin, INPUT); pinMode (child3ButtonPin, INPUT); pinMode (child4ButtonPin, INPUT); pinMode (zujalica, OUTPUT); } // funkcija petlje radi uvijek iznova void loop () {lcd.setCursor (0, 0); // čita stanje gumba (uključeno ili isključeno) child1ButtonState = digitalRead (child1ButtonPin);

child2ButtonState = digitalRead (child2ButtonPin);

child3ButtonState = digitalRead (child3ButtonPin);

child4ButtonState = digitalRead (child4ButtonPin);

if (dijete1ButtonState! = dijete1PreviousState)

{if (child1ButtonState == HIGH) // Tipka je pritisnuta {lcd.clear (); child1Strike ++; Serial.println (String ("Dijete 1 ima:") + child1Strike + "štrajkovi"); lcd.print ("Dijete 1 ima:"); lcd.setCursor (0, 1); lcd.print (child1Strike); lcd.print ("Udari!");

ako (child1Strike> = 3)

{Serial.println ("Dijete 1 je uzemljeno!"); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Dijete 1 je"); lcd.setCursor (0, 1); lcd.print ("Uzemljeno!");

ton (zujalica, 5000, 500); // Šalje zvuk od 5 herca 5 milisekundi

}

kašnjenje (3000); }} if (child2ButtonState! = child2PreviousState) {lcd.clear (); if (child2ButtonState == HIGH) // Tipka je pritisnuta {child2Strike ++; Serial.println (String ("Dijete 2 ima:") + child2Strike + "štrajkovi"); lcd.print ("Dijete 2 ima:"); lcd.setCursor (0, 1); lcd.print (child2Strike); lcd.print ("Udari!"); if (child2Strike> = 3) {Serial.println ("Dijete 2 je uzemljeno!"); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Dijete 2 je"); lcd.setCursor (0, 1); lcd.print ("Uzemljeno!"); ton (zujalica, 5000, 500); } kašnjenje (3000); }}

if (child3ButtonState! = child3PreviousState)

{lcd.clear (); if (child3ButtonState == HIGH) // Tipka je pritisnuta {child3Strike ++; Serial.println (String ("Dijete 3 ima:") + child3Strike + "štrajkovi"); lcd.print ("Dijete 3 ima:"); lcd.setCursor (0, 1); lcd.print (child3Strike); lcd.print ("Udari!"); if (child3Strike> = 3) {Serial.println ("Dijete 3 je uzemljeno!"); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Dijete 3 je"); lcd.setCursor (0, 1); lcd.print ("Uzemljeno!"); ton (zujalica, 5000, 500); } kašnjenje (3000); }}

if (child4ButtonState! = child4PreviousState)

{lcd.clear (); if (child4ButtonState == HIGH) // Tipka je pritisnuta {child4Strike ++; Serial.println (String ("Dijete 4 ima:") + child4Strike + "štrajkovi"); lcd.print ("Dijete 4 ima:"); lcd.setCursor (0, 1); lcd.print (child4Strike); lcd.print ("Udari!");

if (child4Strike> = 3)

{Serial.println ("Dijete 4 je uzemljeno!"); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Dijete 4 je"); lcd.setCursor (0, 1); lcd.print ("Uzemljeno!"); ton (zujalica, 5000, 500); } kašnjenje (3000); }}} I to je to, to je sve što vam je potrebno za izgradnju vlastitog Modifera ponašanja djeteta

Preporučeni: