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, Novembar
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 ekran objavljuje da je uzemljen.

Korak 1: Pokrenite jednostavno: Dodajte dugme

Počnite jednostavno: Dodajte dugme
Počnite jednostavno: Dodajte dugme

Prvi korak u ovom projektu je jednostavan. Dodaj 1 dugme. U ovom koraku su vam potrebne 4 žice muški - muški, 1 220 otpornika i dugme.

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

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

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

Svojim kodom potvrdite da se dugme registruje:

int child1ButtonPin = 13; // Ovo je pin na koji je naše dugme povezano

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

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

// 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 dugmeta (uključeno ili isključeno) child1ButtonState = digitalRead (child1ButtonPin); if (child1ButtonState == HIGH) // Dugme je pritisnuto {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 za registraciju pritiska tipki
Izmijenite kôd za registraciju pritiska tipki
Izmijenite kôd za registraciju pritiska tipki
Izmijenite kôd za registraciju pritiska tipki

Izmijenite kôd da biste registrirali dugme.

int child1ButtonPin = 13; // Ovo je pin na koji je naše dugme spojeno naint child1ButtonState = 0; // Čita stanje dugmeta (uključeno/isključeno) int child1PreviousState = 0; // Prethodno stanje dugmeta 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 dugmeta (uključeno ili isključeno) child1ButtonState = digitalRead (child1ButtonPin); if (child1ButtonState! = child1PreviousState) {if (child1ButtonState == HIGH) // Dugme je pritisnuto {child1Strike ++; Serial.println (child1Strike); kašnjenje (1000); }}

}

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

int child1ButtonPin = 13; // Ovo je pin na koji je naše dugme povezano zaint1 child1ButtonState = 0; // Čita stanje dugmeta (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 dugmeta (uključeno ili isključeno) child1ButtonState = digitalRead (child1ButtonPin); if (child1ButtonState! = child1PreviousState) {if (child1ButtonState == HIGH) // Dugme je pritisnuto {child1Strike ++; Serial.println (child1Strike);

if (child1Strike> = 3)

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

}

Serijski monitor bi trebao izgledati kao na gornjoj slici.

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

Korak 3: Dodajte onoliko dugmaca 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 dugmića koliko i djece. U mom slučaju, dodajem četiri. Promijenite kôd digitalni pin na koji je dugme spojeno. U mom slučaju koristio sam pinove od 12 do 10 za dodavanje dugmadi. U slučaju da trebate podsjetiti, evo 1. koraka:

  1. Priključite 5V na strani napajanja u pozitivni red na matičnoj ploči

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

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

Također ćete morati izmijeniti kôd za rukovanje svim vašim 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 na koji je naše dugme povezano naint child2ButtonPin = 12; int child3ButtonPin = 11; int child4ButtonPin = 10; int child1ButtonState = 0; // Čita stanje dugmeta (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 dugmeta (uključeno ili isključeno) child1ButtonState = digitalRead (child1ButtonPin);

child2ButtonState = digitalRead (child2ButtonPin);

child3ButtonState = digitalRead (child3ButtonPin);

child4ButtonState = digitalRead (child4ButtonPin);

if (child1ButtonState! = child1PreviousState)

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

if (child1Strike> = 3)

{Serial.println ("Dijete 1 je uzemljeno!"); } kašnjenje (3000); }} if (child2ButtonState! = child2PreviousState) {if (child2ButtonState == HIGH) // Dugme je pritisnuto {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) // Dugme je pritisnuto {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) // Dugme je pritisnuto {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

Hajde sada provjerite da li vaša djeca znaju da su utemeljena. Dodajmo zujalicu. Da biste povezali zujalicu, slijedite ove jednostavne korake.

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

Zatim izmijenite kôd da biste isključili zvučni signal kada dijete postane uzemljeno. Postoji nekoliko različitih načina kodiranja vašeg zujalice, ali meni se sviđa ton (ime zujalice, herc, trajanje) zbog njegove jednostavnosti. Primjer ovoga bi bio ton (zujalica, 4000, 300).

int child1ButtonPin = 13; // Ovo je pin na koji je naše dugme povezano uint2 child2ButtonPin = 12; int child3ButtonPin = 11; int child4ButtonPin = 10; int child1ButtonState = 0; // Čita stanje dugmeta (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 dugmeta (uključeno ili isključeno) child1ButtonState = digitalRead (child1ButtonPin);

child2ButtonState = digitalRead (child2ButtonPin);

child3ButtonState = digitalRead (child3ButtonPin);

child4ButtonState = digitalRead (child4ButtonPin);

if (child1ButtonState! = child1PreviousState)

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

if (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) // Dugme je pritisnuto {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) // Dugme je pritisnuto {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) // Dugme je pritisnuto {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 ekran

Image
Image
Dodajte LCD ekran
Dodajte LCD ekran

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

  1. Prvo dodajte potenciometar na svoju ploču za upravljanje LCD ekranom. Pazite gdje ste ga stavili jer vam je vjerojatno već ponestalo prostora.
  2. Upotrijebite prednju lijevu stranu za povezivanje potenciometra na razvodnik
  3. Upotrijebite prednju desnu stranu za uzemljenje potenciometra.
  4. Stražnja strana će biti povezana sa LCD ekranom.
  5. Dodajte LCD ekran na matičnu ploču
  6. Uzemljite prvu iglu ekrana na šinu 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 ekranu 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 sa zadnje strane 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 ekrana. Za to ćete koristiti biblioteku tekućih kristala. Pazite na izjave o LCD štampanju. Ne zaboravite očistiti ekran kada vam je potrebna nova poruka. Također ne zaboravite postaviti kursor kada želite koristiti dvije linije.

#include

LiquidCrystal lcd (3, 4, 5, 6, 7, 8); // Postavlja LCD ekran

int child1ButtonPin = 13; // Ovo je pin na koji je naše dugme povezano sa int child2ButtonPin = 12; int child3ButtonPin = 11; int child4ButtonPin = 10; int child1ButtonState = 0; // Čita stanje dugmeta (uključeno/isključeno) int child2ButtonState = 0; int child3ButtonState = 0; int child4ButtonState = 0; int child1PreviousState = 0; // Prethodno stanje dugmeta pritisnuto 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 dugmeta (uključeno ili isključeno) child1ButtonState = digitalRead (child1ButtonPin);

child2ButtonState = digitalRead (child2ButtonPin);

child3ButtonState = digitalRead (child3ButtonPin);

child4ButtonState = digitalRead (child4ButtonPin);

if (child1ButtonState! = child1PreviousState)

{if (child1ButtonState == HIGH) // Dugme je pritisnuto {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 ("Strikes!");

if (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) // Dugme je pritisnuto {child2Strike ++; Serial.println (String ("Dijete 2 ima:") + child2Strike + "štrajkovi"); lcd.print ("Dijete 2 ima:"); lcd.setCursor (0, 1); lcd.print (child2Strike); lcd.print ("Strikes!"); 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) // Dugme je pritisnuto {child3Strike ++; Serial.println (String ("Dijete 3 ima:") + child3Strike + "štrajkovi"); lcd.print ("Dijete 3 ima:"); lcd.setCursor (0, 1); lcd.print (child3Strike); lcd.print ("Strikes!"); 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) // Dugme je pritisnuto {child4Strike ++; Serial.println (String ("Dijete 4 ima:") + child4Strike + "štrajkovi"); lcd.print ("Dijete 4 ima:"); lcd.setCursor (0, 1); lcd.print (child4Strike); lcd.print ("Strikes!");

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čuje se: