INHOUDSOPGAWE:

Kindergedrag wysiger: 5 stappe (met foto's)
Kindergedrag wysiger: 5 stappe (met foto's)

Video: Kindergedrag wysiger: 5 stappe (met foto's)

Video: Kindergedrag wysiger: 5 stappe (met foto's)
Video: Deze 6 WhatsApp tricks kende je waarschijnlijk nog niet! 2024, November
Anonim
Kindergedrag wysiger
Kindergedrag wysiger

Die kindergedrag -wysiger teken aan hoeveel keer u kind in die moeilikheid beland het (ook bekend as Stakings) en as hulle drie bereik, gaan 'n gonser af en 'n lcd -skerm kondig aan dat hulle geaard is.

Stap 1: Begin eenvoudig: voeg 'n knoppie by

Begin eenvoudig: voeg 'n knoppie by
Begin eenvoudig: voeg 'n knoppie by

Die eerste stap in hierdie projek is eenvoudig. Voeg 1 knoppie by. In hierdie stap benodig u 4 manlike tot manlike drade, 1 220 Resisitor en 'n drukknop.

  1. Koppel die 5V aan die kragkant aan die positiewe ry op die broodbord
  2. Koppel die GND aan die negatiewe kant van die broodbord

  3. Plaas die drukknop op die broodbord
  4. Koppel die krag op die postiewe ry aan die linker onderkant van die drukknop

  5. Aard die knoppie met 'n weerstand in die regter onderkant van die drukknop tot by die negatiewe ry van die broodbord.
  6. Koppel #13 aan die digitale kant van die Arduino aan die regterkant bo -aan die knoppie.

Verifieer met u kode dat die knoppie registreer:

int child1ButtonPin = 13; // Dit is die pen waarmee ons drukknoppie gekoppel is

int child1ButtonState = 0; // Lees die toestand van die knoppie (aan/af)

int kind1Strike = 0; // Hoeveel aanvalle het die kind

// die opstelfunksie word een keer uitgevoer as u op reset druk of die bord aanskakel

ongeldige opstelling () {Serial.begin (9600); pinMode (kind1ButtonPin, INPUT); } // die lusfunksie loop oor en oor vir ewig leeg lus () {// lees die knoppie se toestand (aan of af) child1ButtonState = digitalRead (child1ButtonPin); if (child1ButtonState == HIGH) // Knoppie word ingedruk {Serial.println ("HIGH"); vertraging (5000); }

as (child1ButtonState == LOW)

{Serial.println ("LAAG"); vertraging (5000); }}

Stap 2: Verander kode om knoppers te registreer

Verander kode om knoppies te registreer
Verander kode om knoppies te registreer
Verander kode om knoppies te registreer
Verander kode om knoppies te registreer

Verander die kode om 'n knoppie te druk:

int child1ButtonPin = 13; // Dit is die pen waarmee ons drukknoppie gekoppel is aan kind1ButtonState = 0; // Lees die toestand van die knoppie (aan/af) int child1PreviousState = 0; // Vorige knoppie staat int child1Strike = 0;

// die opstelfunksie word een keer uitgevoer as u op reset druk of die bord aanskakel

ongeldige opstelling () {Serial.begin (9600); pinMode (kind1ButtonPin, INPUT); } // die lusfunksie loop oor en oor vir ewig leeg lus () {// lees die knoppie se toestand (aan of af) child1ButtonState = digitalRead (child1ButtonPin); if (child1ButtonState! = child1PreviousState) {if (child1ButtonState == HOOG) // Knoppie word ingedruk {child1Strike ++; Serial.println (kind1Strike); vertraging (1000); }}

}

Pas die kode dan aan sodat die kind drie aanvalle kry, waarna hy 'n boodskap ontvang dat hy gegrond is:

int child1ButtonPin = 13; // Dit is die pen waarmee ons drukknoppie gekoppel is aan kind1ButtonState = 0; // Lees die toestand van die knoppie (aan/af) int child1PreviousState = 0; int kind1Strike = 0;

// die opstelfunksie word een keer uitgevoer as u op reset druk of die bord aanskakel

ongeldige opstelling () {Serial.begin (9600); pinMode (kind1ButtonPin, INPUT); } // die lusfunksie loop oor en oor vir ewig leegloop () {// lees die knoppie se toestand (aan of af) child1ButtonState = digitalRead (child1ButtonPin); if (child1ButtonState! = child1PreviousState) {if (child1ButtonState == HOOG) // Knoppie word ingedruk {child1Strike ++; Serial.println (kind1Strike);

as (kind1Strike> = 3)

{Serial.println ("Kind 1 is gegrond!"); } vertraging (3000); }}

}

Die Serial Moniter moet soos die prent hierbo lyk.

Let wel: Maak seker dat u vertroud is met die vertraging. 'N bietjie vertraging en dit sal 'n druk van een knoppie registreer as meer as een!

Stap 3: Voeg soveel knoppies by as wat u kinders het

Voeg soveel knoppies by as wat u kinders het
Voeg soveel knoppies by as wat u kinders het
Voeg soveel knoppies by as wat u kinders het
Voeg soveel knoppies by as wat u kinders het

In hierdie stap kopieer ons eenvoudig die laaste paar stappe. Voeg soveel knoppies by as kinders. In my geval voeg ek vier by. Maak seker dat u u kode verander, die digitale pen waarna die knoppie gekoppel is. In my geval het ek penne 12 tot 10 gebruik om my knoppies by te voeg. As u hieraan moet herinner, is stap 1:

  1. Koppel die 5V aan die kragkant aan die positiewe ry op die broodbord
  2. Koppel die GND aan die negatiewe kant van die broodbord

  3. Plaas die drukknop op die broodbord Sluit die krag in die postiewe ry aan op die onderste onderste deel van die drukknop
  4. Aard die knoppie met 'n weerstand in die regter onderkant van die drukknoppie tot by die negatiewe ry van die broodbord.

  5. Koppel (u speldnommer) aan die digitale kant van die Arduino aan die regterkant bo van die knoppie.

U moet ook die kode verander om al u knoppies te hanteer. Hou in gedagte dat as u versigtig moet wees vir die snare wat u gebruik het. U kan nie by kleinletters saam voeg nie. Dit is die beste om 1 as 'n stringvoorwerp te verklaar.

int child1ButtonPin = 13; // Dit is die speld waarmee ons drukknoppie gekoppel is aan kind 2ButtonPin = 12; int child3ButtonPin = 11; int child4ButtonPin = 10; int child1ButtonState = 0; // Lees die toestand van die knoppie (aan/af) int child2ButtonState = 0; int child3ButtonState = 0; int child4ButtonState = 0; int kind1PreviousState = 0; int kind2PreviousState = 0; int kind3PreviousState = 0; int kind4PreviousState = 0; int kind1Strike = 0; int kind2Strike = 0; int kind3Strike = 0; int kind4Strike = 0;

// die opstelfunksie word een keer uitgevoer as u op reset druk of die bord aanskakel

ongeldige opstelling () {Serial.begin (9600); pinMode (kind1ButtonPin, INPUT); pinMode (child2ButtonPin, INPUT); pinMode (child3ButtonPin, INPUT); pinMode (child4ButtonPin, INPUT); } // die lusfunksie loop oor en oor vir ewig leeg lus () {// lees die knoppie se toestand (aan of af) child1ButtonState = digitalRead (child1ButtonPin);

child2ButtonState = digitalRead (child2ButtonPin);

child3ButtonState = digitalRead (child3ButtonPin);

child4ButtonState = digitalRead (child4ButtonPin);

as (child1ButtonState! = child1PreviousState)

{if (child1ButtonState == HIGH) // Knoppie word ingedruk {child1Strike ++; Serial.println (String ("Kind 1 het:") + child1Strike + "slaan");

as (kind1Strike> = 3)

{Serial.println ("Kind 1 is gegrond!"); } vertraging (3000); }} if (child2ButtonState! = child2PreviousState) {if (child2ButtonState == HOOG) // Knoppie word ingedruk {child2Strike ++; Serial.println (String ("Kind 2 het:") + child2Strike + "stakings");

as (child2Strike> = 3)

{Serial.println ("Kind 2 is gegrond!"); } vertraging (3000); }}

as (child3ButtonState! = child3PreviousState)

{if (child3ButtonState == HOOG) // Knoppie word ingedruk {child3Strike ++; Serial.println (String ("Kind 3 het:") + child3Strike + "stakings");

as (child3Strike> = 3)

{Serial.println ("Kind 3 is gegrond!"); } vertraging (3000); }}

as (child4ButtonState! = child4PreviousState)

{if (child4ButtonState == HOOG) // Knoppie word ingedruk {child4Strike ++; Serial.println (String ("Kind 4 het:") + child4Strike + "stakings");

as (child4Strike> = 3)

{Serial.println ("Kind 4 is gegrond!"); } vertraging (3000); }}}

Stap 4: Voeg 'n gonser by

Voeg 'n gonser by
Voeg 'n gonser by
Voeg 'n gonser by
Voeg 'n gonser by

Laat ons nou seker maak dat u kinders weet dat hulle gegrond is. Laat ons 'n gonser byvoeg. Volg hierdie maklike stappe om die gonser aan te sluit.

  1. Voeg 'n gonser by u broodbord, beplan ruimte, aangesien 'n LCD -skerm verskyn.
  2. Koppel die Postive -kant (die zoemer moet 'n + aan die postiewe kant hê) aan die Pin van u keuse. Ek het 9 gedoen.
  3. Koppel die ander kant met die grondrail van u broodbord.

Verander vervolgens u kode om die gonser uit te skakel as 'n kind op die grond val. Daar is 'n paar verskillende maniere om vir u zoemer te kodeer, maar ek hou van toon (buzzerName, hertz, duur) vanweë sy eenvoud. 'N Voorbeeld hiervan is toon (buzzer, 4000, 300).

int child1ButtonPin = 13; // Dit is die pen wat ons drukknoppie aan ons kind2ButtonPin = 12 gekoppel is; int child3ButtonPin = 11; int child4ButtonPin = 10; int child1ButtonState = 0; // Lees die knoppie se toestand (aan/af) int child2ButtonState = 0; int child3ButtonState = 0; int kind4ButtonState = 0; int kind1PreviousState = 0; int kind2PreviousState = 0; int kind3PreviousState = 0; int kind4PreviousState = 0; int kind1Strike = 0; int kind2Strike = 0; int kind3Strike = 0; int kind4Strike = 0; const int gonser = 2;

// die opstelfunksie word een keer uitgevoer as u op reset druk of die bord aanskakel

ongeldige opstelling () {Serial.begin (9600); pinMode (kind1ButtonPin, INPUT); pinMode (child2ButtonPin, INPUT); pinMode (child3ButtonPin, INPUT); pinMode (child4ButtonPin, INPUT); pinMode (zoemer, UITGANG); } // die lusfunksie loop oor en oor vir ewig leeg lus () {// lees die knoppie se toestand (aan of af) child1ButtonState = digitalRead (child1ButtonPin);

child2ButtonState = digitalRead (child2ButtonPin);

child3ButtonState = digitalRead (child3ButtonPin);

child4ButtonState = digitalRead (child4ButtonPin);

as (child1ButtonState! = child1PreviousState)

{if (child1ButtonState == HOOG) // Knoppie word ingedruk {child1Strike ++; Serial.println (String ("Kind 1 het:") + kind1Strike + "slaan");

as (kind1Strike> = 3)

{Serial.println ("Kind 1 is gegrond!"); toon (zoemer, 5000, 500); // Stuur 'n 5 Hertz -klank vir 5 millisekondes

}

vertraging (3000); }} if (child2ButtonState! = child2PreviousState) {if (child2ButtonState == HOOG) // Knoppie word ingedruk {child2Strike ++; Serial.println (String ("Kind 2 het:") + child2Strike + "stakings");

as (child2Strike> = 3)

{Serial.println ("Kind 2 is gegrond!"); toon (zoemer, 5000, 500); } vertraging (3000); }}

as (child3ButtonState! = child3PreviousState)

{if (child3ButtonState == HOOG) // Knoppie word ingedruk {child3Strike ++; Serial.println (String ("Kind 3 het:") + child3Strike + "stakings");

as (child3Strike> = 3)

{Serial.println ("Kind 3 is gegrond!"); toon (zoemer, 5000, 500); } vertraging (3000); }}

as (child4ButtonState! = child4PreviousState)

{if (child4ButtonState == HOOG) // Knoppie word ingedruk {child4Strike ++; Serial.println (String ("Kind 4 het:") + child4Strike + "stakings");

as (child4Strike> = 3)

{Serial.println ("Kind 4 is gegrond!"); toon (zoemer, 5000, 500); } vertraging (3000); }}}

Stap 5: Voeg 'n LCD -skerm by

Image
Image
Voeg 'n LCD -skerm by
Voeg 'n LCD -skerm by

Nou kan 'n LCD -skerm duidelik en maklik gelees word.

  1. Voeg eers 'n potensiometer by u broodbord om die lcd -skerm te beheer. Wees versigtig waar u dit plaas, aangesien u waarskynlik nou nie genoeg ruimte het nie.
  2. Gebruik die linkervoorkant om u potensiometer aan die kragrail te koppel
  3. Gebruik die voorkant regs om u potensiometer te grond.
  4. Die agterkant sal aan die lcd -skerm gekoppel word.
  5. Voeg die LCD -skerm by u broodbord
  6. Aard die eerste skermpen aan die aardrail
  7. Draai die tweede pen aan die kragrail.
  8. Die derde LCD -pen gaan na Pin 8 op die Arduino
  9. Die vierde LCD -pen gaan na Pin 7 op die Arduino
  10. Die vyfde gaan na pen 6 op die Arduino
  11. Sesde pen gaan na pen 5 op die Arduino
  12. Spelde 7 tot 10 op die LCD -skerm is leeg
  13. Speld 11 gaan na pen 5 op die Arduino
  14. Speld 12 gaan na die grondrail
  15. Speld 13 gaan na pen 4 op die Arduino
  16. Speld 14 gaan aan die agterkant van die potensiometer
  17. Speld 15 gaan na die kragrail
  18. Speld 16 gaan na die Ground Rail.

Nou moet u u kode opdateer om die lcd -skerm te gebruik. Hiervoor gebruik u die libary Liquid Crystal. Wees versigtig vir u lcd -drukstate. Onthou om die skerm skoon te maak as u 'n nuwe boodskap nodig het. Onthou ook om die wyser te stel wanneer u twee reëls wil gebruik.

#insluit

LiquidCrystal lcd (3, 4, 5, 6, 7, 8); // Stel die LCD -skerm in

int child1ButtonPin = 13; // Dit is die speld waarmee ons drukknoppie gekoppel is aan int child2ButtonPin = 12; int child3ButtonPin = 11; int child4ButtonPin = 10; int child1ButtonState = 0; // Lees die knoppie se toestand (aan/af) int child2ButtonState = 0; int child3ButtonState = 0; int kind4ButtonState = 0; int kind1PreviousState = 0; // Die vorige toestand van die knoppie wat int child2PreviousState = 0 gedruk is; int kind3PreviousState = 0; int kind4PreviousState = 0; int kind1Strike = 0; // Hoeveel stakings het 'n kind int child2Strike = 0; int kind3Strike = 0; int kind4Strike = 0; const int gonser = 9; // die Gonser

// die opstelfunksie word een keer uitgevoer as u op reset druk of die bord aanskakel

ongeldige opstelling () {Serial.begin (9600); lcd.begin (16, 2); lcd.print ("Die kind"); lcd.setCursor (0, 1); lcd.print ("Gedragsveranderer"); pinMode (kind1ButtonPin, INPUT); pinMode (child2ButtonPin, INPUT); pinMode (child3ButtonPin, INPUT); pinMode (child4ButtonPin, INPUT); pinMode (zoemer, UITGANG); } // die lusfunksie loop oor en oor vir ewig void lus () {lcd.setCursor (0, 0); // lees die toestand van die knoppie (aan of af) child1ButtonState = digitalRead (child1ButtonPin);

child2ButtonState = digitalRead (child2ButtonPin);

child3ButtonState = digitalRead (child3ButtonPin);

child4ButtonState = digitalRead (child4ButtonPin);

as (child1ButtonState! = child1PreviousState)

{if (child1ButtonState == HOOG) // Knoppie word ingedruk {lcd.clear (); kind1Strike ++; Serial.println (String ("Kind 1 het:") + child1Strike + "slaan"); lcd.print ("Kind 1 het:"); lcd.setCursor (0, 1); lcd.print (kind1Strike); lcd.print ("Stakings!");

as (kind1Strike> = 3)

{Serial.println ("Kind 1 is gegrond!"); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Kind 1 is"); lcd.setCursor (0, 1); lcd.print ("gegrond!");

toon (zoemer, 5000, 500); // Stuur 'n 5 Hertz -klank vir 5 millisekondes

}

vertraging (3000); }} if (child2ButtonState! = child2PreviousState) {lcd.clear (); as (child2ButtonState == HOOG) // Knoppie ingedruk word {child2Strike ++; Serial.println (String ("Kind 2 het:") + child2Strike + "stakings"); lcd.print ("Kind 2 het:"); lcd.setCursor (0, 1); lcd.print (child2Strike); lcd.print ("Stakings!"); if (child2Strike> = 3) {Serial.println ("Kind 2 is gegrond!"); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Kind 2 is"); lcd.setCursor (0, 1); lcd.print ("gegrond!"); toon (zoemer, 5000, 500); } vertraging (3000); }}

as (child3ButtonState! = child3PreviousState)

{lcd.clear (); as (child3ButtonState == HOOG) // Knoppie ingedruk word {child3Strike ++; Serial.println (String ("Kind 3 het:") + child3Strike + "stakings"); lcd.print ("Kind 3 het:"); lcd.setCursor (0, 1); lcd.print (child3Strike); lcd.print ("Stakings!"); if (child3Strike> = 3) {Serial.println ("Kind 3 is gegrond!"); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Kind 3 is"); lcd.setCursor (0, 1); lcd.print ("gegrond!"); toon (zoemer, 5000, 500); } vertraging (3000); }}

as (child4ButtonState! = child4PreviousState)

{lcd.clear (); as (child4ButtonState == HOOG) // Knoppie ingedruk word {child4Strike ++; Serial.println (String ("Kind 4 het:") + child4Strike + "stakings"); lcd.print ("Kind 4 het:"); lcd.setCursor (0, 1); lcd.print (child4Strike); lcd.print ("Stakings!");

as (child4Strike> = 3)

{Serial.println ("Kind 4 is gegrond!"); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Kind 4 is"); lcd.setCursor (0, 1); lcd.print ("gegrond!"); toon (zoemer, 5000, 500); } vertraging (3000); }}}} En dit is alles, dit is alles wat u nodig het om u eie kindergedragmodifer te bou

Aanbeveel: