Përmbajtje:

Modifikuesi i sjelljes së fëmijëve: 5 hapa (me fotografi)
Modifikuesi i sjelljes së fëmijëve: 5 hapa (me fotografi)

Video: Modifikuesi i sjelljes së fëmijëve: 5 hapa (me fotografi)

Video: Modifikuesi i sjelljes së fëmijëve: 5 hapa (me fotografi)
Video: My CHEAP 997 Porsche 911 Turbo Gets An INSANE New Engine! 2024, Nëntor
Anonim
Modifikuesi i Sjelljes së Fëmijëve
Modifikuesi i Sjelljes së Fëmijëve

Modifikuesi i Sjelljes së Fëmijëve regjistron sa herë fëmija juaj është futur në telashe (aka godet) dhe kur të arrijnë tre, një zile bie dhe një ekran LCD njofton se ata janë të bazuar.

Hapi 1: Filloni thjeshtë: Shtoni një buton

Filloni thjeshtë: Shtoni një buton
Filloni thjeshtë: Shtoni një buton

Hapi i parë në këtë Projekt është i thjeshtë. Shtoni 1 buton. Në këtë hap ju nevojiten, 4 tela Male në Mashkull, 1 220 Resisitor dhe një buton shtytjeje.

  1. Lidhni 5V në anën e energjisë me rreshtin pozitiv në tryezën e bukës
  2. Lidhni GND me anën negative të tabelës së bukës

  3. Vendoseni butonin në tryezën e bukës
  4. Lidhni fuqinë në rreshtin postiv me pjesën e poshtme të majtë të butonit të shtypjes

  5. Vendoseni butonin duke përdorur një rezistencë në pjesën e poshtme të djathtë të butonit shtytës në rreshtin negativ të pjatës.
  6. Lidhni numrin 13 në anën dixhitale të Arduino në anën e sipërme të djathtë të butonit.

Verifikoni me kodin tuaj që butoni po regjistrohet:

int child1ButtonPin = 13; // Ky është kunja me të cilën është e lidhur butoni i shtypjes sonë

int child1ButtonState = 0; // Lexon gjendjen e butonit (ndezur/fikur)

int child1Strike = 0; // Sa goditje ka fëmija

// funksioni i konfigurimit funksionon një herë kur shtypni rivendosjen ose ndizni bordin

void setup () {Serial.begin (9600); pinMode (child1ButtonPin, INPUT); } // funksioni i lakut ekzekutohet pa pushim lak i pavlefshëm përgjithmonë () {// lexoni gjendjen e butonit (ndezur ose fikur) child1ButtonState = digitalRead (child1ButtonPin); if (child1ButtonState == HIGH) // Butoni shtypet {Serial.println ("HIGH"); vonesa (5000); }

nëse (child1ButtonState == LOW)

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

Hapi 2: Ndryshoni Kodin për Regjistrimin e Shtypjeve të Butonave

Ndryshoni Kodin për Regjistrimin e Shtypjeve të Butonave
Ndryshoni Kodin për Regjistrimin e Shtypjeve të Butonave
Ndryshoni Kodin për Regjistrimin e Shtypjeve të Butonave
Ndryshoni Kodin për Regjistrimin e Shtypjeve të Butonave

Ndryshoni Kodin për të regjistruar një shtyp buton:

int child1ButtonPin = 13; // Ky është kunja që butoni ynë i shtypjes është i lidhur në child1ButtonState = 0; // Lexon gjendjen e butonit (ndezur/fikur) int child1PreviousState = 0; // Gjendja e butonit të mëparshëm int child1Strike = 0;

// funksioni i konfigurimit funksionon një herë kur shtypni rivendosjen ose ndizni bordin

void setup () {Serial.begin (9600); pinMode (child1ButtonPin, INPUT); } // funksioni i lakut funksionon pa pushim lak përgjithmonë i pavlefshëm () {// lexoni gjendjen e butonit (ndezur ose fikur) child1ButtonState = digitalRead (child1ButtonPin); if (child1ButtonState! = child1PreviousState) {if (child1ButtonState == LART) // Butoni shtypet {child1Strike ++; Serial.println (child1Strike); vonesa (1000); }}

}

Tjetra Ndryshoni Kodin në mënyrë që fëmija të marrë 3 goditje, pas së cilës do të marrë një mesazh se është i bazuar:

int child1ButtonPin = 13; // Ky është kunja që butoni ynë i shtypjes është i lidhur në child1ButtonState = 0; // Lexon gjendjen e butonit (ndezur/fikur) int child1PreviousState = 0; int child1Strike = 0;

// funksioni i konfigurimit funksionon një herë kur shtypni rivendosjen ose ndizni bordin

void setup () {Serial.begin (9600); pinMode (child1ButtonPin, INPUT); } // funksioni i lakut ekzekutohet pa pushim lak i pavlefshëm përgjithmonë () {// lexoni gjendjen e butonit (ndezur ose fikur) child1ButtonState = digitalRead (child1ButtonPin); if (child1ButtonState! = child1PreviousState) {if (child1ButtonState == LART) // Butoni shtypet {child1Strike ++; Serial.println (child1Strike);

nëse (child1Strike> = 3)

{Serial.println ("Fëmija 1 është i bazuar!"); } vonesë (3000); }}

}

Moniter Serial duhet të duket si imazhi i mësipërm.

Shënim: Sigurohuni që jeni të kënaqur me vonesën. Me një vonesë të vogël dhe do të regjistrojë 1 buton shtypni më shumë se një!

Hapi 3: Shtoni sa më shumë butona sa të keni fëmijë

Shtoni sa më shumë butona sa të keni fëmijë
Shtoni sa më shumë butona sa të keni fëmijë
Shtoni sa më shumë butona sa të keni fëmijë
Shtoni sa më shumë butona sa të keni fëmijë

Në këtë hap, ne thjesht kopjojmë hapat e fundit. Shtoni po aq butona sa fëmijët. Në rastin tim, shtoj katër. Sigurohuni që të ndryshoni kodin tuaj pinin dixhital me të cilin është lidhur kablloja. Në rastin tim kam përdorur kunjat 12 deri në 10 për të shtuar butonat e mi. Në rast se keni nevojë të kujtoni këtu është Hapi 1:

  1. Lidhni 5V në anën e energjisë me rreshtin pozitiv në tryezën e bukës
  2. Lidhni GND me anën negative të tabelës së bukës

  3. Vendosni butonin në tryezën e bukës Lidhni fuqinë në rreshtin postiv në pjesën e poshtme të majtë të butonit të shtypjes
  4. Vendoseni butonin duke përdorur një rezistencë në pjesën e poshtme të djathtë të butonit shtytës në rreshtin negativ të pjatës.

  5. Lidhni (numrin tuaj pin) në anën dixhitale të Arduino në anën e sipërme të djathtë të butonit.

Ju gjithashtu do të duhet të modifikoni kodin për të trajtuar të gjithë butonat tuaj. Ju lutemi mbani në mend se nëse keni nevojë të jeni të kujdesshëm për telat që keni përdorur. Ju nuk mund të shtoni me shkronja të vogla së bashku. Shtë më mirë të deklaroni 1 si një objekt String.

int child1ButtonPin = 13; // Ky është kunja që butoni ynë i shtypjes është i lidhur në fëmijë2ButtonPin = 12; int child3ButtonPin = 11; int child4ButtonPin = 10; int child1ButtonState = 0; // Lexon gjendjen e butonit (ndez/fik) 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;

// funksioni i konfigurimit funksionon një herë kur shtypni rivendosjen ose ndizni bordin

void setup () {Serial.begin (9600); pinMode (child1ButtonPin, INPUT); pinMode (child2ButtonPin, INPUT); pinMode (child3ButtonPin, INPUT); pinMode (child4ButtonPin, INPUT); } // funksioni i lakut ekzekutohet pa pushim lak i pavlefshëm përgjithmonë () {// lexoni gjendjen e butonit (ndezur ose fikur) child1ButtonState = digitalRead (child1ButtonPin);

child2ButtonState = digitalRead (child2ButtonPin);

child3ButtonState = digitalRead (child3ButtonPin);

child4ButtonState = digitalRead (child4ButtonPin);

nëse (child1ButtonState! = child1PrevenueState)

{if (child1ButtonState == HIGH) // Butoni shtypet {child1Strike ++; Serial.println (String ("Fëmija 1 Ka:") + child1Strike + "godet");

nëse (child1Strike> = 3)

{Serial.println ("Fëmija 1 është i bazuar!"); } vonesë (3000); }} if (child2ButtonState! = child2PreviousState) {if (child2ButtonState == LART) // Butoni shtypet {child2Strike ++; Serial.println (String ("Fëmija 2 ka:") + child2Strike + "godet");

nëse (child2Strike> = 3)

{Serial.println ("Fëmija 2 është i bazuar!"); } vonesë (3000); }}

nëse (child3ButtonState! = child3PreciousState)

{if (child3ButtonState == HIGH) // Butoni shtypet {child3Strike ++; Serial.println (String ("Fëmija 3 ka:") + child3Strike + "godet");

nëse (child3Strike> = 3)

{Serial.println ("Fëmija 3 është i bazuar!"); } vonesë (3000); }}

nëse (child4ButtonState! = child4PreciousState)

{if (child4ButtonState == HIGH) // Butoni shtypet {child4Strike ++; Serial.println (String ("Fëmija 4 ka:") + child4Strike + "godet");

nëse (child4Strike> = 3)

{Serial.println ("Fëmija 4 është i bazuar!"); } vonesë (3000); }}}

Hapi 4: Shtoni një zile

Shtoni një zile
Shtoni një zile
Shtoni një zile
Shtoni një zile

Tani le të sigurohemi që fëmijët tuaj ta dinë se ata janë të bazuar. Le të shtojmë një zile. Për të lidhur zilen, ndiqni këto hapa të thjeshtë.

  1. Shtoni një Gumëzhitës në tryezën tuaj të bukës, planifikoni hapësirë pasi shfaqet një ekran LCD.
  2. Lidhni anën Postive (sinjalizuesi duhet të ketë një + në anën postive) me Kunjin e zgjedhur nga ju. Bëra 9.
  3. Lidhni anën tjetër me shinën e tokëzuar të dërrasës tuaj të bukës.

Tjetra, modifikoni kodin tuaj për të fikur zilen kur një fëmijë bëhet i bazuar. Ekzistojnë disa mënyra të ndryshme për të koduar për zilen tuaj, por mua më pëlqen toni (emri i ziles, hertz, kohëzgjatja) për thjeshtësinë e tij. Kështu që një shembull i kësaj do të ishte toni (zile, 4000, 300).

int child1ButtonPin = 13; // Ky është kunja që butoni ynë i shtypjes është i lidhur në fëmijë2ButtonPin = 12; int child3ButtonPin = 11; int child4ButtonPin = 10; int child1ButtonState = 0; // Lexon gjendjen e butonit (ndez/fik) 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 zile = 2;

// funksioni i konfigurimit funksionon një herë kur shtypni rivendosjen ose ndizni bordin

void setup () {Serial.begin (9600); pinMode (child1ButtonPin, INPUT); pinMode (child2ButtonPin, INPUT); pinMode (child3ButtonPin, INPUT); pinMode (child4ButtonPin, INPUT); pinMode (zile, OUTPUT); } // funksioni i lakut funksionon pa pushim lak përgjithmonë i pavlefshëm () {// lexoni gjendjen e butonit (ndezur ose fikur) child1ButtonState = digitalRead (child1ButtonPin);

child2ButtonState = digitalRead (child2ButtonPin);

child3ButtonState = digitalRead (child3ButtonPin);

child4ButtonState = digitalRead (child4ButtonPin);

nëse (child1ButtonState! = child1PrevenueState)

{if (child1ButtonState == HIGH) // Butoni shtypet {child1Strike ++; Serial.println (String ("Fëmija 1 Ka:") + child1Strike + "godet");

nëse (child1Strike> = 3)

{Serial.println ("Fëmija 1 është i bazuar!"); toni (zile, 5000, 500); // Dërgon një tingull 5 herc për 5 milisekonda

}

vonesë (3000); }} if (child2ButtonState! = child2PreviousState) {if (child2ButtonState == LART) // Butoni shtypet {child2Strike ++; Serial.println (String ("Fëmija 2 ka:") + child2Strike + "godet");

nëse (child2Strike> = 3)

{Serial.println ("Fëmija 2 është i bazuar!"); toni (zile, 5000, 500); } vonesë (3000); }}

nëse (child3ButtonState! = child3PreciousState)

{if (child3ButtonState == HIGH) // Butoni shtypet {child3Strike ++; Serial.println (String ("Fëmija 3 ka:") + child3Strike + "godet");

nëse (child3Strike> = 3)

{Serial.println ("Fëmija 3 është i bazuar!"); toni (zile, 5000, 500); } vonesë (3000); }}

nëse (child4ButtonState! = child4PreciousState)

{if (child4ButtonState == HIGH) // Butoni shtypet {child4Strike ++; Serial.println (String ("Fëmija 4 ka:") + child4Strike + "godet");

nëse (child4Strike> = 3)

{Serial.println ("Fëmija 4 është i bazuar!"); toni (zile, 5000, 500); } vonesë (3000); }}}

Hapi 5: Shtoni një ekran LCD

Image
Image
Shtoni një ekran LCD
Shtoni një ekran LCD

Tani lejon një ekran LCD për lexim të qartë dhe të lehtë.

  1. Së pari, shtoni një potenciometër në tryezën tuaj të bukës për të kontrolluar ekranin LCD. Kini kujdes se ku e vendosni pasi që me siguri po ju mbaron hapësira deri tani.
  2. Përdorni pjesën e përparme të majtë për të lidhur potenciometrin tuaj me shinën e energjisë
  3. Përdorni pjesën e përparme djathtas për të tokëzuar potenciometrin tuaj.
  4. Pjesa e pasme do të lidhet me ekranin LCD.
  5. Shtoni ekranin LCD në tabelën tuaj të bukës
  6. Vendosni kunjin e parë të ekranit në shinën e tokëzimit
  7. Lidhni kunjin e dytë në shinën e energjisë.
  8. Pina e tretë LCD shkon në Pin 8 në Arduino
  9. Kodi i katërt LCD shkon në Pin 7 në Arduino
  10. Së pesti shkon te Pin 6 në Arduino
  11. Pin i Gjashtë shkon në pin 5 në Arduino
  12. Kunjat 7 deri në 10 në ekranin LCD janë bosh
  13. Pin 11 shkon në Pin 5 në Arduino
  14. Pin 12 shkon në hekurudhën e tokëzuar
  15. Pin 13 shkon në Pin 4 në Arduino
  16. Pin 14 shkon në pjesën e pasme të potenciometrit
  17. Pin 15 shkon në hekurudhën e energjisë
  18. Pin 16 shkon në hekurudhën tokësore.

Tani do të duhet të përditësoni kodin tuaj për të përdorur ekranin LCD. Për këtë ju do të përdorni Librist Liquid Crystal. Kini kujdes nga deklaratat tuaja të shtypura LCD. Mos harroni të pastroni ekranin kur keni nevojë për një mesazh të ri. Gjithashtu mos harroni të vendosni kursorin kur doni të përdorni dy rreshta.

#përfshi

LiquidCrystal LCD (3, 4, 5, 6, 7, 8); // Vendos ekranin LCD

int child1ButtonPin = 13; // Ky është kunja që butoni ynë i shtypjes është i lidhur me int child2ButtonPin = 12; int child3ButtonPin = 11; int child4ButtonPin = 10; int child1ButtonState = 0; // Lexon gjendjen e butonit (ndez/fik) int child2ButtonState = 0; int child3ButtonState = 0; int child4ButtonState = 0; int child1PreviousState = 0; // Gjendja e mëparshme e butonit të shtypur int child2PreviousState = 0; int child3PreviousState = 0; int child4PreviousState = 0; int child1Strike = 0; // Sa goditje ka një fëmijë int child2Strike = 0; int child3Strike = 0; int child4Strike = 0; const int zile = 9; // Gumëzhitësi

// funksioni i konfigurimit funksionon një herë kur shtypni rivendosjen ose ndizni bordin

void setup () {Serial.begin (9600); lcd.filloni (16, 2); lcd.print ("Fëmija"); lcd.setCursor (0, 1); lcd.print ("Modifikuesi i Sjelljes"); pinMode (child1ButtonPin, INPUT); pinMode (child2ButtonPin, INPUT); pinMode (child3ButtonPin, INPUT); pinMode (child4ButtonPin, INPUT); pinMode (zile, OUTPUT); } // funksioni i lakut ekzekutohet pa pushim lak përgjithmonë i pavlefshëm () {lcd.setCursor (0, 0); // lexoni gjendjen e butonit (ndezur ose fikur) child1ButtonState = digitalRead (child1ButtonPin);

child2ButtonState = digitalRead (child2ButtonPin);

child3ButtonState = digitalRead (child3ButtonPin);

child4ButtonState = digitalRead (child4ButtonPin);

nëse (child1ButtonState! = child1PrevenueState)

{if (child1ButtonState == HIGH) // Butoni shtypet {lcd.clear (); child1Strike ++; Serial.println (String ("Fëmija 1 Ka:") + child1Strike + "godet"); lcd.print ("Fëmija 1 Ka:"); lcd.setCursor (0, 1); lcd.print (child1Strike); lcd.print ("Godet!");

nëse (child1Strike> = 3)

{Serial.println ("Fëmija 1 është i bazuar!"); lcd.qartë (); lcd.setCursor (0, 0); lcd.print ("Fëmija 1 është"); lcd.setCursor (0, 1); lcd.print ("I bazuar!");

toni (zile, 5000, 500); // Dërgon një tingull 5 herc për 5 milisekonda

}

vonesë (3000); }} if (child2ButtonState! = child2PreviousState) {lcd.clear (); if (child2ButtonState == LART) // Butoni shtypet {child2Strike ++; Serial.println (String ("Fëmija 2 ka:") + child2Strike + "godet"); lcd.print ("Fëmija 2 Ka:"); lcd.setCursor (0, 1); lcd.print (child2Strike); lcd.print ("Godet!"); if (child2Strike> = 3) {Serial.println ("Fëmija 2 është i bazuar!"); lcd.qartë (); lcd.setCursor (0, 0); lcd.print ("Fëmija 2 është"); lcd.setCursor (0, 1); lcd.print ("E bazuar!"); toni (zile, 5000, 500); } vonesë (3000); }}

nëse (child3ButtonState! = child3PreciousState)

{lcd.qartë (); if (child3ButtonState == LART) // Butoni shtypet {child3Strike ++; Serial.println (String ("Fëmija 3 ka:") + child3Strike + "godet"); lcd.print ("Fëmija 3 ka:"); lcd.setCursor (0, 1); lcd.print (child3Strike); lcd.print ("Godet!"); if (child3Strike> = 3) {Serial.println ("Fëmija 3 është i bazuar!"); lcd.qartë (); lcd.setCursor (0, 0); lcd.print ("Fëmija 3 është"); lcd.setCursor (0, 1); lcd.print ("E bazuar!"); toni (zile, 5000, 500); } vonesë (3000); }}

nëse (child4ButtonState! = child4PreciousState)

{lcd.qartë (); if (child4ButtonState == LART) // Butoni shtypet {child4Strike ++; Serial.println (String ("Fëmija 4 ka:") + child4Strike + "godet"); lcd.print ("Fëmija 4 Ka:"); lcd.setCursor (0, 1); lcd.print (child4Strike); lcd.print ("Godet!");

nëse (child4Strike> = 3)

{Serial.println ("Fëmija 4 është i bazuar!"); lcd.qartë (); lcd.setCursor (0, 0); lcd.print ("Fëmija 4 është"); lcd.setCursor (0, 1); lcd.print ("I bazuar!"); toni (zile, 5000, 500); } vonesë (3000); }}} Dhe kjo është ajo, kjo është gjithçka që ju nevojitet për të ndërtuar Modifikuesin tuaj të Sjelljes së Fëmijëve

Recommended: