Sisukord:

Lapse käitumise muutja: 5 sammu (piltidega)
Lapse käitumise muutja: 5 sammu (piltidega)

Video: Lapse käitumise muutja: 5 sammu (piltidega)

Video: Lapse käitumise muutja: 5 sammu (piltidega)
Video: PORILAUL - Laulupesa lapsed 2024, November
Anonim
Laste käitumise muutja
Laste käitumise muutja

Lapse käitumise muutja salvestab, mitu korda on teie laps hätta sattunud (teise nimega Strikes) ja kolmeaastaseks saades kostab helisignaal ja LCD -ekraan teatab, et ta on maandatud.

Samm: alustage lihtsalt: lisage nupp

Alustage lihtsalt: lisage nupp
Alustage lihtsalt: lisage nupp

Selle projekti esimene samm on lihtne. Lisage 1 nupp. Selles etapis vajate 4 meessoost meessoost traati, 1 220 resisitori ja vajutusnuppu.

  1. Ühendage toitepoolne 5 V leivaplaadi positiivse reaga
  2. Ühendage GND leivaplaadi negatiivse poolega
  3. Sisestage nupp leivaplaadile
  4. Ühendage postitusrea toide nupu vasakpoolsesse alumisse ossa

  5. Maandage nupp, kasutades takistit surunupu paremas alanurgas leivaplaadi negatiivse rea külge.

  6. Ühendage #13 Arduino digitaalsel küljel nupu paremas ülanurgas.

Kinnitage oma koodiga, et nupp registreeritakse:

int child1ButtonPin = 13; // See on tihvt, millega meie nupp on ühendatud

int child1ButtonState = 0; // Loeb nupu olekut (sisse/välja)

int laps1Strike = 0; // Mitu streiki lapsel on

// seadistusfunktsioon töötab üks kord, kui vajutate lähtestamise või plaadi toiteallikat

void setup () {Serial.begin (9600); pinMode (laps1ButtonPin, INPUT); } // tsüklifunktsioon jookseb ikka ja jälle igavesti void loop () {// loe nupu olekut (sisse või välja) child1ButtonState = digitalRead (child1ButtonPin); if (laps1ButtonState == HIGH) // Nuppu vajutatakse {Serial.println ("HIGH"); viivitus (5000); }

if (laps1ButtonState == LOW)

{Serial.println ("LOW"); viivitus (5000); }}

2. samm: muutke koodi registreerimisnuppudeks

Muuda koodi registreerimiseks
Muuda koodi registreerimiseks
Muuda koodi registreerimiseks
Muuda koodi registreerimiseks

Muutke koodi, et registreerida nupuvajutus:

int child1ButtonPin = 13; // See on nööpnõel, millega meie nupp on ühendatud // Eelmine nupu olek int laps1Strike = 0;

// seadistusfunktsioon töötab üks kord, kui vajutate lähtestamise või plaadi toiteallikat

void setup () {Serial.begin (9600); pinMode (laps1ButtonPin, INPUT); } // tsüklifunktsioon jookseb ikka ja jälle igavesti void loop () {// loe nupu olekut (sisse või välja) child1ButtonState = digitalRead (child1ButtonPin); if (laps1ButtonState! = child1PreviousState) {if (child1ButtonState == HIGH) // Nuppu vajutatakse {child1Strike ++; Serial.println (laps1Strike); viivitus (1000); }}

}

Järgmisena muutke koodi nii, et laps saaks 3 lööki, mille järel ta saab teate, et ta on maandatud:

int child1ButtonPin = 13; // See on nööpnõel, millega meie nupp on ühendatud int laps1Strike = 0;

// seadistusfunktsioon töötab üks kord, kui vajutate lähtestamise või plaadi toiteallikat

void setup () {Serial.begin (9600); pinMode (laps1ButtonPin, INPUT); } // tsüklifunktsioon jookseb ikka ja jälle igavesti void loop () {// loe nupu olekut (sisse või välja) child1ButtonState = digitalRead (child1ButtonPin); if (laps1ButtonState! = child1PreviousState) {if (child1ButtonState == HIGH) // Nuppu vajutatakse {child1Strike ++; Serial.println (laps1Strike);

kui (laps1 löök> = 3)

{Serial.println ("Laps 1 on maandatud!"); } viivitus (3000); }}

}

Seeriamonitor peaks välja nägema ülaltoodud pildil.

Märkus. Veenduge, et olete viivitusega rahul. Väikese viivitusega registreeritakse 1 nupuvajutus rohkem kui üheks!

Samm: lisage nii palju nuppe kui teil on lapsi

Lisage nii palju nuppe kui teil on lapsi
Lisage nii palju nuppe kui teil on lapsi
Lisage nii palju nuppe kui teil on lapsi
Lisage nii palju nuppe kui teil on lapsi

Selles etapis kopeerime lihtsalt paar viimast sammu. Lisage nii palju nuppe kui lapsi. Minu puhul lisan neli. Muutke kindlasti oma koodi digitaalne tihvt, millega nupp on ühendatud. Minu puhul kasutasin oma nuppude lisamiseks tihvte 12 kuni 10. Kui vajate meeldetuletamist, siis siin on 1. samm:

  1. Ühendage toitepoolne 5 V leivaplaadi positiivse reaga

  2. Ühendage GND leivaplaadi negatiivse poolega
  3. Sisestage surunupp leivaplaadile

  4. Maandage nupp, kasutades takistit surunupu paremas alanurgas leivaplaadi negatiivse rea külge.
  5. Ühendage (oma PIN -kood) Arduino digitaalsel küljel nupu paremas ülanurgas.

Samuti peate kõigi nuppude haldamiseks koodi muutma. Pidage meeles, et kui peate olema kasutatavate stringide suhtes ettevaatlik. Väiketähti ei saa koos lisada. Parim on deklareerida 1 stringi objektina.

int child1ButtonPin = 13; // See on tihvt, mille meie nupp on ühendatud lapsega2ButtonPin = 12; int laps3ButtonPin = 11; int laps4ButtonPin = 10; int laps1ButtonState = 0; // Loeb nupu olekut (sisse/välja) int child2ButtonState = 0; int laps3ButtonState = 0; int laps4ButtonState = 0; int laps1eelne riik = 0; int laps2eelne riik = 0; int laps3eelne riik = 0; int child4PreviousState = 0; int laps1Strike = 0; int laps2Strike = 0; int laps3Strike = 0; int laps4Strike = 0;

// seadistusfunktsioon töötab üks kord, kui vajutate lähtestamise või plaadi toiteallikat

void setup () {Serial.begin (9600); pinMode (laps1ButtonPin, INPUT); pinMode (laps2ButtonPin, INPUT); pinMode (laps3ButtonPin, INPUT); pinMode (laps4ButtonPin, INPUT); } // tsüklifunktsioon töötab ikka ja jälle igavesti void loop () {// loe nupu olekut (sisse või välja) child1ButtonState = digitalRead (child1ButtonPin);

laps2ButtonState = digitalRead (child2ButtonPin);

laps3ButtonState = digitalRead (child3ButtonPin);

laps4ButtonState = digitalRead (child4ButtonPin);

if (laps1ButtonState! = child1PreviousState)

{if (child1ButtonState == HIGH) // Nupule vajutatakse {child1Strike ++; Serial.println (String ("Lapsel 1 on:") + laps1Strike + "lööb");

kui (laps1 löök> = 3)

{Serial.println ("Laps 1 on maandatud!"); } viivitus (3000); }} if (child2ButtonState! = child2PreviousState) {if (child2ButtonState == HIGH) // Nuppu vajutatakse {child2Strike ++; Serial.println (String ("Lapsel 2 on:") + laps2Strike + "lööb");

kui (laps2Strike> = 3)

{Serial.println ("Laps 2 on maandatud!"); } viivitus (3000); }}

if (laps3ButtonState! = child3PreviousState)

{if (child3ButtonState == HIGH) // Nuppu vajutatakse {child3Strike ++; Serial.println (String ("Lapsel 3 on:") + child3Strike + "lööb");

kui (Child3Strike> = 3)

{Serial.println ("Laps 3 on maandatud!"); } viivitus (3000); }}

if (laps4ButtonState! = child4PreviousState)

{if (child4ButtonState == HIGH) // Nuppu vajutatakse {child4Strike ++; Serial.println (String ("Lapsel 4 on:") + child4Strike + "lööb");

kui (laps4Strike> = 3)

{Serial.println ("Laps 4 on maandatud!"); } viivitus (3000); }}}

Samm 4: lisage summer

Lisage sumin
Lisage sumin
Lisage sumin
Lisage sumin

Nüüd veenduge, et teie lapsed teaksid, et nad on maandatud. Lisame helisignaali. Summuri ühendamiseks toimige järgmiselt.

  1. Lisage oma leivalauale sumin, planeerige ruumi, kuna ilmub LCD -ekraan.
  2. Ühendage postitatav pool (summeril peaks postituse poolel olema +) teie valitud tihvtiga. Tegin 9.
  3. Ühendage teine pool leivaplaadi maandatud rööpaga.

Seejärel muutke oma koodi, et summuti välja lülitada, kui laps maandub. Teie helisignaali kodeerimiseks on paar erinevat viisi, kuid mulle meeldib toon (buzzerName, hertz, duration) selle lihtsuse tõttu. Näiteks oleks selle näide toon (sumin, 4000, 300).

int child1ButtonPin = 13; // See on tihvt, mille meie nupp on ühendatud lapsega2ButtonPin = 12; int laps3ButtonPin = 11; int laps4ButtonPin = 10; int laps1ButtonState = 0; // Loeb nupu olekut (sisse/välja) int child2ButtonState = 0; int laps3ButtonState = 0; int laps4ButtonState = 0; int laps1eelne riik = 0; int laps2eelne riik = 0; int laps3eelne riik = 0; int child4PreviousState = 0; int laps1Strike = 0; int laps2Strike = 0; int laps3Strike = 0; int laps4Strike = 0; const int helisignaal = 2;

// seadistusfunktsioon töötab üks kord, kui vajutate lähtestamise või plaadi toiteallikat

void setup () {Serial.begin (9600); pinMode (laps1ButtonPin, INPUT); pinMode (laps2ButtonPin, INPUT); pinMode (laps3ButtonPin, INPUT); pinMode (laps4ButtonPin, INPUT); pinMode (helisignaal, VÄLJUND); } // tsüklifunktsioon jookseb ikka ja jälle igavesti void loop () {// loe nupu olekut (sisse või välja) child1ButtonState = digitalRead (child1ButtonPin);

laps2ButtonState = digitalRead (child2ButtonPin);

laps3ButtonState = digitalRead (child3ButtonPin);

laps4ButtonState = digitalRead (child4ButtonPin);

if (laps1ButtonState! = child1PreviousState)

{if (child1ButtonState == HIGH) // Nuppu vajutatakse {child1Strike ++; Serial.println (String ("Lapsel 1 on:") + laps1Strike + "lööb");

kui (laps1 löök> = 3)

{Serial.println ("Laps 1 on maandatud!"); toon (sumin, 5000, 500); // Saadab 5 hertsise heli 5 millisekundi jooksul

}

viivitus (3000); }} if (child2ButtonState! = child2PreviousState) {if (child2ButtonState == HIGH) // Nuppu vajutatakse {child2Strike ++; Serial.println (String ("Lapsel 2 on:") + laps2Strike + "lööb");

kui (laps2Strike> = 3)

{Serial.println ("Laps 2 on maandatud!"); toon (sumin, 5000, 500); } viivitus (3000); }}

if (laps3ButtonState! = child3PreviousState)

{if (child3ButtonState == HIGH) // Nuppu vajutatakse {child3Strike ++; Serial.println (String ("Lapsel 3 on:") + child3Strike + "lööb");

kui (Child3Strike> = 3)

{Serial.println ("Laps 3 on maandatud!"); toon (sumin, 5000, 500); } viivitus (3000); }}

if (laps4ButtonState! = child4PreviousState)

{if (child4ButtonState == HIGH) // Nuppu vajutatakse {child4Strike ++; Serial.println (String ("Lapsel 4 on:") + child4Strike + "lööb");

kui (laps4Strike> = 3)

{Serial.println ("Laps 4 on maandatud!"); toon (sumin, 5000, 500); } viivitus (3000); }}}

Samm: lisage LCD -ekraan

Image
Image
Lisage LCD -ekraan
Lisage LCD -ekraan

Nüüd võimaldab LCD -ekraan selget ja lihtsat lugemist.

  1. Esiteks lisage oma leivalauale potentsiomeeter, et juhtida LCD -ekraani. Olge ettevaatlik, kuhu selle panite, sest tõenäoliselt on teil nüüd tühi ruum.
  2. Potentsiomeetri ühendamiseks toitekaabliga kasutage vasakut eesmist osa
  3. Potentsiomeetri maandamiseks kasutage parempoolset eesmist osa.
  4. Tagakülg ühendatakse LCD -ekraaniga.
  5. Lisage LCD -ekraan oma leivalauale
  6. Maandage esimene ekraani tihvt maandusrööpa külge
  7. Ühendage teine tihvt toitekaabliga.
  8. Kolmas LCD -tihvt läheb Arduino tihvti 8 juurde
  9. Neljas LCD -tihvt läheb Arduino tihvti 7 juurde
  10. Viies läheb Arduino tihvtile 6
  11. Kuues tihvt läheb Arduino viienda tihvti juurde
  12. LCD -ekraanil olevad tihvtid 7 kuni 10 on tühjad
  13. Nööpnõel 11 läheb Arduino tihvti 5 juurde
  14. Tihvt 12 läheb maandatud rööpa külge
  15. Tihvt 13 läheb Arduino nööpnõelale 4
  16. Tihvt 14 läheb potentsiomeetri tagaküljele
  17. Tihvt 15 läheb toiteplokile
  18. Tihvt 16 läheb maapinnale.

Nüüd peate LCD -ekraani kasutamiseks oma koodi värskendama. Selleks kasutate liberaalset vedelkristalli. Olge oma LCD -printimisavalduste suhtes ettevaatlik. Ärge unustage ekraani tühjendada, kui vajate uut sõnumit. Ärge unustage kursorit seadistada ka siis, kui soovite kasutada kahte rida.

#kaasake

LiquidCrystal LCD (3, 4, 5, 6, 7, 8); // LCD -ekraani seadistamine

int child1ButtonPin = 13; // See on tihvt, mille meie nupp on ühendatud int child2ButtonPin = 12; int laps3ButtonPin = 11; int laps4ButtonPin = 10; int laps1ButtonState = 0; // Loeb nupu olekut (sisse/välja) int child2ButtonState = 0; int laps3ButtonState = 0; int laps4ButtonState = 0; int laps1eelne riik = 0; // Eelmine nupu olek on vajutatud int child2PreviousState = 0; int laps3eelne riik = 0; int child4PreviousState = 0; int laps1Strike = 0; // Mitu streiki lapsel on int child2Strike = 0; int laps3Strike = 0; int laps4Strike = 0; const int helisignaal = 9; // helisignaal

// seadistusfunktsioon töötab üks kord, kui vajutate lähtestamise või plaadi toiteallikat

void setup () {Serial.begin (9600); lcd.algus (16, 2); lcd.print ("Laps"); lcd.setCursor (0, 1); lcd.print ("Käitumise muutja"); pinMode (laps1ButtonPin, INPUT); pinMode (laps2ButtonPin, INPUT); pinMode (laps3ButtonPin, INPUT); pinMode (laps4ButtonPin, INPUT); pinMode (helisignaal, VÄLJUND); } // tsüklifunktsioon jookseb ikka ja jälle igavesti void loop () {lcd.setCursor (0, 0); // loe nupu olekut (sisse või välja) child1ButtonState = digitalRead (child1ButtonPin);

laps2ButtonState = digitalRead (child2ButtonPin);

laps3ButtonState = digitalRead (child3ButtonPin);

laps4ButtonState = digitalRead (child4ButtonPin);

if (laps1ButtonState! = child1PreviousState)

{if (child1ButtonState == HIGH) // Nuppu vajutatakse {lcd.clear (); laps1Strike ++; Serial.println (String ("Lapsel 1 on:") + laps1Strike + "lööb"); lcd.print ("Lapsel 1 on:"); lcd.setCursor (0, 1); lcd.print (laps1Strike); lcd.print ("Lööb!");

kui (laps1 löök> = 3)

{Serial.println ("Laps 1 on maandatud!"); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("1. laps on"); lcd.setCursor (0, 1); lcd.print ("Maandatud!");

toon (sumin, 5000, 500); // Saadab 5 hertsise heli 5 millisekundi jooksul

}

viivitus (3000); }} if (laps2ButtonState! = child2PreviousState) {lcd.clear (); if (child2ButtonState == HIGH) // Nuppu vajutatakse {child2Strike ++; Serial.println (String ("Lapsel 2 on:") + laps2Strike + "lööb"); lcd.print ("Lapsel 2 on:"); lcd.setCursor (0, 1); lcd.print (laps2Strike); lcd.print ("Lööb!"); if (child2Strike> = 3) {Serial.println ("Laps 2 on maandatud!"); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Laps 2 on"); lcd.setCursor (0, 1); lcd.print ("Maandatud!"); toon (sumin, 5000, 500); } viivitus (3000); }}

if (laps3ButtonState! = child3PreviousState)

{lcd.clear (); if (child3ButtonState == HIGH) // Nuppu vajutatakse {child3Strike ++; Serial.println (String ("Lapsel 3 on:") + child3Strike + "lööb"); lcd.print ("Lapsel 3 on:"); lcd.setCursor (0, 1); lcd.print (laps3Strike); lcd.print ("Lööb!"); if (child3Strike> = 3) {Serial.println ("Laps 3 on maandatud!"); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Laps 3 on"); lcd.setCursor (0, 1); lcd.print ("Maandatud!"); toon (sumin, 5000, 500); } viivitus (3000); }}

if (laps4ButtonState! = child4PreviousState)

{lcd.clear (); if (child4ButtonState == HIGH) // Nuppu vajutatakse {child4Strike ++; Serial.println (String ("Lapsel 4 on:") + child4Strike + "lööb"); lcd.print ("Lapsel 4 on:"); lcd.setCursor (0, 1); lcd.print (laps4Strike); lcd.print ("Lööb!");

kui (laps4Strike> = 3)

{Serial.println ("Laps 4 on maandatud!"); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Laps 4 on"); lcd.setCursor (0, 1); lcd.print ("Maandatud!"); toon (sumin, 5000, 500); } viivitus (3000); }}} Ja ongi kõik, see on kõik, mida vajate oma lapse käitumismoodustaja loomiseks

Soovitan: