Satura rādītājs:
- 1. darbība: sāciet vienkārši: pievienojiet pogu
- 2. darbība: modificējiet kodu, lai reģistrētu pogu nospiešanu
- 3. solis: pievienojiet tik daudz pogu, cik jums ir bērni
- 4. darbība: pievienojiet skaņas signālu
- 5. darbība: pievienojiet LCD ekrānu
Video: Bērna uzvedības modifikators: 5 soļi (ar attēliem)
2024 Autors: John Day | [email protected]. Pēdējoreiz modificēts: 2024-02-01 14:41
Bērna uzvedības modifikators reģistrē, cik reizes jūsu bērns ir nonācis nepatikšanās (pazīstams arī kā streiki), un, sasniedzot trīs gadus, atskan skaņas signāls, un LCD ekrāns paziņo, ka viņš ir piezemēts.
1. darbība: sāciet vienkārši: pievienojiet pogu
Pirmais solis šajā projektā ir vienkāršs. Pievienojiet 1 pogu. Šajā solī jums ir nepieciešami 4 vadi no vīrieša līdz vīrietim, 1 220 rezistors un spiedpoga.
- Pievienojiet 5V strāvas pusē pozitīvai maizes dēļa rindai
-
Pievienojiet GND maizes dēļa negatīvajai pusei
- Ievietojiet pogu uz maizes dēļa
- Pievienojiet strāvu pozitīvajai rindai ar spiedpogas kreiso apakšējo daļu
-
Zemējiet pogu, izmantojot rezistoru spiedpogas apakšējā labajā daļā līdz maizes dēļa negatīvajai rindai.
- Savienojiet #13 Arduino digitālajā pusē ar pogas augšējo labo pusi.
Ar kodu pārbaudiet, vai poga tiek reģistrēta:
int child1ButtonPin = 13; // Šī ir tapa, kurai ir piespiesta mūsu spiedpoga
int child1ButtonState = 0; // Nolasa pogas stāvokli (ieslēgts/izslēgts)
int bērns1Striks = 0; // Cik streiku bērnam ir
// iestatīšanas funkcija darbojas vienu reizi, nospiežot atiestatīšanu vai barojot plati
void setup () {Serial.begin (9600); pinMode (bērns1ButtonPin, INPUT); } // cilpas funkcija darbojas atkal un atkal uz visiem laikiem void loop () {// lasīt pogas stāvokli (ieslēgts vai izslēgts) child1ButtonState = digitalRead (child1ButtonPin); if (child1ButtonState == HIGH) // Poga tiek nospiesta {Serial.println ("HIGH"); kavēšanās (5000); }
ja (bērns1ButtonState == LOW)
{Serial.println ("LOW"); kavēšanās (5000); }}
2. darbība: modificējiet kodu, lai reģistrētu pogu nospiešanu
Mainiet kodu, lai reģistrētu pogu:
int child1ButtonPin = 13; // Šī ir tapa, kurai mūsu spiedpoga ir pievienotaint1 // Iepriekšējais pogas stāvoklis int child1Strike = 0;
// iestatīšanas funkcija darbojas vienu reizi, nospiežot atiestatīšanu vai barojot plati
void setup () {Serial.begin (9600); pinMode (bērns1ButtonPin, INPUT); } // cilpas funkcija darbojas atkal un atkal uz visiem laikiem void loop () {// lasīt pogas stāvokli (ieslēgts vai izslēgts) child1ButtonState = digitalRead (child1ButtonPin); if (bērns1ButtonState! = child1PreviousState) {if (child1ButtonState == HIGH) // Poga ir nospiesta {child1Strike ++; Serial.println (bērns1Strike); kavēšanās (1000); }}
}
Tālāk modificējiet kodu tā, lai bērns saņemtu trīs brīdinājumus, pēc tam viņš saņems ziņojumu, ka viņš ir pamatots:
int child1ButtonPin = 13; // Šī ir tapa, kurai mūsu spiedpoga ir pievienotaint1 int bērns1Striks = 0;
// iestatīšanas funkcija darbojas vienu reizi, nospiežot atiestatīšanu vai barojot plati
void setup () {Serial.begin (9600); pinMode (bērns1ButtonPin, INPUT); } // cilpas funkcija darbojas atkal un atkal uz visiem laikiem void loop () {// lasīt pogas stāvokli (ieslēgts vai izslēgts) child1ButtonState = digitalRead (child1ButtonPin); if (bērns1ButtonState! = child1PreviousState) {if (child1ButtonState == HIGH) // Poga ir nospiesta {child1Strike ++; Serial.println (bērns1Strike);
ja (bērns1Strike> = 3)
{Serial.println ("Bērns 1 ir iezemēts!"); } kavēšanās (3000); }}
}
Sērijas monitoram vajadzētu izskatīties kā attēlā iepriekš.
Piezīme: pārliecinieties, vai esat apmierināts ar kavēšanos. Lai nedaudz aizkavētos, tiks reģistrēta 1 pogas nospiešana vairāk nekā vienu reizi!
3. solis: pievienojiet tik daudz pogu, cik jums ir bērni
Šajā solī mēs vienkārši kopējam pēdējās pāris darbības. Pievienojiet tik daudz pogu, cik bērnu. Manā gadījumā es pievienoju četrus. Noteikti nomainiet savu kodu ciparu tapai, pie kuras ir pieslēgta poga. Manā gadījumā es izmantoju tapas no 12 līdz 10, lai pievienotu pogas. Ja jums ir nepieciešams atgādināt, šeit ir 1. darbība:
- Pievienojiet 5V strāvas pusē pozitīvai maizes dēļa rindai
-
Pievienojiet GND maizes dēļa negatīvajai pusei
- Ievietojiet spiedpogu uz maizes dēļa Pievienojiet strāvas padeves rindai spiedpogas kreiso apakšējo daļu
-
Zemējiet pogu, izmantojot rezistoru spiedpogas apakšējā labajā daļā līdz maizes dēļa negatīvajai rindai.
- Savienojiet (savu pin numuru) Arduino digitālajā pusē ar pogas augšējo labo pusi.
Jums būs arī jāmaina kods, lai apstrādātu visas pogas. Lūdzu, paturiet prātā, ka, ja jums jābūt uzmanīgam ar izmantotajām stīgām. Jūs nevarat kopā pievienot mazos burtus. Vislabāk ir deklarēt 1 kā virknes objektu.
int child1ButtonPin = 13; // Šī ir piespraude, kurai mūsu spiedpoga ir pievienotaint22ButtonPin = 12; int bērns3ButtonPin = 11; int bērns4ButtonPin = 10; int bērns1ButtonState = 0; // Nolasa pogas stāvokli (ieslēgts/izslēgts) int child2ButtonState = 0; int bērns3ButtonState = 0; int bērns4ButtonState = 0; int child1PreviousState = 0; int child2PreviousState = 0; int child3PreviousState = 0; int child4PreviousState = 0; int bērns1Striks = 0; int bērns2Strike = 0; int child3Strike = 0; int bērns4Strike = 0;
// iestatīšanas funkcija darbojas vienu reizi, nospiežot atiestatīšanu vai barojot plati
void setup () {Serial.begin (9600); pinMode (bērns1ButtonPin, INPUT); pinMode (bērns2ButtonPin, INPUT); pinMode (bērns3ButtonPin, INPUT); pinMode (bērns4ButtonPin, INPUT); } // cilpas funkcija darbojas atkal un atkal uz visiem laikiem void loop () {// lasīt pogas stāvokli (ieslēgts vai izslēgts) child1ButtonState = digitalRead (child1ButtonPin);
bērns2ButtonState = digitalRead (child2ButtonPin);
bērns3ButtonState = digitalRead (child3ButtonPin);
bērns4ButtonState = digitalRead (child4ButtonPin);
ja (bērns1ButtonState! = child1PreviousState)
{if (child1ButtonState == HIGH) // Poga ir nospiesta {child1Strike ++; Serial.println (String ("Bērnam 1 ir:") + child1Strike + "streiki");
ja (bērns1Strike> = 3)
{Serial.println ("Bērns 1 ir iezemēts!"); } kavēšanās (3000); }} if (child2ButtonState! = child2PreviousState) {if (child2ButtonState == HIGH) // Poga ir nospiesta {child2Strike ++; Serial.println (String ("Bērnam 2 ir:") + child2Strike + "streiki");
ja (bērns2Strike> = 3)
{Serial.println ("Bērns 2 ir iezemēts!"); } kavēšanās (3000); }}
ja (bērns3ButtonState! = child3PreviousState)
{if (child3ButtonState == HIGH) // Poga ir nospiesta {child3Strike ++; Serial.println (String ("3. bērnam ir:") + child3Strike + "streiki");
ja (bērns3Strike> = 3)
{Serial.println ("Bērns 3 ir iezemēts!"); } kavēšanās (3000); }}
ja (bērns4ButtonState! = child4PreviousState)
{if (child4ButtonState == HIGH) // Poga ir nospiesta {child4Strike ++; Serial.println (String ("Bērnam 4 ir:") + child4Strike + "streiki");
ja (bērns4Strike> = 3)
{Serial.println ("Bērns 4 ir iezemēts!"); } kavēšanās (3000); }}}
4. darbība: pievienojiet skaņas signālu
Tagad pārliecinieties, ka jūsu bērni zina, ka viņi ir iezemēti. Pievienosim skaņas signālu. Lai pievienotu skaņas signālu, veiciet šīs vienkāršās darbības.
- Pievienojiet maizītē skaņas signālu, plānojiet vietu, jo parādās LCD ekrāns.
- Pievienojiet Postive pusi (skaņas signālam jābūt + zīmei pozitīvajā pusē) ar jūsu izvēlēto tapu. Es izdarīju 9.
- Savienojiet otru pusi ar maizes dēļa iezemēto sliedi.
Pēc tam mainiet savu kodu, lai izslēgtu skaņas signālu, kad bērns kļūst piezemēts. Ir vairāki dažādi signāla kodēšanas veidi, taču man patīk tonis (buzzerName, hercs, ilgums) tā vienkāršības dēļ. Tātad, piemērs tam būtu tonis (zummeris, 4000, 300).
int child1ButtonPin = 13; // Šī ir piespraude, ar kuru mūsu spiedpoga ir savienota ar bērnu2ButtonPin = 12; int bērns3ButtonPin = 11; int bērns4ButtonPin = 10; int bērns1ButtonState = 0; // Nolasa pogas stāvokli (ieslēgts/izslēgts) int child2ButtonState = 0; int bērns3ButtonState = 0; int bērns4ButtonState = 0; int child1PreviousState = 0; int child2PreviousState = 0; int child3PreviousState = 0; int child4PreviousState = 0; int bērns1Striks = 0; int bērns2Strike = 0; int child3Strike = 0; int bērns4Strike = 0; const int skaņas signāls = 2;
// iestatīšanas funkcija darbojas vienu reizi, nospiežot atiestatīšanu vai barojot plati
void setup () {Serial.begin (9600); pinMode (bērns1ButtonPin, INPUT); pinMode (bērns2ButtonPin, INPUT); pinMode (bērns3ButtonPin, INPUT); pinMode (bērns4ButtonPin, INPUT); pinMode (skaņas signāls, OUTPUT); } // cilpas funkcija darbojas atkal un atkal uz visiem laikiem void loop () {// lasīt pogas stāvokli (ieslēgts vai izslēgts) child1ButtonState = digitalRead (child1ButtonPin);
bērns2ButtonState = digitalRead (child2ButtonPin);
bērns3ButtonState = digitalRead (child3ButtonPin);
bērns4ButtonState = digitalRead (child4ButtonPin);
ja (bērns1ButtonState! = child1PreviousState)
{if (child1ButtonState == HIGH) // Poga ir nospiesta {child1Strike ++; Serial.println (String ("Bērnam 1 ir:") + child1Strike + "streiki");
ja (bērns1Strike> = 3)
{Serial.println ("Bērns 1 ir iezemēts!"); tonis (zummeris, 5000, 500); // Nosūta 5 hercu skaņu uz 5 milisekundēm
}
kavēšanās (3000); }} if (child2ButtonState! = child2PreviousState) {if (child2ButtonState == HIGH) // Poga ir nospiesta {child2Strike ++; Serial.println (String ("Bērnam 2 ir:") + child2Strike + "streiki");
ja (bērns2Strike> = 3)
{Serial.println ("Bērns 2 ir iezemēts!"); tonis (zummeris, 5000, 500); } kavēšanās (3000); }}
ja (bērns3ButtonState! = child3PreviousState)
{if (child3ButtonState == HIGH) // Poga ir nospiesta {child3Strike ++; Serial.println (String ("3. bērnam ir:") + child3Strike + "streiki");
ja (bērns3Strike> = 3)
{Serial.println ("Bērns 3 ir iezemēts!"); tonis (zummeris, 5000, 500); } kavēšanās (3000); }}
ja (bērns4ButtonState! = child4PreviousState)
{if (child4ButtonState == HIGH) // Poga ir nospiesta {child4Strike ++; Serial.println (String ("Bērnam 4 ir:") + child4Strike + "streiki");
ja (bērns4Strike> = 3)
{Serial.println ("Bērns 4 ir iezemēts!"); tonis (zummeris, 5000, 500); } kavēšanās (3000); }}}
5. darbība: pievienojiet LCD ekrānu
Tagad ļaujiet LCD ekrānam skaidri un viegli nolasīt.
- Vispirms pievienojiet savam maizes dēlim potenciometru, lai kontrolētu LCD ekrānu. Esiet piesardzīgs, kur to ievietot, jo jums, iespējams, tagad pietrūkst vietas.
- Izmantojiet priekšējo kreiso pusi, lai savienotu potenciometru ar strāvas sliedi
- Izmantojiet priekšējo labo pusi, lai iezemētu potenciometru.
- Aizmugure tiks savienota ar LCD ekrānu.
- Pievienojiet LCD ekrānu savai maizei
- Iezemējiet pirmo ekrāna tapu līdz zemējuma sliedei
- Pievienojiet otro tapu pie strāvas sliedes.
- Trešā LCD tapiņa iet uz Arduino 8. tapu
- Ceturtā LCD tapa iet uz 7. tapu Arduino
- Piektais attiecas uz Arduino 6. tapu
- Sestā tapa iet uz Arduino 5. tapu
- LCD ekrāna tapas no 7 līdz 10 ir tukšas
- Piespraude 11 iet uz Arduino 5. tapu
- 12. tapa iet uz iezemētu sliedi
- Piespraude 13 iet uz Arduino 4. tapu
- Pin 14 iet uz potenciometra aizmuguri
- 15. tapa iet uz barošanas sliedi
- 16. tapa iet uz zemes sliedi.
Tagad jums būs jāatjaunina kods, lai izmantotu LCD ekrānu. Šim nolūkam jūs izmantosit liberālo šķidro kristālu. Esiet piesardzīgs ar LCD drukātajiem paziņojumiem. Neaizmirstiet notīrīt ekrānu, kad nepieciešama jauna ziņa. Atcerieties arī iestatīt kursoru, ja vēlaties izmantot divas rindas.
#iekļaut
LiquidCrystal LCD (3, 4, 5, 6, 7, 8); // Iestata LCD ekrānu
int child1ButtonPin = 13; // Šī ir tapa, ar kuru mūsu spiedpoga ir savienota ar int child2ButtonPin = 12; int bērns3ButtonPin = 11; int bērns4ButtonPin = 10; int bērns1ButtonState = 0; // Nolasa pogas stāvokli (ieslēgts/izslēgts) int child2ButtonState = 0; int bērns3ButtonState = 0; int bērns4ButtonState = 0; int child1PreviousState = 0; // Iepriekšējais pogas stāvoklis tika nospiests int child2PreviousState = 0; int child3PreviousState = 0; int child4PreviousState = 0; int bērns1Striks = 0; // Cik streiku bērnam ir int child2Strike = 0; int child3Strike = 0; int bērns4Strike = 0; const int skaņas signāls = 9; // skaņas signāls
// iestatīšanas funkcija darbojas vienu reizi, nospiežot atiestatīšanu vai barojot plati
void setup () {Serial.begin (9600); lcd. sākums (16, 2); lcd.print ("Bērns"); lcd.setCursor (0, 1); lcd.print ("Uzvedības modifikators"); pinMode (bērns1ButtonPin, INPUT); pinMode (bērns2ButtonPin, INPUT); pinMode (bērns3ButtonPin, INPUT); pinMode (bērns4ButtonPin, INPUT); pinMode (skaņas signāls, OUTPUT); } // cilpas funkcija atkal un atkal darbojas uz visiem laikiem void loop () {lcd.setCursor (0, 0); // lasīt pogas stāvokli (ieslēgts vai izslēgts) child1ButtonState = digitalRead (child1ButtonPin);
bērns2ButtonState = digitalRead (child2ButtonPin);
bērns3ButtonState = digitalRead (child3ButtonPin);
bērns4ButtonState = digitalRead (child4ButtonPin);
ja (bērns1ButtonState! = child1PreviousState)
{if (child1ButtonState == HIGH) // Poga tiek nospiesta {lcd.clear (); bērns1Strike ++; Serial.println (String ("Bērnam 1 ir:") + child1Strike + "streiki"); lcd.print ("Bērnam 1 ir:"); lcd.setCursor (0, 1); lcd.print (bērns1Strike); lcd.print ("Streiki!");
ja (bērns1Strike> = 3)
{Serial.println ("Bērns 1 ir iezemēts!"); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("1. bērns ir"); lcd.setCursor (0, 1); lcd.print ("Pamatots!");
tonis (zummeris, 5000, 500); // Nosūta 5 hercu skaņu uz 5 milisekundēm
}
kavēšanās (3000); }} if (child2ButtonState! = child2PreviousState) {lcd.clear (); if (child2ButtonState == HIGH) // Poga ir nospiesta {child2Strike ++; Serial.println (String ("Bērnam 2 ir:") + child2Strike + "streiki"); lcd.print ("Bērnam 2 ir:"); lcd.setCursor (0, 1); lcd.print (bērns2Strike); lcd.print ("Streiki!"); if (child2Strike> = 3) {Serial.println ("Bērns 2 ir iezemēts!"); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("2. bērns ir"); lcd.setCursor (0, 1); lcd.print ("Pamatots!"); tonis (zummeris, 5000, 500); } kavēšanās (3000); }}
ja (bērns3ButtonState! = child3PreviousState)
{lcd.clear (); if (child3ButtonState == HIGH) // Poga ir nospiesta {child3Strike ++; Serial.println (String ("3. bērnam ir:") + child3Strike + "streiki"); lcd.print ("Bērnam 3 ir:"); lcd.setCursor (0, 1); lcd.print (bērns3Strike); lcd.print ("Streiki!"); if (child3Strike> = 3) {Serial.println ("Bērns 3 ir iezemēts!"); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("3. bērns ir"); lcd.setCursor (0, 1); lcd.print ("Pamatots!"); tonis (zummeris, 5000, 500); } kavēšanās (3000); }}
ja (bērns4ButtonState! = child4PreviousState)
{lcd.clear (); if (child4ButtonState == HIGH) // Poga ir nospiesta {child4Strike ++; Serial.println (String ("Bērnam 4 ir:") + child4Strike + "streiki"); lcd.print ("Bērnam 4 ir:"); lcd.setCursor (0, 1); lcd.print (bērns4Strike); lcd.print ("Streiki!");
ja (bērns4Strike> = 3)
{Serial.println ("Bērns 4 ir iezemēts!"); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("4. bērns ir"); lcd.setCursor (0, 1); lcd.print ("Pamatots!"); tonis (zummeris, 5000, 500); } kavēšanās (3000); }}} Un tas ir viss, kas jums nepieciešams, lai izveidotu savu bērna uzvedības modifikatoru
Ieteicams:
Nav urinēšanas, mājdzīvnieku uzvedības pielāgošanas ierīce, kas kavē kaķu urinēšanu jūsu mājās: 4 soļi
Nē Pee tagad, mājdzīvnieku uzvedības pielāgošanas ierīce, kas neļauj kaķiem urinēt jūsu mājās: mani tik ļoti satrauca kaķēns, ka viņai patīk urinēt uz manas gultas, es pārbaudīju visu, kas viņai nepieciešams, un es arī aizvedu viņu pie veterinārārsta. Pēc tam, kad esmu novērsis visu, ko spēju domāt, un ieklausīšos ārsta teiktajā, es saprotu, ka viņai vienkārši ir slikta uzvedība. Tātad th
Kā: Raspberry PI 4 bez galvas (VNC) instalēšana ar RPI attēlu un attēliem: 7 soļi (ar attēliem)
Kā: Raspberry PI 4 bez galvas (VNC) instalēšana ar Rpi-imager un Pictures: Es plānoju izmantot šo Rapsberry PI daudzos jautros projektos savā emuārā. Jūtieties brīvi to pārbaudīt. Es gribēju atkal izmantot savu aveņu PI, bet manā jaunajā vietā nebija tastatūras vai peles. Pagāja laiks, kopš es izveidoju aveņu
Bērna pirmais pulkstenis - ar ieslēgšanas taimeri: 16 soļi (ar attēliem)
Bērna pirmais pulkstenis - ar ieslēgšanas taimeri: šajā rokasgrāmatā ir parādīts, kā izveidot maināmas pulksteņa ciparnīcas, kurās var būt redzami jūsu bērna attēli, ģimenes/mājdzīvnieku fotoattēli vai jebkas cits, ko, jūsuprāt, būtu jauki periodiski mainīt. Vienkārši piestipriniet skaidru skatu virs vēlamā
Kamera atvieglotiem laika intervāla attēliem: 22 soļi (ar attēliem)
Kamera atvieglotiem laika intervāla attēliem: es pārbaudīju vienu no citām instrukcijām par laika nobīdes filmu veidošanu. Viņš diezgan labi aptvēra filmas daļu. Viņš pastāstīja par bezmaksas programmatūru, kuru varat lejupielādēt, lai izveidotu filmas. Es sev teicu: domāju, ka redzēšu, vai varu
Kā panākt, lai fejas parādās jūsu bērna dzimšanas dienas ballītē!: 4 soļi
Kā likt fejām parādīties jūsu bērna dzimšanas dienas ballītē!: Mana drīz 8 gadus vecā meita gribēja pasaku tēmu dzimšanas dienā, tāpēc es nolēmu to padarīt par īpaši īpašu. Es izveidoju ļoti vienkāršu efektu, kas visiem ballīšu apmeklētājiem lika domāt, ka īstas fejas parādījās tieši viņiem