Innehållsförteckning:

Child Behavior Modifier: 5 steg (med bilder)
Child Behavior Modifier: 5 steg (med bilder)

Video: Child Behavior Modifier: 5 steg (med bilder)

Video: Child Behavior Modifier: 5 steg (med bilder)
Video: Женщина подала на развод сразу после того, как увидела это фото... 2024, November
Anonim
Barnbeteende modifierare
Barnbeteende modifierare

Child Behavior Modifier registrerar hur många gånger ditt barn har hamnat i problem (aka Strikes) och när de når tre, går en summer och en LCD -skärm meddelar att de är jordade.

Steg 1: Börja enkelt: Lägg till en knapp

Börja enkelt: Lägg till en knapp
Börja enkelt: Lägg till en knapp

Det första steget i detta projekt är enkelt. Lägg till 1 knapp. I det här steget behöver du, 4 till man -ledningar, 1 220 Resisitor och en tryckknapp.

  1. Anslut 5V på Power -sidan till den positiva raden på panelen
  2. Anslut GND till den negativa sidan av brödbrädan

  3. Sätt in tryckknappen på brödbrädan
  4. Anslut strömmen på den positiva raden till vänster nedre del av tryckknappen

  5. Jorda knappen med ett motstånd i nedre högra delen av tryckknappen till den negativa raden på brödbrädet.
  6. Anslut #13 på den digitala sidan av Arduino till den övre högra sidan av knappen.

Verifiera med din kod att knappen registrerar:

int child1ButtonPin = 13; // Det här är stiftet som vår tryckknapp är ansluten till

int child1ButtonState = 0; // Läser knappens tillstånd (på/av)

int child1Strike = 0; // Hur många strejker barnet har

// installationsfunktionen körs en gång när du trycker på reset eller driver kortet

void setup () {Serial.begin (9600); pinMode (child1ButtonPin, INPUT); } // loop -funktionen körs om och om igen för alltid void loop () {// läs knappens tillstånd (på eller av) child1ButtonState = digitalRead (child1ButtonPin); if (child1ButtonState == HIGH) // Knappen trycks in {Serial.println ("HIGH"); fördröjning (5000); }

if (child1ButtonState == LOW)

{Serial.println ("LÅG"); fördröjning (5000); }}

Steg 2: Ändra kod för att registrera knapptryckningar

Ändra kod för att registrera knapptryckningar
Ändra kod för att registrera knapptryckningar
Ändra kod för att registrera knapptryckningar
Ändra kod för att registrera knapptryckningar

Ändra koden för att registrera ett knapptryck:

int child1ButtonPin = 13; // Detta är stiftet som vår tryckknapp är ansluten till barn 1ButtonState = 0; // Läser knappens tillstånd (på/av) int child1PreviousState = 0; // Föregående knapptillstånd int child1Strike = 0;

// installationsfunktionen körs en gång när du trycker på reset eller driver kortet

void setup () {Serial.begin (9600); pinMode (child1ButtonPin, INPUT); } // loop -funktionen körs om och om igen för alltid void loop () {// läs knappens tillstånd (på eller av) child1ButtonState = digitalRead (child1ButtonPin); if (child1ButtonState! = child1PreviousState) {if (child1ButtonState == HIGH) // knappen trycks ned {child1Strike ++; Serial.println (child1Strike); fördröjning (1000); }}

}

Ändra sedan koden så att barnet får tre varningar, varefter de får ett meddelande om att de är jordade:

int child1ButtonPin = 13; // Detta är stiftet som vår tryckknapp är ansluten till barn 1ButtonState = 0; // Läser knappens tillstånd (på/av) int child1PreviousState = 0; int child1Strike = 0;

// installationsfunktionen körs en gång när du trycker på reset eller driver kortet

void setup () {Serial.begin (9600); pinMode (child1ButtonPin, INPUT); } // loop -funktionen körs om och om igen för alltid void loop () {// läs knappens tillstånd (på eller av) child1ButtonState = digitalRead (child1ButtonPin); if (child1ButtonState! = child1PreviousState) {if (child1ButtonState == HIGH) // knappen trycks ned {child1Strike ++; Serial.println (child1Strike);

if (child1Strike> = 3)

{Serial.println ("Barn 1 är jordat!"); } fördröjning (3000); }}

}

Seriemonitorn ska se ut som bilden ovan.

Obs: Se till att du är bekväm med fördröjningen. För lite fördröjning och det kommer att registrera en knapptryckning som mer än en!

Steg 3: Lägg till så många knappar som du har barn

Lägg till så många knappar som du har barn
Lägg till så många knappar som du har barn
Lägg till så många knappar som du har barn
Lägg till så många knappar som du har barn

I det här steget kopierar vi helt enkelt de sista stegen. Lägg till så många knappar som du gör barn. I mitt fall lägger jag till fyra. Var noga med att ändra din kod den digitala stift som knappen är ansluten till. I mitt fall använde jag stift 12 till 10 för att lägga till mina knappar. Om du behöver påminna här är steg 1:

  1. Anslut 5V på Power -sidan till den positiva raden på panelen
  2. Anslut GND till den negativa sidan av brödbrädan

  3. Sätt i tryckknappen på brödbrädet Anslut strömmen på den positiva raden till vänster nedre del av tryckknappen
  4. Jorda knappen med ett motstånd i nedre högra delen av tryckknappen till den negativa raden på brödbrädet.

  5. Anslut (ditt pin -nummer) på den digitala sidan av Arduino till den övre högra sidan av knappen.

Du måste också ändra koden för att hantera alla dina knappar. Kom ihåg att om du behöver vara försiktig med strängarna du använde. Du kan inte lägga till små bokstäver tillsammans. Det är bäst att deklarera 1 som ett strängobjekt.

int child1ButtonPin = 13; // Detta är stiftet som vår tryckknapp är ansluten till barn 2ButtonPin = 12; int child3ButtonPin = 11; int child4ButtonPin = 10; int child1ButtonState = 0; // Läser knappens tillstånd (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;

// installationsfunktionen körs en gång när du trycker på reset eller driver kortet

void setup () {Serial.begin (9600); pinMode (child1ButtonPin, INPUT); pinMode (child2ButtonPin, INPUT); pinMode (child3ButtonPin, INPUT); pinMode (child4ButtonPin, INPUT); } // loop -funktionen körs om och om igen för alltid void loop () {// läs knappens tillstånd (på eller av) child1ButtonState = digitalRead (child1ButtonPin);

child2ButtonState = digitalRead (child2ButtonPin);

child3ButtonState = digitalRead (child3ButtonPin);

child4ButtonState = digitalRead (child4ButtonPin);

if (child1ButtonState! = child1PreviousState)

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

if (child1Strike> = 3)

{Serial.println ("Barn 1 är jordat!"); } fördröjning (3000); }} if (child2ButtonState! = child2PreviousState) {if (child2ButtonState == HIGH) // Knappen trycks ned {child2Strike ++; Serial.println (String ("Child 2 has:") + child2Strike + "strike");

if (child2Strike> = 3)

{Serial.println ("Barn 2 är jordat!"); } fördröjning (3000); }}

if (child3ButtonState! = child3PreviousState)

{if (child3ButtonState == HIGH) // Knappen trycks ned {child3Strike ++; Serial.println (String ("Child 3 has:") + child3Strike + "strike");

if (child3Strike> = 3)

{Serial.println ("Barn 3 är jordat!"); } fördröjning (3000); }}

if (child4ButtonState! = child4PreviousState)

{if (child4ButtonState == HIGH) // Knappen trycks ned {child4Strike ++; Serial.println (String ("Child 4 has:") + child4Strike + "strike");

if (child4Strike> = 3)

{Serial.println ("Barn 4 är jordat!"); } fördröjning (3000); }}}

Steg 4: Lägg till en summer

Lägg till en summer
Lägg till en summer
Lägg till en summer
Lägg till en summer

Låt oss nu se till att dina barn vet att de är jordade. Låt oss lägga till en summer. Följ dessa enkla steg för att ansluta summern.

  1. Lägg till en summer till din brödbräda, planera för plats eftersom en LCD -skärm kommer upp.
  2. Anslut Postive -sidan (summern ska ha ett + på den postiva sidan) till den stift du väljer. Jag gjorde 9.
  3. Anslut den andra sidan till den jordade skenan på din brödbräda.

Ändra sedan din kod för att stänga av summern när ett barn blir jordat. Det finns ett par olika sätt att koda för din summer men jag gillar ton (buzzerName, hertz, duration) för dess enkelhet Så ett exempel på detta skulle vara ton (summer, 4000, 300).

int child1ButtonPin = 13; // Detta är stiftet som vår tryckknapp är ansluten till barn 2ButtonPin = 12; int child3ButtonPin = 11; int child4ButtonPin = 10; int child1ButtonState = 0; // Läser knappens tillstånd (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;

// installationsfunktionen körs en gång när du trycker på reset eller driver kortet

void setup () {Serial.begin (9600); pinMode (child1ButtonPin, INPUT); pinMode (child2ButtonPin, INPUT); pinMode (child3ButtonPin, INPUT); pinMode (child4ButtonPin, INPUT); pinMode (summer, OUTPUT); } // loop -funktionen körs om och om igen för alltid void loop () {// läs knappens tillstånd (på eller av) child1ButtonState = digitalRead (child1ButtonPin);

child2ButtonState = digitalRead (child2ButtonPin);

child3ButtonState = digitalRead (child3ButtonPin);

child4ButtonState = digitalRead (child4ButtonPin);

if (child1ButtonState! = child1PreviousState)

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

if (child1Strike> = 3)

{Serial.println ("Barn 1 är jordat!"); ton (summer, 5000, 500); // Skickar ett 5 hertz -ljud i 5 millisekunder

}

fördröjning (3000); }} if (child2ButtonState! = child2PreviousState) {if (child2ButtonState == HIGH) // Knappen trycks ned {child2Strike ++; Serial.println (String ("Child 2 has:") + child2Strike + "strike");

if (child2Strike> = 3)

{Serial.println ("Barn 2 är jordat!"); ton (summer, 5000, 500); } fördröjning (3000); }}

if (child3ButtonState! = child3PreviousState)

{if (child3ButtonState == HIGH) // Knappen trycks ned {child3Strike ++; Serial.println (String ("Child 3 has:") + child3Strike + "strike");

if (child3Strike> = 3)

{Serial.println ("Barn 3 är jordat!"); ton (summer, 5000, 500); } fördröjning (3000); }}

if (child4ButtonState! = child4PreviousState)

{if (child4ButtonState == HIGH) // Knappen trycks ned {child4Strike ++; Serial.println (String ("Child 4 has:") + child4Strike + "strike");

if (child4Strike> = 3)

{Serial.println ("Barn 4 är jordat!"); ton (summer, 5000, 500); } fördröjning (3000); }}}

Steg 5: Lägg till en LCD -skärm

Image
Image
Lägg till en LCD -skärm
Lägg till en LCD -skärm

Låter nu en LCD -skärm för tydlig och enkel läsning.

  1. Lägg först till en potentiometer på din brödbräda för att styra LCD -skärmen. Var försiktig med var du lägger den eftersom du förmodligen håller på att ta slut.
  2. Använd vänster framsida för att ansluta din potentiometer till kraftskenan
  3. Använd framsidan till höger för att jorda din potentiometer.
  4. Baksidan kommer att anslutas till LCD -skärmen.
  5. Lägg till LCD -skärmen på din brödbräda
  6. Jorda den första skärmstiften till jordskenan
  7. Anslut den andra stiftet till kraftskenan.
  8. Tredje LCD -pin går till Pin 8 på Arduino
  9. Fjärde LCD -stift går till Pin 7 på Arduino
  10. Femte går till Pin 6 på Arduino
  11. Sixth Pin går till pin 5 på Arduino
  12. Stift 7 till 10 på LCD -skärmen är tomma
  13. Pin 11 går till Pin 5 på Arduino
  14. Stift 12 går till den jordade skenan
  15. Pin 13 går till Pin 4 på Arduino
  16. Stift 14 går på baksidan av potentiometern
  17. Pin 15 går till Power rail
  18. Pin 16 går till Ground Rail.

Nu måste du uppdatera din kod för att använda LCD -skärmen. För det kommer du att använda libary Liquid Crystal. Var försiktig med dina LCD -utskrifter. Kom ihåg att rensa skärmen när du behöver ett nytt meddelande. Kom också ihåg att ställa in markören när du vill använda två rader.

#omfatta

LiquidCrystal lcd (3, 4, 5, 6, 7, 8); // Ställer in LCD -skärmen

int child1ButtonPin = 13; // Detta är stiftet som vår tryckknapp är ansluten till int child2ButtonPin = 12; int child3ButtonPin = 11; int child4ButtonPin = 10; int child1ButtonState = 0; // Läser knappens tillstånd (på/av) int child2ButtonState = 0; int child3ButtonState = 0; int child4ButtonState = 0; int child1PreviousState = 0; // Det föregående tillståndet för knappen intryckt int child2PreviousState = 0; int child3PreviousState = 0; int child4PreviousState = 0; int child1Strike = 0; // Hur många slag ett barn har int child2Strike = 0; int child3Strike = 0; int child4Strike = 0; const int summer = 9; // summern

// installationsfunktionen körs en gång när du trycker på reset eller driver kortet

void setup () {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); } // loop -funktionen körs om och om igen för alltid void loop () {lcd.setCursor (0, 0); // läs knappens tillstånd (på eller av) child1ButtonState = digitalRead (child1ButtonPin);

child2ButtonState = digitalRead (child2ButtonPin);

child3ButtonState = digitalRead (child3ButtonPin);

child4ButtonState = digitalRead (child4ButtonPin);

if (child1ButtonState! = child1PreviousState)

{if (child1ButtonState == HIGH) // Knappen trycks ned {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!");

if (child1Strike> = 3)

{Serial.println ("Barn 1 är jordat!"); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Barn 1 är"); lcd.setCursor (0, 1); lcd.print ("Grounded!");

ton (summer, 5000, 500); // Skickar ett 5 hertz -ljud i 5 millisekunder

}

fördröjning (3000); }} if (child2ButtonState! = child2PreviousState) {lcd.clear (); if (child2ButtonState == HIGH) // Knappen trycks ned {child2Strike ++; Serial.println (String ("Child 2 has:") + child2Strike + "strike"); lcd.print ("Barn 2 har:"); lcd.setCursor (0, 1); lcd.print (child2Strike); lcd.print ("Strikes!"); if (child2Strike> = 3) {Serial.println ("Barn 2 är jordat!"); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Barn 2 är"); lcd.setCursor (0, 1); lcd.print ("Grounded!"); ton (summer, 5000, 500); } fördröjning (3000); }}

if (child3ButtonState! = child3PreviousState)

{lcd.clear (); if (child3ButtonState == HIGH) // Knappen trycks ned {child3Strike ++; Serial.println (String ("Child 3 has:") + child3Strike + "strike"); lcd.print ("Barn 3 har:"); lcd.setCursor (0, 1); lcd.print (child3Strike); lcd.print ("Strikes!"); if (child3Strike> = 3) {Serial.println ("Barn 3 är jordat!"); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Barn 3 är"); lcd.setCursor (0, 1); lcd.print ("Grounded!"); ton (summer, 5000, 500); } fördröjning (3000); }}

if (child4ButtonState! = child4PreviousState)

{lcd.clear (); if (child4ButtonState == HIGH) // Knappen trycks ned {child4Strike ++; Serial.println (String ("Child 4 has:") + child4Strike + "strike"); lcd.print ("Barn 4 har:"); lcd.setCursor (0, 1); lcd.print (child4Strike); lcd.print ("Strikes!");

if (child4Strike> = 3)

{Serial.println ("Barn 4 är jordat!"); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Barn 4 är"); lcd.setCursor (0, 1); lcd.print ("Grounded!"); ton (summer, 5000, 500); } fördröjning (3000); }}} Och det är det, det är allt du behöver för att bygga din egen Child Behavior Modifier

Rekommenderad: