Sisukord:
- Samm: alustage lihtsalt: lisage nupp
- 2. samm: muutke koodi registreerimisnuppudeks
- Samm: lisage nii palju nuppe kui teil on lapsi
- Samm 4: lisage summer
- Samm: lisage LCD -ekraan
Video: Lapse käitumise muutja: 5 sammu (piltidega)
2024 Autor: John Day | [email protected]. Viimati modifitseeritud: 2024-02-01 14:40
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
Selle projekti esimene samm on lihtne. Lisage 1 nupp. Selles etapis vajate 4 meessoost meessoost traati, 1 220 resisitori ja vajutusnuppu.
- Ühendage toitepoolne 5 V leivaplaadi positiivse reaga
- Ühendage GND leivaplaadi negatiivse poolega
- Sisestage nupp leivaplaadile
-
Ühendage postitusrea toide nupu vasakpoolsesse alumisse ossa
- Maandage nupp, kasutades takistit surunupu paremas alanurgas leivaplaadi negatiivse rea külge.
- Ü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
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
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:
-
Ühendage toitepoolne 5 V leivaplaadi positiivse reaga
- Ühendage GND leivaplaadi negatiivse poolega
- Sisestage surunupp leivaplaadile
- Maandage nupp, kasutades takistit surunupu paremas alanurgas leivaplaadi negatiivse rea külge.
- Ü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
Nüüd veenduge, et teie lapsed teaksid, et nad on maandatud. Lisame helisignaali. Summuri ühendamiseks toimige järgmiselt.
- Lisage oma leivalauale sumin, planeerige ruumi, kuna ilmub LCD -ekraan.
- Ühendage postitatav pool (summeril peaks postituse poolel olema +) teie valitud tihvtiga. Tegin 9.
- Ü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
Nüüd võimaldab LCD -ekraan selget ja lihtsat lugemist.
- 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.
- Potentsiomeetri ühendamiseks toitekaabliga kasutage vasakut eesmist osa
- Potentsiomeetri maandamiseks kasutage parempoolset eesmist osa.
- Tagakülg ühendatakse LCD -ekraaniga.
- Lisage LCD -ekraan oma leivalauale
- Maandage esimene ekraani tihvt maandusrööpa külge
- Ühendage teine tihvt toitekaabliga.
- Kolmas LCD -tihvt läheb Arduino tihvti 8 juurde
- Neljas LCD -tihvt läheb Arduino tihvti 7 juurde
- Viies läheb Arduino tihvtile 6
- Kuues tihvt läheb Arduino viienda tihvti juurde
- LCD -ekraanil olevad tihvtid 7 kuni 10 on tühjad
- Nööpnõel 11 läheb Arduino tihvti 5 juurde
- Tihvt 12 läheb maandatud rööpa külge
- Tihvt 13 läheb Arduino nööpnõelale 4
- Tihvt 14 läheb potentsiomeetri tagaküljele
- Tihvt 15 läheb toiteplokile
- 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:
Ärge pissige kohe, lemmikloomade käitumise reguleerimise seade, mis peatab kasside pissimise teie kodus: 4 sammu
Ei pissi, lemmikloomade käitumise reguleerimise seade, mis ei lase kassidel teie kodus pissida: mind häiris mu kiisu nii palju, et talle meeldib mu voodile pissida, kontrollisin kõike, mida ta vajab, ja viisin ta ka loomaarsti juurde. Kui olen veaotsingu teinud ja arsti sõna kuulanud, saan aru, et tal on lihtsalt halb käitumine. Nii et
Päästa mu laps: nutikas iste, mis saadab tekstisõnumeid, kui unustate lapse autosse: 8 sammu
Päästa mu laps: nutikas iste, mis saadab tekstisõnumeid, kui unustate lapse autosse: see on paigaldatud autodesse ja tänu lasteistmele asetatud detektorile hoiatab see meid SMS -i või telefonikõne kaudu, kui saame ära, last kaasa võtmata
Lapse Controller Mini (LCMini): 7 sammu (piltidega)
Lapse Controller Mini (LCMini): see väike asi on tasuta avatud lähtekoodiga DIY intervallikeskus timelapse -pildistamiseks, mis põhineb Teensy 3.2 plaadil. See kontroller on täielikult töökorras ja aeg -ajalt lisatakse uusi funktsioone. Samuti saate koodi alla laadida
Time Lapse Dolly: 3 sammu (koos piltidega)
Time Lapse Dolly: Kui olete alati unistanud oma liikumistega aegunud videote tegemisest, kuid puudusid lõputud vahendid ajavahemiku ostmiseks ja polnud elektroonika või programmeerimisega suurepärased, siis on see teie jaoks juhendatav. Minu eesmärk selle ja kõigi minu juhenditega
Kitarrivõimendi suuna muutja: 5 sammu
Kitarrivõimendi suuna muutja: taust: See juhend on "Mitchelli sõõrik" otsene rakendamine. kitarrikõlarite suunamise modifikaator, mille pakkus välja Jay Mitchell The Gear Page arutelufoorumist. Kõige asjakohasema arutelu leiate kõlarist