Innholdsfortegnelse:
- Trinn 1: Start enkelt: Legg til en knapp
- Trinn 2: Endre kode for å registrere knappetrykk
- Trinn 3: Legg til så mange knapper som du har barn
- Trinn 4: Legg til en summer
- Trinn 5: Legg til en LCD -skjerm
Video: Barneadferdsmodifikator: 5 trinn (med bilder)
2024 Forfatter: John Day | [email protected]. Sist endret: 2024-02-01 14:41
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
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.
- Koble 5V på Power -siden til den positive raden på brødbrettet
-
Koble GND til den negative siden av brødbrettet
- Sett trykknappen på brødbrettet
-
Koble strømmen til den postive raden til venstre nedre del av trykknappen
- Jordknappen ved å bruke en motstand nederst til høyre på trykknappen til den negative raden på brødbrettet.
- 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 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
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:
- Koble 5V på Power -siden til den positive raden på brødbrettet
-
Koble GND til den negative siden av brødbrettet
- Sett inn trykknappen på brødbrettet Koble strømmen til den postive raden til venstre nedre del av trykknappen
-
Jordknappen ved å bruke en motstand nederst til høyre på trykknappen til den negative raden på brødbrettet.
- 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
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.
- Legg til en summer til brødbrettet ditt, planlegg plass siden en LCD -skjerm kommer opp.
- Koble Postive -siden (summeren skal ha et + på den postive siden) til den valgte pinnen. Jeg gjorde 9.
- 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
Lar nå en LCD -skjerm for klar og enkel lesing.
- 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å.
- Bruk fronten til venstre for å koble potensiometeret til kraftskinnen
- Bruk fremre høyre for å jorde potensiometeret.
- Baksiden blir koblet til LCD -skjermen.
- Legg LCD -skjermen til brødbrettet
- Jord den første skjermpinnen til jordingsskinnen
- Koble den andre pinnen til kraftskinnen.
- Den tredje LCD -pinnen går til Pin 8 på Arduino
- Den fjerde LCD -pinnen går til Pin 7 på Arduino
- Femte går til Pin 6 på Arduino
- Sixth Pin går til pin 5 på Arduino
- Pinnene 7 til 10 på LCD -skjermen er tomme
- Pin 11 går til Pin 5 på Arduino
- Pinne 12 går til den jordede skinnen
- Pin 13 går til Pin 4 på Arduino
- Pinne 14 går bak på potensiometeret
- Pin 15 går til Power rail
- 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:
Ta flotte bilder med en iPhone: 9 trinn (med bilder)
Ta flotte bilder med en iPhone: De fleste av oss har med oss en smarttelefon overalt i disse dager, så det er viktig å vite hvordan du bruker smarttelefonkameraet ditt til å ta flotte bilder! Jeg har bare hatt en smarttelefon i et par år, og jeg har elsket å ha et greit kamera for å dokumentere ting jeg
Slik gjør du det: Installere Raspberry PI 4 Headless (VNC) med Rpi-imager og bilder: 7 trinn (med bilder)
Howto: Installere Raspberry PI 4 Headless (VNC) Med Rpi-imager og bilder: Jeg planlegger å bruke denne Rapsberry PI i en haug med morsomme prosjekter tilbake i bloggen min. Sjekk det gjerne ut. Jeg ønsket å begynne å bruke Raspberry PI igjen, men jeg hadde ikke tastatur eller mus på min nye plassering. Det var en stund siden jeg konfigurerte en bringebær
Slik demonterer du en datamaskin med enkle trinn og bilder: 13 trinn (med bilder)
Slik demonterer du en datamaskin med enkle trinn og bilder: Dette er en instruksjon om hvordan du demonterer en PC. De fleste grunnkomponentene er modulære og fjernes lett. Det er imidlertid viktig at du er organisert om det. Dette vil bidra til å hindre deg i å miste deler, og også i å gjøre monteringen igjen
PCB -design med enkle og enkle trinn: 30 trinn (med bilder)
PCB -design med enkle og enkle trinn: HELLO VENNER Den veldig nyttige og enkle opplæringen for de som ønsker å lære PCB -design, kan komme i gang
Hvordan lage en delt skjermvideo med fire trinn: 4 trinn (med bilder)
Hvordan lage en delt skjermvideo med fire trinn: Vi ser ofte en samme person vise i en scene to ganger i et TV -spill. Og så vidt vi vet har ikke skuespilleren en tvillingbror. Vi har også sett at to sangvideoer blir satt på en skjerm for å sammenligne sangferdighetene sine. Dette er kraften til spl