Sadržaj:
- Korak 1: Pokrenite jednostavno: Dodajte dugme
- Korak 2: Izmijenite kôd za registraciju pritiska tipki
- Korak 3: Dodajte onoliko dugmaca koliko imate djece
- Korak 4: Dodajte zujalicu
- Korak 5: Dodajte LCD ekran
Video: Modifikator ponašanja djeteta: 5 koraka (sa slikama)
2024 Autor: John Day | [email protected]. Zadnja izmjena: 2024-02-01 14:39
Modifikator ponašanja djeteta bilježi koliko je puta vaše dijete upalo u nevolje (poznate i kao štrajkovi), a kada navrše tri godine, oglašava se zvučni signal i LCD ekran objavljuje da je uzemljen.
Korak 1: Pokrenite jednostavno: Dodajte dugme
Prvi korak u ovom projektu je jednostavan. Dodaj 1 dugme. U ovom koraku su vam potrebne 4 žice muški - muški, 1 220 otpornika i dugme.
- Priključite 5V na strani napajanja u pozitivni red na matičnoj ploči
-
Spojite GND na negativnu stranu ploče
- Umetnite dugme na matičnu ploču
-
Priključite napajanje na pozitivni red u donji lijevi dio tipke
- Uzemljite dugme pomoću otpornika u donjem desnom dijelu dugmeta na negativni red ploče.
- Spojite #13 na digitalnoj strani Arduina na gornju desnu stranu gumba.
Svojim kodom potvrdite da se dugme registruje:
int child1ButtonPin = 13; // Ovo je pin na koji je naše dugme povezano
int child1ButtonState = 0; // Čita stanje dugmeta (uključeno/isključeno)
int child1Strike = 0; // Koliko štrajkova ima dijete
// funkcija postavljanja pokreće se jednom kada pritisnete reset ili uključite ploču
void setup () {Serial.begin (9600); pinMode (child1ButtonPin, INPUT); } // funkcija petlje radi uvijek iznova void loop () {// čita stanje dugmeta (uključeno ili isključeno) child1ButtonState = digitalRead (child1ButtonPin); if (child1ButtonState == HIGH) // Dugme je pritisnuto {Serial.println ("HIGH"); kašnjenje (5000); }
if (child1ButtonState == LOW)
{Serial.println ("LOW"); kašnjenje (5000); }}
Korak 2: Izmijenite kôd za registraciju pritiska tipki
Izmijenite kôd da biste registrirali dugme.
int child1ButtonPin = 13; // Ovo je pin na koji je naše dugme spojeno naint child1ButtonState = 0; // Čita stanje dugmeta (uključeno/isključeno) int child1PreviousState = 0; // Prethodno stanje dugmeta int child1Strike = 0;
// funkcija postavljanja pokreće se jednom kada pritisnete reset ili uključite ploču
void setup () {Serial.begin (9600); pinMode (child1ButtonPin, INPUT); } // funkcija petlje radi uvijek iznova void loop () {// čita stanje dugmeta (uključeno ili isključeno) child1ButtonState = digitalRead (child1ButtonPin); if (child1ButtonState! = child1PreviousState) {if (child1ButtonState == HIGH) // Dugme je pritisnuto {child1Strike ++; Serial.println (child1Strike); kašnjenje (1000); }}
}
Zatim izmijenite kôd tako da dijete dobije 3 opomene, nakon čega će dobiti poruku da je osnovano:
int child1ButtonPin = 13; // Ovo je pin na koji je naše dugme povezano zaint1 child1ButtonState = 0; // Čita stanje dugmeta (uključeno/isključeno) int child1PreviousState = 0; int child1Strike = 0;
// funkcija postavljanja pokreće se jednom kada pritisnete reset ili uključite ploču
void setup () {Serial.begin (9600); pinMode (child1ButtonPin, INPUT); } // funkcija petlje radi uvijek iznova void loop () {// čita stanje dugmeta (uključeno ili isključeno) child1ButtonState = digitalRead (child1ButtonPin); if (child1ButtonState! = child1PreviousState) {if (child1ButtonState == HIGH) // Dugme je pritisnuto {child1Strike ++; Serial.println (child1Strike);
if (child1Strike> = 3)
{Serial.println ("Dijete 1 je uzemljeno!"); } kašnjenje (3000); }}
}
Serijski monitor bi trebao izgledati kao na gornjoj slici.
Napomena: Pobrinite se da vam odgovara kašnjenje. Malo kašnjenje i registrirat će 1 pritisak na dugme kao više od jednog!
Korak 3: Dodajte onoliko dugmaca koliko imate djece
U ovom koraku jednostavno kopiramo posljednjih nekoliko koraka. Dodajte onoliko dugmića koliko i djece. U mom slučaju, dodajem četiri. Promijenite kôd digitalni pin na koji je dugme spojeno. U mom slučaju koristio sam pinove od 12 do 10 za dodavanje dugmadi. U slučaju da trebate podsjetiti, evo 1. koraka:
-
Priključite 5V na strani napajanja u pozitivni red na matičnoj ploči
- Spojite GND na negativnu stranu ploče
-
Umetnite tipku na ploču za napajanje. Spojite napajanje pozitivnog reda u donji lijevi dio tipke.
- Uzemljite dugme pomoću otpornika u donjem desnom dijelu dugmeta na negativni red ploče.
- Spojite (vaš pin broj) na digitalnoj strani Arduina na gornju desnu stranu gumba.
Također ćete morati izmijeniti kôd za rukovanje svim vašim gumbima. Imajte na umu da ako trebate paziti na žice koje ste koristili. Ne možete zajedno dodavati mala slova. Najbolje je deklarirati 1 kao objekt String.
int child1ButtonPin = 13; // Ovo je pin na koji je naše dugme povezano naint child2ButtonPin = 12; int child3ButtonPin = 11; int child4ButtonPin = 10; int child1ButtonState = 0; // Čita stanje dugmeta (uključeno/isključeno) 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;
// funkcija postavljanja pokreće se jednom kada pritisnete reset ili uključite ploču
void setup () {Serial.begin (9600); pinMode (child1ButtonPin, INPUT); pinMode (child2ButtonPin, INPUT); pinMode (child3ButtonPin, INPUT); pinMode (child4ButtonPin, INPUT); } // funkcija petlje radi uvijek iznova void loop () {// čita stanje dugmeta (uključeno ili isključeno) child1ButtonState = digitalRead (child1ButtonPin);
child2ButtonState = digitalRead (child2ButtonPin);
child3ButtonState = digitalRead (child3ButtonPin);
child4ButtonState = digitalRead (child4ButtonPin);
if (child1ButtonState! = child1PreviousState)
{if (child1ButtonState == HIGH) // Dugme je pritisnuto {child1Strike ++; Serial.println (String ("Dijete 1 ima:") + child1Strike + "štrajkovi");
if (child1Strike> = 3)
{Serial.println ("Dijete 1 je uzemljeno!"); } kašnjenje (3000); }} if (child2ButtonState! = child2PreviousState) {if (child2ButtonState == HIGH) // Dugme je pritisnuto {child2Strike ++; Serial.println (String ("Dijete 2 ima:") + child2Strike + "štrajkovi");
if (child2Strike> = 3)
{Serial.println ("Dijete 2 je uzemljeno!"); } kašnjenje (3000); }}
if (child3ButtonState! = child3PreviousState)
{if (child3ButtonState == HIGH) // Dugme je pritisnuto {child3Strike ++; Serial.println (String ("Dijete 3 ima:") + child3Strike + "štrajkovi");
if (child3Strike> = 3)
{Serial.println ("Dijete 3 je uzemljeno!"); } kašnjenje (3000); }}
if (child4ButtonState! = child4PreviousState)
{if (child4ButtonState == HIGH) // Dugme je pritisnuto {child4Strike ++; Serial.println (String ("Dijete 4 ima:") + child4Strike + "štrajkovi");
if (child4Strike> = 3)
{Serial.println ("Dijete 4 je uzemljeno!"); } kašnjenje (3000); }}}
Korak 4: Dodajte zujalicu
Hajde sada provjerite da li vaša djeca znaju da su utemeljena. Dodajmo zujalicu. Da biste povezali zujalicu, slijedite ove jednostavne korake.
- Dodajte zujalicu na svoju ploču, planirajte prostor jer se pojavljuje LCD ekran.
- Povežite Postive stranu (zujalica bi trebala imati + na pozitivnoj strani) na pin po vašem izboru. Uradio sam 9.
- Spojite drugu stranu na uzemljenu šinu vaše matične ploče.
Zatim izmijenite kôd da biste isključili zvučni signal kada dijete postane uzemljeno. Postoji nekoliko različitih načina kodiranja vašeg zujalice, ali meni se sviđa ton (ime zujalice, herc, trajanje) zbog njegove jednostavnosti. Primjer ovoga bi bio ton (zujalica, 4000, 300).
int child1ButtonPin = 13; // Ovo je pin na koji je naše dugme povezano uint2 child2ButtonPin = 12; int child3ButtonPin = 11; int child4ButtonPin = 10; int child1ButtonState = 0; // Čita stanje dugmeta (uključeno/isključeno) 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 zujalica = 2;
// funkcija postavljanja pokreće se jednom kada pritisnete reset ili uključite ploču
void setup () {Serial.begin (9600); pinMode (child1ButtonPin, INPUT); pinMode (child2ButtonPin, INPUT); pinMode (child3ButtonPin, INPUT); pinMode (child4ButtonPin, INPUT); pinMode (zujalica, OUTPUT); } // funkcija petlje radi uvijek iznova void loop () {// čita stanje dugmeta (uključeno ili isključeno) child1ButtonState = digitalRead (child1ButtonPin);
child2ButtonState = digitalRead (child2ButtonPin);
child3ButtonState = digitalRead (child3ButtonPin);
child4ButtonState = digitalRead (child4ButtonPin);
if (child1ButtonState! = child1PreviousState)
{if (child1ButtonState == HIGH) // Dugme je pritisnuto {child1Strike ++; Serial.println (String ("Dijete 1 ima:") + child1Strike + "štrajkovi");
if (child1Strike> = 3)
{Serial.println ("Dijete 1 je uzemljeno!"); ton (zujalica, 5000, 500); // Šalje zvuk od 5 herca 5 milisekundi
}
kašnjenje (3000); }} if (child2ButtonState! = child2PreviousState) {if (child2ButtonState == HIGH) // Dugme je pritisnuto {child2Strike ++; Serial.println (String ("Dijete 2 ima:") + child2Strike + "štrajkovi");
if (child2Strike> = 3)
{Serial.println ("Dijete 2 je uzemljeno!"); ton (zujalica, 5000, 500); } kašnjenje (3000); }}
if (child3ButtonState! = child3PreviousState)
{if (child3ButtonState == HIGH) // Dugme je pritisnuto {child3Strike ++; Serial.println (String ("Dijete 3 ima:") + child3Strike + "štrajkovi");
if (child3Strike> = 3)
{Serial.println ("Dijete 3 je uzemljeno!"); ton (zujalica, 5000, 500); } kašnjenje (3000); }}
if (child4ButtonState! = child4PreviousState)
{if (child4ButtonState == HIGH) // Dugme je pritisnuto {child4Strike ++; Serial.println (String ("Dijete 4 ima:") + child4Strike + "štrajkovi");
if (child4Strike> = 3)
{Serial.println ("Dijete 4 je uzemljeno!"); ton (zujalica, 5000, 500); } kašnjenje (3000); }}}
Korak 5: Dodajte LCD ekran
Sada omogućuje LCD ekran za jasno i jednostavno čitanje.
- Prvo dodajte potenciometar na svoju ploču za upravljanje LCD ekranom. Pazite gdje ste ga stavili jer vam je vjerojatno već ponestalo prostora.
- Upotrijebite prednju lijevu stranu za povezivanje potenciometra na razvodnik
- Upotrijebite prednju desnu stranu za uzemljenje potenciometra.
- Stražnja strana će biti povezana sa LCD ekranom.
- Dodajte LCD ekran na matičnu ploču
- Uzemljite prvu iglu ekrana na šinu za uzemljenje
- Priključite drugi pin na razvodnik.
- Treći LCD pin ide na Pin 8 na Arduinu
- Četvrti LCD pin ide na Pin 7 na Arduinu
- Peti ide na Pin 6 na Arduinu
- Šesti pin ide na pin 5 na Arduinu
- Igle 7 do 10 na LCD ekranu su prazne
- Pin 11 ide na Pin 5 na Arduinu
- Pin 12 ide do uzemljene šine
- Pin 13 ide na Pin 4 na Arduinu
- Pin 14 ide sa zadnje strane potenciometra
- Pin 15 ide na Power rail
- Pin 16 ide do uzemljenja.
Sada ćete morati ažurirati kôd za korištenje LCD ekrana. Za to ćete koristiti biblioteku tekućih kristala. Pazite na izjave o LCD štampanju. Ne zaboravite očistiti ekran kada vam je potrebna nova poruka. Također ne zaboravite postaviti kursor kada želite koristiti dvije linije.
#include
LiquidCrystal lcd (3, 4, 5, 6, 7, 8); // Postavlja LCD ekran
int child1ButtonPin = 13; // Ovo je pin na koji je naše dugme povezano sa int child2ButtonPin = 12; int child3ButtonPin = 11; int child4ButtonPin = 10; int child1ButtonState = 0; // Čita stanje dugmeta (uključeno/isključeno) int child2ButtonState = 0; int child3ButtonState = 0; int child4ButtonState = 0; int child1PreviousState = 0; // Prethodno stanje dugmeta pritisnuto int child2PreviousState = 0; int child3PreviousState = 0; int child4PreviousState = 0; int child1Strike = 0; // Koliko štrajkova dijete ima int child2Strike = 0; int child3Strike = 0; int child4Strike = 0; const int zujalica = 9; // zujalica
// funkcija postavljanja pokreće se jednom kada pritisnete reset ili uključite ploču
void setup () {Serial.begin (9600); lcd.begin (16, 2); lcd.print ("Dijete"); lcd.setCursor (0, 1); lcd.print ("Mijenjač ponašanja"); pinMode (child1ButtonPin, INPUT); pinMode (child2ButtonPin, INPUT); pinMode (child3ButtonPin, INPUT); pinMode (child4ButtonPin, INPUT); pinMode (zujalica, OUTPUT); } // funkcija petlje radi uvijek iznova void loop () {lcd.setCursor (0, 0); // čita stanje dugmeta (uključeno ili isključeno) child1ButtonState = digitalRead (child1ButtonPin);
child2ButtonState = digitalRead (child2ButtonPin);
child3ButtonState = digitalRead (child3ButtonPin);
child4ButtonState = digitalRead (child4ButtonPin);
if (child1ButtonState! = child1PreviousState)
{if (child1ButtonState == HIGH) // Dugme je pritisnuto {lcd.clear (); child1Strike ++; Serial.println (String ("Dijete 1 ima:") + child1Strike + "štrajkovi"); lcd.print ("Dijete 1 ima:"); lcd.setCursor (0, 1); lcd.print (child1Strike); lcd.print ("Strikes!");
if (child1Strike> = 3)
{Serial.println ("Dijete 1 je uzemljeno!"); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Dijete 1 je"); lcd.setCursor (0, 1); lcd.print ("Uzemljeno!");
ton (zujalica, 5000, 500); // Šalje zvuk od 5 herca 5 milisekundi
}
kašnjenje (3000); }} if (child2ButtonState! = child2PreviousState) {lcd.clear (); if (child2ButtonState == HIGH) // Dugme je pritisnuto {child2Strike ++; Serial.println (String ("Dijete 2 ima:") + child2Strike + "štrajkovi"); lcd.print ("Dijete 2 ima:"); lcd.setCursor (0, 1); lcd.print (child2Strike); lcd.print ("Strikes!"); if (child2Strike> = 3) {Serial.println ("Dijete 2 je uzemljeno!"); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Dijete 2 je"); lcd.setCursor (0, 1); lcd.print ("Uzemljeno!"); ton (zujalica, 5000, 500); } kašnjenje (3000); }}
if (child3ButtonState! = child3PreviousState)
{lcd.clear (); if (child3ButtonState == HIGH) // Dugme je pritisnuto {child3Strike ++; Serial.println (String ("Dijete 3 ima:") + child3Strike + "štrajkovi"); lcd.print ("Dijete 3 ima:"); lcd.setCursor (0, 1); lcd.print (child3Strike); lcd.print ("Strikes!"); if (child3Strike> = 3) {Serial.println ("Dijete 3 je uzemljeno!"); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Dijete 3 je"); lcd.setCursor (0, 1); lcd.print ("Uzemljeno!"); ton (zujalica, 5000, 500); } kašnjenje (3000); }}
if (child4ButtonState! = child4PreviousState)
{lcd.clear (); if (child4ButtonState == HIGH) // Dugme je pritisnuto {child4Strike ++; Serial.println (String ("Dijete 4 ima:") + child4Strike + "štrajkovi"); lcd.print ("Dijete 4 ima:"); lcd.setCursor (0, 1); lcd.print (child4Strike); lcd.print ("Strikes!");
if (child4Strike> = 3)
{Serial.println ("Dijete 4 je uzemljeno!"); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Dijete 4 je"); lcd.setCursor (0, 1); lcd.print ("Uzemljeno!"); ton (zujalica, 5000, 500); } kašnjenje (3000); }}} I to je to, to je sve što vam je potrebno za izgradnju vlastitog Modifera ponašanja djeteta
Preporučuje se:
Nema mokraće sada, uređaj za podešavanje ponašanja kućnih ljubimaca koji sprečava mačke da pišu u vašem domu: 4 koraka
Nema pišaka sada, uređaj za podešavanje ponašanja kućnih ljubimaca koji sprečava mačke da pišaju po vašem domu: toliko mi je smetala moja maca da voli pišati po mom krevetu, provjerio sam sve što joj je potrebno, a odveo sam je i veterinaru. Nakon što riješim sve što mogu misliti i poslušam doktorovu riječ, shvaćam da se samo ponaša loše. Tako da
Naizmjenično isključujući dihoptički modifikator stereoskopskog prijenosa 32 [STM32F103C8T6+STMAV340 VGA Superimposer]: 6 koraka
Naizmjenično isključujući dihoptički modifikator stereoskopskog prijenosa 32 [STM32F103C8T6+STMAV340 VGA Superimposer]: Već neko vrijeme radim na nasljedniku originalnog AODMoST -a. Novi uređaj koristi brži i bolji 32-bitni mikrokontroler i brži analogni video prekidač. Omogućava AODMoST -u 32 da radi s većim rezolucijama i implementira nove funkcionalne
Naizmjenično isključujući dihoptički modifikator stereoskopskog prijenosa [ATmega328P+HEF4053B VGA Superimposer]: 7 koraka
Naizmjenično zaklanjajući dihoptički modifikator stereoskopskog prijenosa [ATmega328P+HEF4053B VGA Superimposer]: Nakon mojih eksperimenata s naočarima od tekućih kristala koji su koristili za zaklanjanje očiju (tu i tamo), odlučio sam izgraditi nešto malo sofisticiranije i također ne tjera korisnika da nosite PCB na svom čelu (ljudi se ponekad mogu ponašati
Uradi sam-Recikliranje podnog ventilatora u fotografsko svjetlo Modifikator/višenamjenska lampa: 11 koraka
Uradi sam-Recikliranje podnog ventilatora u fotografsko svjetlo s modifikatorom svjetla/višenamjenska svjetiljka: Nedavno sam bio na proljetnom čišćenju i naišao sam na podni ventilator kojem je izgorio motor. Trebala mi je stona lampa. 2+2 i ja smo malo razmišljali i došli na ideju da ventilator pretvorimo u 20 -inčni svjetlosni modifikator. Čitajte dalje s
Kako učiniti da se vile pojave na rođendanu vašeg djeteta!: 4 koraka
Kako učiniti da se vile pojavljuju na rođendanu vašeg djeteta !: Moja kćerka koja je uskoro imala 8 godina željela je rođendan sa vilom pa sam odlučila da ga učinim posebnim. Stvorio sam vrlo jednostavan efekat koji je natjerao sve posjetitelje zabave da pomisle da se prave vile pojavljuju samo za njih