Indholdsfortegnelse:
- Trin 1: Start enkelt: Tilføj en knap
- Trin 2: Rediger kode til registrering af knappresser
- Trin 3: Tilføj lige så mange knapper, som du har børn
- Trin 4: Tilføj en summer
- Trin 5: Tilføj en LCD -skærm
Video: Børneadfærdsmodifikator: 5 trin (med billeder)
2024 Forfatter: John Day | [email protected]. Sidst ændret: 2024-02-01 14:39
Child Behavior Modifier registrerer, hvor mange gange dit barn er kommet i problemer (aka Strikes), og når de når tre, går en summer og en LCD -skærm meddeler, at de er jordet.
Trin 1: Start enkelt: Tilføj en knap
Det første trin i dette projekt er enkelt. Tilføj 1 knap. I dette trin har du brug for 4 mandlige til mandlige ledninger, 1 220 resisitor og en trykknap.
- Tilslut 5V på Power -siden til den positive række på brødbrættet
-
Tilslut GND til den negative side af brødbrættet
- Sæt trykknappen på brødbrættet
-
Tilslut strømmen til den postive række til venstre nederste del af trykknappen
- Jordknappen ved hjælp af en modstand i nederste højre del af trykknappen til den negative række af brødbrættet.
- Tilslut #13 på den digitale side af Arduino til øverste højre side af knappen.
Bekræft med din kode, at knappen registrerer:
int child1ButtonPin = 13; // Dette er den pin, vores trykknap er forbundet til
int child1ButtonState = 0; // Læser knappens tilstand (til/fra)
int child1Strike = 0; // Hvor mange strejker barnet har
// opsætningsfunktionen kører en gang, når du trykker på reset eller tænder for kortet
ugyldig opsætning () {Serial.begin (9600); pinMode (child1ButtonPin, INPUT); } // loop -funktionen kører igen og igen for altid void loop () {// læs knappens tilstand (on eller off) child1ButtonState = digitalRead (child1ButtonPin); hvis (child1ButtonState == HIGH) // knappen trykkes på {Serial.println ("HIGH"); forsinkelse (5000); }
hvis (child1ButtonState == LOW)
{Serial.println ("LAV"); forsinkelse (5000); }}
Trin 2: Rediger kode til registrering af knappresser
Rediger koden for at registrere et knap tryk:
int child1ButtonPin = 13; // Dette er nålen, vores trykknap er forbundet tilint child1ButtonState = 0; // Læser knappens tilstand (on/off) int child1PreviousState = 0; // Forrige knap tilstand int child1Strike = 0;
// opsætningsfunktionen kører en gang, når du trykker på reset eller tænder for kortet
ugyldig opsætning () {Serial.begin (9600); pinMode (child1ButtonPin, INPUT); } // loop -funktionen kører igen og igen for altid void loop () {// læs knappens tilstand (on eller off) child1ButtonState = digitalRead (child1ButtonPin); hvis (child1ButtonState! = child1PreviousState) {if (child1ButtonState == HIGH) // knappen trykkes på {child1Strike ++; Serial.println (child1Strike); forsinkelse (1000); }}
}
Rediger derefter koden, så barnet får tre strejker, hvorefter det vil modtage en besked om, at det er jordet:
int child1ButtonPin = 13; // Dette er nålen, vores trykknap er forbundet tilint child1ButtonState = 0; // Læser knappens tilstand (on/off) int child1PreviousState = 0; int child1Strike = 0;
// opsætningsfunktionen kører en gang, når du trykker på reset eller tænder for kortet
ugyldig opsætning () {Serial.begin (9600); pinMode (child1ButtonPin, INPUT); } // loop -funktionen kører igen og igen for altid void loop () {// læs knappens tilstand (on eller off) child1ButtonState = digitalRead (child1ButtonPin); hvis (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 ligne billedet ovenfor.
Bemærk: Sørg for, at du er fortrolig med forsinkelsen. For lidt forsinkelse, og det vil registrere 1 knap tryk som mere end en!
Trin 3: Tilføj lige så mange knapper, som du har børn
I dette trin kopierer vi simpelthen de sidste par trin. Tilføj lige så mange knapper som du gør børn. I mit tilfælde tilføjer jeg fire. Sørg for at ændre din kode den digitale pin, som knappen er forbundet til. I mit tilfælde brugte jeg ben 12 til 10 til at tilføje mine knapper. Hvis du har brug for at minde her, er trin 1:
- Tilslut 5V på Power -siden til den positive række på brødbrættet
-
Tilslut GND til den negative side af brødbrættet
- Indsæt trykknappen på brødbrættet Tilslut strømmen til den postive række til venstre nederste del af trykknappen
-
Jordknappen ved hjælp af en modstand i nederste højre del af trykknappen til den negative række af brødbrættet.
- Tilslut (dit pinkode) på den digitale side af Arduino til øverste højre side af knappen.
Du skal også ændre koden for at håndtere alle dine knapper. Husk, at hvis du skal være forsigtig med de strenge, du brugte. Du kan ikke tilføje små bogstaver sammen. Det er bedst at erklære 1 som et strengobjekt.
int child1ButtonPin = 13; // Dette er stiften, vores trykknap er forbundet tilint child2ButtonPin = 12; int child3ButtonPin = 11; int child4ButtonPin = 10; int child1ButtonState = 0; // Læser knappens tilstand (on/off) 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;
// opsætningsfunktionen kører en gang, når du trykker på reset eller tænder for kortet
ugyldig opsætning () {Serial.begin (9600); pinMode (child1ButtonPin, INPUT); pinMode (child2ButtonPin, INPUT); pinMode (child3ButtonPin, INPUT); pinMode (child4ButtonPin, INPUT); } // loop -funktionen kører igen og igen for altid void loop () {// læs knappens tilstand (on eller off) child1ButtonState = digitalRead (child1ButtonPin);
child2ButtonState = digitalRead (child2ButtonPin);
child3ButtonState = digitalRead (child3ButtonPin);
child4ButtonState = digitalRead (child4ButtonPin);
hvis (child1ButtonState! = child1PreviousState)
{if (child1ButtonState == HIGH) // Knap trykkes på {child1Strike ++; Serial.println (String ("Child 1 Has:") + child1Strike + "strike");
hvis (child1Strike> = 3)
{Serial.println ("Barn 1 er jordet!"); } forsinkelse (3000); }} hvis (child2ButtonState! = child2PreviousState) {if (child2ButtonState == HIGH) // knap trykkes på {child2Strike ++; Serial.println (String ("Barn 2 har:") + child2Strike + "strejker");
hvis (child2Strike> = 3)
{Serial.println ("Barn 2 er jordet!"); } forsinkelse (3000); }}
hvis (child3ButtonState! = child3PreviousState)
{if (child3ButtonState == HIGH) // Knap trykkes på {child3Strike ++; Serial.println (String ("Barn 3 har:") + child3Strike + "strejker");
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 + "strejker");
hvis (child4Strike> = 3)
{Serial.println ("Barn 4 er jordet!"); } forsinkelse (3000); }}}
Trin 4: Tilføj en summer
Lad os nu sørge for, at dine børn ved, at de er jordet. Lad os tilføje en summer. Følg disse lette trin for at tilslutte summeren.
- Føj en summer til dit brødbræt, planlæg plads, da der kommer en LCD -skærm.
- Tilslut den postive side (summeren skal have et + på den postive side) til den ønskede pin. Jeg lavede 9.
- Tilslut den anden side til den jordede skinne på dit brødbræt.
Rediger derefter din kode for at slukke summeren, når et barn bliver jordet. Der er et par forskellige måder at kode til din summer på, men jeg kan godt lide tone (buzzerName, hertz, varighed) for dens enkelhed Så et eksempel på dette ville være tone (summer, 4000, 300).
int child1ButtonPin = 13; // Dette er stiften, vores trykknap er forbundet tilint child2ButtonPin = 12; int child3ButtonPin = 11; int child4ButtonPin = 10; int child1ButtonState = 0; // Læser knappens tilstand (on/off) 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;
// opsætningsfunktionen kører en gang, når du trykker på reset eller tænder for kortet
ugyldig opsætning () {Serial.begin (9600); pinMode (child1ButtonPin, INPUT); pinMode (child2ButtonPin, INPUT); pinMode (child3ButtonPin, INPUT); pinMode (child4ButtonPin, INPUT); pinMode (summer, OUTPUT); } // loop -funktionen kører igen og igen for altid void loop () {// læs knappens tilstand (on eller off) child1ButtonState = digitalRead (child1ButtonPin);
child2ButtonState = digitalRead (child2ButtonPin);
child3ButtonState = digitalRead (child3ButtonPin);
child4ButtonState = digitalRead (child4ButtonPin);
hvis (child1ButtonState! = child1PreviousState)
{if (child1ButtonState == HIGH) // Knap 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); }} hvis (child2ButtonState! = child2PreviousState) {if (child2ButtonState == HIGH) // knap trykkes på {child2Strike ++; Serial.println (String ("Barn 2 har:") + child2Strike + "strejker");
hvis (child2Strike> = 3)
{Serial.println ("Barn 2 er jordet!"); tone (summer, 5000, 500); } forsinkelse (3000); }}
hvis (child3ButtonState! = child3PreviousState)
{if (child3ButtonState == HIGH) // Knap trykkes på {child3Strike ++; Serial.println (String ("Barn 3 har:") + child3Strike + "strejker");
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 + "strejker");
hvis (child4Strike> = 3)
{Serial.println ("Barn 4 er jordet!"); tone (summer, 5000, 500); } forsinkelse (3000); }}}
Trin 5: Tilføj en LCD -skærm
Nu lader en LCD -skærm til klar og let læsning.
- Tilføj først et potentiometer til dit brødbræt for at styre LCD -skærmen. Vær forsigtig med, hvor du placerer det, da du sandsynligvis er løbet tør for plads nu.
- Brug venstre forreste til at forbinde dit potentiometer til strømskinnen
- Brug den forreste højre til jordforbindelse af dit potentiometer.
- Bagsiden forbindes med lcd -skærmen.
- Tilføj LCD -skærmen til dit brødbræt
- Jord den første skærmstift til jordskinnen
- Led den anden pin til strømskinnen.
- Tredje LCD -pin går til Pin 8 på Arduino
- Fjerde LCD -pin går til Pin 7 på Arduino
- Femte går til Pin 6 på Arduino
- Sjette pin går til pin 5 på Arduino
- Pins 7 til 10 på LCD -skærmen er tomme
- Pin 11 går til Pin 5 på Arduino
- Pin 12 går til den jordede skinne
- Pin 13 går til Pin 4 på Arduino
- Pin 14 går bag på potentiometeret
- Pin 15 går til Power rail
- Pin 16 går til Ground Rail.
Nu skal du opdatere din kode for at bruge lcd -skærmen. Til det vil du bruge libary Liquid Crystal. Vær forsigtig med dine lcd -udskrivninger. Husk at rydde skærmen, når du har brug for en ny besked. Husk også at indstille markøren, når du vil bruge to linjer.
#omfatte
LiquidCrystal lcd (3, 4, 5, 6, 7, 8); // Indstiller LCD -skærmen
int child1ButtonPin = 13; // Dette er den pin, vores trykknap er forbundet til int child2ButtonPin = 12; int child3ButtonPin = 11; int child4ButtonPin = 10; int child1ButtonState = 0; // Læser knappens tilstand (on/off) int child2ButtonState = 0; int child3ButtonState = 0; int child4ButtonState = 0; int child1PreviousState = 0; // Den forrige tilstand af knappen, der blev trykket på int child2PreviousState = 0; int child3PreviousState = 0; int child4PreviousState = 0; int child1Strike = 0; // Hvor mange strejker et barn har int child2Strike = 0; int child3Strike = 0; int child4Strike = 0; const int summer = 9; // summeren
// opsætningsfunktionen kører en gang, når du trykker på reset eller tænder for kortet
ugyldig opsætning () {Serial.begin (9600); lcd.begin (16, 2); lcd.print ("Barnet"); lcd.setCursor (0, 1); lcd.print ("Adfærdsmodifikator"); pinMode (child1ButtonPin, INPUT); pinMode (child2ButtonPin, INPUT); pinMode (child3ButtonPin, INPUT); pinMode (child4ButtonPin, INPUT); pinMode (summer, OUTPUT); } // loop -funktionen kører igen og igen for altid void loop () {lcd.setCursor (0, 0); // læs knappens tilstand (til eller fra) child1ButtonState = digitalRead (child1ButtonPin);
child2ButtonState = digitalRead (child2ButtonPin);
child3ButtonState = digitalRead (child3ButtonPin);
child4ButtonState = digitalRead (child4ButtonPin);
hvis (child1ButtonState! = child1PreviousState)
{if (child1ButtonState == HIGH) // Knap 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 ("jordet!");
tone (summer, 5000, 500); // Sender en 5 hertz lyd i 5 millisekunder
}
forsinkelse (3000); }} hvis (child2ButtonState! = child2PreviousState) {lcd.clear (); hvis (child2ButtonState == HIGH) // knappen trykkes på {child2Strike ++; Serial.println (String ("Barn 2 har:") + child2Strike + "strejker"); lcd.print ("Barn 2 har:"); lcd.setCursor (0, 1); lcd.print (child2Strike); lcd.print ("Strikes!"); hvis (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 ("jordet!"); 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 + "strejker"); lcd.print ("Barn 3 har:"); lcd.setCursor (0, 1); lcd.print (child3Strike); lcd.print ("Strikes!"); hvis (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 ("jordet!"); tone (summer, 5000, 500); } forsinkelse (3000); }}
hvis (child4ButtonState! = child4PreviousState)
{lcd.clear (); hvis (child4ButtonState == HIGH) // knap trykkes på {child4Strike ++; Serial.println (String ("Barn 4 har:") + child4Strike + "strejker"); 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 ("jordet!"); tone (summer, 5000, 500); } forsinkelse (3000); }}} Og det er det, det er alt, hvad du har brug for for at opbygge dit eget barneadfærdsmodifikator
Anbefalede:
Sådan gør du: Installation af Raspberry PI 4 Headless (VNC) med Rpi-imager og billeder: 7 trin (med billeder)
Sådan gør du: Installation af Raspberry PI 4 Headless (VNC) med Rpi-imager og billeder: Jeg planlægger at bruge denne Rapsberry PI i en masse sjove projekter tilbage i min blog. Tjek det gerne ud. Jeg ville tilbage til at bruge min Raspberry PI, men jeg havde ikke et tastatur eller en mus på min nye placering. Det var et stykke tid siden jeg konfigurerede en hindbær
Arduino Halloween Edition - Pop -out -skærm med zombier (trin med billeder): 6 trin
Arduino Halloween Edition - Zombies Pop -out -skærm (trin med billeder): Vil du skræmme dine venner og lave skrigende støj i Halloween? Eller vil du bare lave en god sjov? Denne pop-out-skærm fra Zombies kan gøre det! I denne Instructable vil jeg lære dig, hvordan du nemt laver jump-out zombier ved hjælp af Arduino. HC-SR0
Sådan adskilles en computer med nemme trin og billeder: 13 trin (med billeder)
Sådan adskilles en computer med nemme trin og billeder: Dette er en instruktion om, hvordan du adskiller en pc. De fleste af de grundlæggende komponenter er modulopbyggede og nemme at fjerne. Det er dog vigtigt, at du er organiseret omkring det. Dette hjælper med at forhindre dig i at miste dele og også ved at lave genmonteringen til
Ciclop 3d Scanner My Way Trin for trin: 16 trin (med billeder)
Ciclop 3d Scanner My Way Step by Step: Hej alle sammen, jeg kommer til at indse den berømte Ciclop 3D -scanner.Alle trin, der er godt forklaret på det originale projekt, er ikke til stede.Jeg lavede nogle rettelser for at forenkle processen, først Jeg udskriver basen, og end jeg genstarter printkortet, men fortsæt
Sådan styrer du husholdningsapparater med fjernsyn med fjernbetjening med timerfunktion: 7 trin (med billeder)
Sådan styrer du husholdningsapparater med fjernsyn med fjernbetjening med timerfunktion: Selv efter 25 års introduktion til forbrugermarkedet er infrarød kommunikation stadig meget relevant i de seneste dage. Uanset om det er dit 55 tommer 4K -fjernsyn eller dit billydsystem, har alt brug for en IR -fjernbetjening for at reagere på vores