Innholdsfortegnelse:

Barneadferdsmodifikator: 5 trinn (med bilder)
Barneadferdsmodifikator: 5 trinn (med bilder)

Video: Barneadferdsmodifikator: 5 trinn (med bilder)

Video: Barneadferdsmodifikator: 5 trinn (med bilder)
Video: Я узнал куда ведёт жуткий тоннель в моём подвале и был в шоке. СТРАШНЫЕ ИСТОРИИ НА НОЧЬ. Правила ТСЖ 2024, November
Anonim
Barneadferdsmodifikator
Barneadferdsmodifikator

Child Behavior Modifier registrerer hvor mange ganger barnet ditt har fått problemer (aka Strikes), og når de når tre, går en summer og en LCD -skjerm annonserer at de er jordet.

Trinn 1: Start enkelt: Legg til en knapp

Start enkelt: Legg til en knapp
Start enkelt: Legg til en knapp

Det første trinnet i dette prosjektet er enkelt. Legg til 1 knapp. I dette trinnet trenger du 4 mannlige til mannlige ledninger, 1 220 resisitor og en trykknapp.

  1. Koble 5V på Power -siden til den positive raden på brødbrettet
  2. Koble GND til den negative siden av brødbrettet

  3. Sett trykknappen på brødbrettet
  4. Koble strømmen til den postive raden til venstre nedre del av trykknappen

  5. Jordknappen ved å bruke en motstand nederst til høyre på trykknappen til den negative raden på brødbrettet.
  6. Koble #13 på den digitale siden av Arduino til øverst til høyre på knappen.

Bekreft med koden at knappen registrerer:

int child1ButtonPin = 13; // Dette er pinnen vår trykknapp er koblet til

int child1ButtonState = 0; // Leser knappens tilstand (på/av)

int child1Strike = 0; // Hvor mange streik barnet har

// oppsettfunksjonen kjøres en gang når du trykker på reset eller slår på kortet

ugyldig oppsett () {Serial.begin (9600); pinMode (child1ButtonPin, INPUT); } // sløyfefunksjonen kjører igjen og igjen for alltid void loop () {// les knappens tilstand (på eller av) child1ButtonState = digitalRead (child1ButtonPin); hvis (child1ButtonState == HIGH) // knappen trykkes på {Serial.println ("HIGH"); forsinkelse (5000); }

hvis (child1ButtonState == LOW)

{Serial.println ("LAV"); forsinkelse (5000); }}

Trinn 2: Endre kode for å registrere knappetrykk

Endre kode for å registrere knappetrykk
Endre kode for å registrere knappetrykk
Endre kode for å registrere knappetrykk
Endre kode for å registrere knappetrykk

Endre koden for å registrere et knappetrykk:

int child1ButtonPin = 13; // Dette er tappen vår trykknapp er koblet tilint child1ButtonState = 0; // Leser knappens tilstand (på/av) int child1PreviousState = 0; // Forrige knappstilstand int child1Strike = 0;

// oppsettfunksjonen kjøres en gang når du trykker på reset eller slår på kortet

ugyldig oppsett () {Serial.begin (9600); pinMode (child1ButtonPin, INPUT); } // sløyfefunksjonen kjører igjen og igjen for alltid void loop () {// les knappens tilstand (på eller av) child1ButtonState = digitalRead (child1ButtonPin); if (child1ButtonState! = child1PreviousState) {if (child1ButtonState == HIGH) // Knappen trykkes {child1Strike ++; Serial.println (child1Strike); forsinkelse (1000); }}

}

Neste Endre koden slik at barnet får tre streik, hvoretter det vil motta en melding om at det er jordet:

int child1ButtonPin = 13; // Dette er pinnen vår trykknapp er koblet tilint child1ButtonState = 0; // Leser knappens tilstand (på/av) int child1PreviousState = 0; int child1Strike = 0;

// oppsettfunksjonen kjøres en gang når du trykker på reset eller slår på kortet

ugyldig oppsett () {Serial.begin (9600); pinMode (child1ButtonPin, INPUT); } // sløyfefunksjonen kjører igjen og igjen for alltid void loop () {// les knappens tilstand (på eller av) child1ButtonState = digitalRead (child1ButtonPin); if (child1ButtonState! = child1PreviousState) {if (child1ButtonState == HIGH) // knappen trykkes på {child1Strike ++; Serial.println (child1Strike);

hvis (child1Strike> = 3)

{Serial.println ("Barn 1 er jordet!"); } forsinkelse (3000); }}

}

Serial Moniter skal se ut som bildet ovenfor.

Merk: Sørg for at du er komfortabel med forsinkelsen. For liten forsinkelse, og det vil registrere ett knappetrykk som mer enn ett!

Trinn 3: Legg til så mange knapper som du har barn

Legg til så mange knapper som du har barn
Legg til så mange knapper som du har barn
Legg til så mange knapper som du har barn
Legg til så mange knapper som du har barn

I dette trinnet kopierer vi ganske enkelt de siste par trinnene. Legg til så mange knapper som du gjør barn. I mitt tilfelle legger jeg til fire. Sørg for å endre koden, den digitale pinnen som knappen er koblet til. I mitt tilfelle brukte jeg pinnene 12 til 10 for å legge til knappene mine. Hvis du trenger påminnelse her, er trinn 1:

  1. Koble 5V på Power -siden til den positive raden på brødbrettet
  2. Koble GND til den negative siden av brødbrettet

  3. Sett inn trykknappen på brødbrettet Koble strømmen til den postive raden til venstre nedre del av trykknappen
  4. Jordknappen ved å bruke en motstand nederst til høyre på trykknappen til den negative raden på brødbrettet.

  5. Koble (pin -nummeret ditt) på den digitale siden av Arduino til øverst til høyre på knappen.

Du må også endre koden for å håndtere alle knappene dine. Vær oppmerksom på at hvis du må være forsiktig med strengene du brukte. Du kan ikke legge til små bokstaver sammen. Det er best å erklære 1 som et strengobjekt.

int child1ButtonPin = 13; // Dette er pinnen vår trykknapp er koblet tilint child2ButtonPin = 12; int child3ButtonPin = 11; int child4ButtonPin = 10; int child1ButtonState = 0; // Leser knappens tilstand (på/av) 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;

// oppsettfunksjonen kjøres en gang når du trykker på reset eller slår på kortet

ugyldig oppsett () {Serial.begin (9600); pinMode (child1ButtonPin, INPUT); pinMode (child2ButtonPin, INPUT); pinMode (child3ButtonPin, INPUT); pinMode (child4ButtonPin, INPUT); } // sløyfefunksjonen går igjen og igjen for alltid void loop () {// les knappens tilstand (på eller av) child1ButtonState = digitalRead (child1ButtonPin);

child2ButtonState = digitalRead (child2ButtonPin);

child3ButtonState = digitalRead (child3ButtonPin);

child4ButtonState = digitalRead (child4ButtonPin);

hvis (child1ButtonState! = child1PreviousState)

{if (child1ButtonState == HIGH) // Knappen trykkes på {child1Strike ++; Serial.println (String ("Child 1 Has:") + child1Strike + "strike");

hvis (child1Strike> = 3)

{Serial.println ("Barn 1 er jordet!"); } forsinkelse (3000); }} if (child2ButtonState! = child2PreviousState) {if (child2ButtonState == HIGH) // Knappen trykkes {child2Strike ++; Serial.println (String ("Barn 2 har:") + child2Strike + "streik");

hvis (child2Strike> = 3)

{Serial.println ("Barn 2 er jordet!"); } forsinkelse (3000); }}

hvis (child3ButtonState! = child3PreviousState)

{if (child3ButtonState == HIGH) // Knappen trykkes på {child3Strike ++; Serial.println (String ("Barn 3 har:") + child3Strike + "streik");

hvis (child3Strike> = 3)

{Serial.println ("Barn 3 er jordet!"); } forsinkelse (3000); }}

hvis (child4ButtonState! = child4PreviousState)

{if (child4ButtonState == HIGH) // Knappen trykkes på {child4Strike ++; Serial.println (String ("Barn 4 har:") + child4Strike + "streik");

hvis (child4Strike> = 3)

{Serial.println ("Barn 4 er jordet!"); } forsinkelse (3000); }}}

Trinn 4: Legg til en summer

Legg til en summer
Legg til en summer
Legg til en summer
Legg til en summer

La oss nå sørge for at barna dine vet at de er jordet. La oss legge til en summer. Følg disse enkle trinnene for å koble til summeren.

  1. Legg til en summer til brødbrettet ditt, planlegg plass siden en LCD -skjerm kommer opp.
  2. Koble Postive -siden (summeren skal ha et + på den postive siden) til den valgte pinnen. Jeg gjorde 9.
  3. Koble den andre siden til den jordede skinnen på brødbrettet.

Deretter endrer du koden din for å slå av summeren når et barn blir jordet. Det er et par forskjellige måter å kode for summeren din, men jeg liker tone (buzzerName, hertz, varighet) for sin enkelhet. Så et eksempel på dette vil være tone (summer, 4000, 300).

int child1ButtonPin = 13; // Dette er pinnen vår trykknapp er koblet tilint child2ButtonPin = 12; int child3ButtonPin = 11; int child4ButtonPin = 10; int child1ButtonState = 0; // Leser knappens tilstand (på/av) 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 summer = 2;

// oppsettfunksjonen kjøres en gang når du trykker på reset eller slår på kortet

ugyldig oppsett () {Serial.begin (9600); pinMode (child1ButtonPin, INPUT); pinMode (child2ButtonPin, INPUT); pinMode (child3ButtonPin, INPUT); pinMode (child4ButtonPin, INPUT); pinMode (summer, OUTPUT); } // sløyfefunksjonen går igjen og igjen for alltid void loop () {// les knappens tilstand (på eller av) child1ButtonState = digitalRead (child1ButtonPin);

child2ButtonState = digitalRead (child2ButtonPin);

child3ButtonState = digitalRead (child3ButtonPin);

child4ButtonState = digitalRead (child4ButtonPin);

hvis (child1ButtonState! = child1PreviousState)

{if (child1ButtonState == HIGH) // Knappen trykkes på {child1Strike ++; Serial.println (String ("Child 1 Has:") + child1Strike + "strike");

hvis (child1Strike> = 3)

{Serial.println ("Barn 1 er jordet!"); tone (summer, 5000, 500); // Sender en 5 hertz lyd i 5 millisekunder

}

forsinkelse (3000); }} if (child2ButtonState! = child2PreviousState) {if (child2ButtonState == HIGH) // Knappen trykkes {child2Strike ++; Serial.println (String ("Barn 2 har:") + child2Strike + "streik");

hvis (child2Strike> = 3)

{Serial.println ("Barn 2 er jordet!"); tone (summer, 5000, 500); } forsinkelse (3000); }}

hvis (child3ButtonState! = child3PreviousState)

{if (child3ButtonState == HIGH) // Knappen trykkes på {child3Strike ++; Serial.println (String ("Barn 3 har:") + child3Strike + "streik");

hvis (child3Strike> = 3)

{Serial.println ("Barn 3 er jordet!"); tone (summer, 5000, 500); } forsinkelse (3000); }}

hvis (child4ButtonState! = child4PreviousState)

{if (child4ButtonState == HIGH) // Knappen trykkes på {child4Strike ++; Serial.println (String ("Barn 4 har:") + child4Strike + "streik");

hvis (child4Strike> = 3)

{Serial.println ("Barn 4 er jordet!"); tone (summer, 5000, 500); } forsinkelse (3000); }}}

Trinn 5: Legg til en LCD -skjerm

Image
Image
Legg til en LCD -skjerm
Legg til en LCD -skjerm

Lar nå en LCD -skjerm for klar og enkel lesing.

  1. Legg først et potensiometer til brødbrettet for å kontrollere LCD -skjermen. Vær forsiktig med hvor du legger den siden du sannsynligvis er tom for plass nå.
  2. Bruk fronten til venstre for å koble potensiometeret til kraftskinnen
  3. Bruk fremre høyre for å jorde potensiometeret.
  4. Baksiden blir koblet til LCD -skjermen.
  5. Legg LCD -skjermen til brødbrettet
  6. Jord den første skjermpinnen til jordingsskinnen
  7. Koble den andre pinnen til kraftskinnen.
  8. Den tredje LCD -pinnen går til Pin 8 på Arduino
  9. Den fjerde LCD -pinnen går til Pin 7 på Arduino
  10. Femte går til Pin 6 på Arduino
  11. Sixth Pin går til pin 5 på Arduino
  12. Pinnene 7 til 10 på LCD -skjermen er tomme
  13. Pin 11 går til Pin 5 på Arduino
  14. Pinne 12 går til den jordede skinnen
  15. Pin 13 går til Pin 4 på Arduino
  16. Pinne 14 går bak på potensiometeret
  17. Pin 15 går til Power rail
  18. Pin 16 går til Ground Rail.

Nå må du oppdatere koden din for å bruke lcd -skjermen. For det vil du bruke libary Liquid Crystal. Vær forsiktig med LCD -utskriftene. Husk å tømme skjermen når du trenger en ny melding. Husk også å sette markøren når du vil bruke to linjer.

#inkludere

LiquidCrystal lcd (3, 4, 5, 6, 7, 8); // Angir LCD -skjermen

int child1ButtonPin = 13; // Dette er tappen vår trykknapp er koblet til int child2ButtonPin = 12; int child3ButtonPin = 11; int child4ButtonPin = 10; int child1ButtonState = 0; // Leser knappens tilstand (på/av) int child2ButtonState = 0; int child3ButtonState = 0; int child4ButtonState = 0; int child1PreviousState = 0; // Den forrige tilstanden til knappen ble trykket int child2PreviousState = 0; int child3PreviousState = 0; int child4PreviousState = 0; int child1Strike = 0; // Hvor mange streiker et barn har int child2Strike = 0; int child3Strike = 0; int child4Strike = 0; const int summer = 9; // summeren

// oppsettsfunksjonen kjøres en gang når du trykker på reset eller slår på kortet

ugyldig oppsett () {Serial.begin (9600); lcd.begin (16, 2); lcd.print ("Barnet"); lcd.setCursor (0, 1); lcd.print ("Behavior Modifer"); pinMode (child1ButtonPin, INPUT); pinMode (child2ButtonPin, INPUT); pinMode (child3ButtonPin, INPUT); pinMode (child4ButtonPin, INPUT); pinMode (summer, OUTPUT); } // sløyfefunksjonen kjører om og om igjen for alltid void loop () {lcd.setCursor (0, 0); // les knappens tilstand (på eller av) child1ButtonState = digitalRead (child1ButtonPin);

child2ButtonState = digitalRead (child2ButtonPin);

child3ButtonState = digitalRead (child3ButtonPin);

child4ButtonState = digitalRead (child4ButtonPin);

hvis (child1ButtonState! = child1PreviousState)

{if (child1ButtonState == HIGH) // Knappen trykkes på {lcd.clear (); child1Strike ++; Serial.println (String ("Child 1 Has:") + child1Strike + "strike"); lcd.print ("Barn 1 har:"); lcd.setCursor (0, 1); lcd.print (child1Strike); lcd.print ("Strikes!");

hvis (child1Strike> = 3)

{Serial.println ("Barn 1 er jordet!"); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Barn 1 er"); lcd.setCursor (0, 1); lcd.print ("Grounded!");

tone (summer, 5000, 500); // Sender en 5 hertz lyd i 5 millisekunder

}

forsinkelse (3000); }} if (child2ButtonState! = child2PreviousState) {lcd.clear (); hvis (child2ButtonState == HIGH) // knappen trykkes på {child2Strike ++; Serial.println (String ("Barn 2 har:") + child2Strike + "streik"); lcd.print ("Barn 2 har:"); lcd.setCursor (0, 1); lcd.print (child2Strike); lcd.print ("Strikes!"); if (child2Strike> = 3) {Serial.println ("Barn 2 er jordet!"); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Barn 2 er"); lcd.setCursor (0, 1); lcd.print ("Grounded!"); tone (summer, 5000, 500); } forsinkelse (3000); }}

hvis (child3ButtonState! = child3PreviousState)

{lcd.clear (); hvis (child3ButtonState == HIGH) // knappen trykkes på {child3Strike ++; Serial.println (String ("Barn 3 har:") + child3Strike + "streik"); lcd.print ("Barn 3 har:"); lcd.setCursor (0, 1); lcd.print (child3Strike); lcd.print ("Strikes!"); if (child3Strike> = 3) {Serial.println ("Barn 3 er jordet!"); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Barn 3 er"); lcd.setCursor (0, 1); lcd.print ("Grounded!"); tone (summer, 5000, 500); } forsinkelse (3000); }}

hvis (child4ButtonState! = child4PreviousState)

{lcd.clear (); hvis (child4ButtonState == HIGH) // knappen trykkes på {child4Strike ++; Serial.println (String ("Barn 4 har:") + child4Strike + "streik"); lcd.print ("Barn 4 har:"); lcd.setCursor (0, 1); lcd.print (child4Strike); lcd.print ("Strikes!");

hvis (child4Strike> = 3)

{Serial.println ("Barn 4 er jordet!"); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Barn 4 er"); lcd.setCursor (0, 1); lcd.print ("Grounded!"); tone (summer, 5000, 500); } forsinkelse (3000); }}} Og det er det, det er alt du trenger for å bygge din egen barneadferdsmodifikator

Anbefalt: