Cuprins:

Modificator de comportament al copilului: 5 pași (cu imagini)
Modificator de comportament al copilului: 5 pași (cu imagini)

Video: Modificator de comportament al copilului: 5 pași (cu imagini)

Video: Modificator de comportament al copilului: 5 pași (cu imagini)
Video: Cele Mai Bune POVESTI De GROAZA Din Luna MAI 2024, Noiembrie
Anonim
Modificator de comportament pentru copii
Modificator de comportament pentru copii

Modificatorul comportamentului copilului înregistrează de câte ori copilul dumneavoastră a intrat în probleme (aka Strikes) și când ajung la trei, un buzzer se stinge și un ecran LCD anunță că sunt împământate.

Pasul 1: Începeți simplu: adăugați un buton

Începeți simplu: adăugați un buton
Începeți simplu: adăugați un buton

Primul pas în acest proiect este simplu. Adăugați 1 buton. În acest pas aveți nevoie de 4 fire de la Tată la Tată, 1 220 Resisitor și un buton.

  1. Conectați 5V pe partea de alimentare la rândul pozitiv de pe panou
  2. Conectați GND la partea negativă a panoului

  3. Introduceți butonul pe tablă
  4. Conectați alimentarea de pe rândul postiv la partea din stânga jos a butonului

  5. Împământați butonul folosind un rezistor în partea dreaptă jos a butonului, pe rândul negativ al panoului.
  6. Conectați numărul 13 pe partea digitală a Arduino în partea dreaptă sus a butonului.

Verificați cu codul dvs. că butonul se înregistrează:

int child1ButtonPin = 13; // Acesta este pinul la care este conectat butonul nostru

int child1ButtonState = 0; // Citeste starea butonului (on / off)

int child1Strike = 0; // Câte lovituri are copilul

// funcția de configurare se execută o dată când apăsați reset sau alimentați placa

void setup () {Serial.begin (9600); pinMode (child1ButtonPin, INPUT); } // funcția buclă rulează iar și iar pentru totdeauna void loop () {// citiți starea butonului (pornit sau oprit) child1ButtonState = digitalRead (child1ButtonPin); if (child1ButtonState == HIGH) // Butonul este apăsat {Serial.println ("HIGH"); întârziere (5000); }

if (child1ButtonState == LOW)

{Serial.println ("LOW"); întârziere (5000); }}

Pasul 2: Modificați codul pentru a înregistra apăsările pe butoane

Modificați codul pentru a apăsa butoanele de înregistrare
Modificați codul pentru a apăsa butoanele de înregistrare
Modificați codul pentru a apăsa butoanele de înregistrare
Modificați codul pentru a apăsa butoanele de înregistrare

Modificați codul pentru a înregistra un buton apăsați:

int child1ButtonPin = 13; // Acesta este pinul pe care butonul nostru este conectat la child1ButtonState = 0; // Citește starea butonului (on / off) int child1PreviousState = 0; // Starea butonului anterior int child1Strike = 0;

// funcția de configurare se execută o dată când apăsați reset sau alimentați placa

void setup () {Serial.begin (9600); pinMode (child1ButtonPin, INPUT); } // funcția buclă rulează iar și iar pentru totdeauna void loop () {// citiți starea butonului (pornit sau oprit) child1ButtonState = digitalRead (child1ButtonPin); if (child1ButtonState! = child1PreviousState) {if (child1ButtonState == HIGH) // Butonul este apăsat {child1Strike ++; Serial.println (child1Strike); întârziere (1000); }}

}

Apoi Modificați codul astfel încât copilul să primească 3 greve după care va primi un mesaj că este împământat:

int child1ButtonPin = 13; // Acesta este pinul pe care butonul nostru este conectat la child1ButtonState = 0; // Citește starea butonului (on / off) int child1PreviousState = 0; int child1Strike = 0;

// funcția de configurare se execută o dată când apăsați reset sau alimentați placa

void setup () {Serial.begin (9600); pinMode (child1ButtonPin, INPUT); } // funcția buclă rulează iar și iar pentru totdeauna void loop () {// citiți starea butonului (pornit sau oprit) child1ButtonState = digitalRead (child1ButtonPin); if (child1ButtonState! = child1PreviousState) {if (child1ButtonState == HIGH) // Butonul este apăsat {child1Strike ++; Serial.println (child1Strike);

if (child1Strike> = 3)

{Serial.println („Copilul 1 este întemeiat!”); } întârziere (3000); }}

}

Serial Moniter ar trebui să arate ca imaginea de mai sus.

Notă: Asigurați-vă că sunteți confortabil cu întârzierea. Într-o mică întârziere și va înregistra 1 buton apăsat ca mai mult decât unul!

Pasul 3: Adăugați câte butoane aveți copii

Adăugați câte butoane aveți copii
Adăugați câte butoane aveți copii
Adăugați câte butoane aveți copii
Adăugați câte butoane aveți copii

În acest pas, copiem pur și simplu ultimii pași. Adăugați la fel de multe butoane ca și copii. În cazul meu, adaug patru. Asigurați-vă că modificați codul PIN digital la care este conectat butonul. În cazul meu, am folosit pinii 12 până la 10 pentru a adăuga butoanele mele. În cazul în care trebuie să reamintim, iată pasul 1:

  1. Conectați 5V pe partea de alimentare la rândul pozitiv de pe panou
  2. Conectați GND la partea negativă a panoului

  3. Introduceți butonul pe panoul de conectare Conectați alimentarea de pe rândul pozitiv la partea din stânga jos a butonului
  4. Împământați butonul folosind un rezistor în partea dreaptă jos a butonului pe rândul negativ al panoului.

  5. Conectați-vă (numărul PIN) de pe partea digitală a Arduino la partea din dreapta sus a butonului.

De asemenea, va trebui să modificați codul pentru a gestiona toate butoanele. Rețineți că, dacă trebuie să fiți atenți la șirurile pe care le-ați folosit. Nu puteți adăuga la minuscule împreună. Este bine să declarați 1 ca obiect String.

int child1ButtonPin = 13; // Acesta este pinul pe care butonul nostru este conectat la child2ButtonPin = 12; int child3ButtonPin = 11; int child4ButtonPin = 10; int child1ButtonState = 0; // Citeste starea butonului (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;

// funcția de configurare se execută o dată când apăsați reset sau alimentați placa

void setup () {Serial.begin (9600); pinMode (child1ButtonPin, INPUT); pinMode (child2ButtonPin, INPUT); pinMode (child3ButtonPin, INPUT); pinMode (child4ButtonPin, INPUT); } // funcția buclă rulează iar și iar pentru totdeauna void loop () {// citiți starea butonului (pornit sau oprit) child1ButtonState = digitalRead (child1ButtonPin);

child2ButtonState = digitalRead (child2ButtonPin);

child3ButtonState = digitalRead (child3ButtonPin);

child4ButtonState = digitalRead (child4ButtonPin);

if (child1ButtonState! = child1PreviousState)

{if (child1ButtonState == HIGH) // Butonul este apăsat {child1Strike ++; Serial.println (String ("Copilul 1 are:") + child1Strike + "strike");

if (child1Strike> = 3)

{Serial.println („Copilul 1 este întemeiat!”); } întârziere (3000); }} if (child2ButtonState! = child2PreviousState) {if (child2ButtonState == HIGH) // Butonul este apăsat {child2Strike ++; Serial.println (String ("Copilul 2 are:") + child2Strike + "strike");

if (child2Strike> = 3)

{Serial.println („Copilul 2 este întemeiat!”); } întârziere (3000); }}

if (child3ButtonState! = child3PreviousState)

{if (child3ButtonState == HIGH) // Butonul este apăsat {child3Strike ++; Serial.println (String ("Copilul 3 are:") + child3Strike + "strike");

if (child3Strike> = 3)

{Serial.println („Copilul 3 este întemeiat!”); } întârziere (3000); }}

if (child4ButtonState! = child4PreviousState)

{if (child4ButtonState == HIGH) // Butonul este apăsat {child4Strike ++; Serial.println (String ("Copilul 4 are:") + child4Strike + "strike");

if (child4Strike> = 3)

{Serial.println („Copilul 4 este întemeiat!”); } întârziere (3000); }}}

Pasul 4: adăugați un buzzer

Adăugați un buzzer
Adăugați un buzzer
Adăugați un buzzer
Adăugați un buzzer

Acum, asigurați-vă că copiii dvs. știu că sunt întemeiați. Să adăugăm un buzzer. Pentru a conecta buzzerul, urmați acești pași simpli.

  1. Adăugați un buzzer la panoul dvs. de calcul, planificați spațiul, deoarece apare un ecran LCD.
  2. Conectați partea postivă (buzzerul ar trebui să aibă un + pe partea pozitivă) la pinul la alegere. Am făcut 9.
  3. Conectați cealaltă parte la șina împământată a panoului dvs.

Apoi, modificați codul pentru a dezactiva soneria atunci când un copil devine împământat. Există câteva modalități diferite de a codifica buzzer-ul dvs., dar îmi place tonul (buzzerName, hertz, durata) pentru simplitatea sa, deci un exemplu în acest sens ar fi tonul (buzzer, 4000, 300).

int child1ButtonPin = 13; // Acesta este pinul pe care butonul nostru este conectat la child2ButtonPin = 12; int child3ButtonPin = 11; int child4ButtonPin = 10; int child1ButtonState = 0; // Citeste starea butonului (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 buzzer = 2;

// funcția de configurare se execută o dată când apăsați reset sau alimentați placa

void setup () {Serial.begin (9600); pinMode (child1ButtonPin, INPUT); pinMode (child2ButtonPin, INPUT); pinMode (child3ButtonPin, INPUT); pinMode (child4ButtonPin, INPUT); pinMode (buzzer, OUTPUT); } // funcția buclă rulează iar și iar pentru totdeauna void loop () {// citiți starea butonului (pornit sau oprit) child1ButtonState = digitalRead (child1ButtonPin);

child2ButtonState = digitalRead (child2ButtonPin);

child3ButtonState = digitalRead (child3ButtonPin);

child4ButtonState = digitalRead (child4ButtonPin);

if (child1ButtonState! = child1PreviousState)

{if (child1ButtonState == HIGH) // Butonul este apăsat {child1Strike ++; Serial.println (String ("Copilul 1 are:") + child1Strike + "strike");

if (child1Strike> = 3)

{Serial.println („Copilul 1 este întemeiat!”); ton (buzzer, 5000, 500); // Trimite un sunet de 5 hertz timp de 5 milisecunde

}

întârziere (3000); }} if (child2ButtonState! = child2PreviousState) {if (child2ButtonState == HIGH) // Butonul este apăsat {child2Strike ++; Serial.println (String ("Copilul 2 are:") + child2Strike + "strike");

if (child2Strike> = 3)

{Serial.println („Copilul 2 este întemeiat!”); ton (buzzer, 5000, 500); } întârziere (3000); }}

if (child3ButtonState! = child3PreviousState)

{if (child3ButtonState == HIGH) // Butonul este apăsat {child3Strike ++; Serial.println (String ("Copilul 3 are:") + child3Strike + "strike");

if (child3Strike> = 3)

{Serial.println („Copilul 3 este întemeiat!”); ton (buzzer, 5000, 500); } întârziere (3000); }}

if (child4ButtonState! = child4PreviousState)

{if (child4ButtonState == HIGH) // Butonul este apăsat {child4Strike ++; Serial.println (String ("Copilul 4 are:") + child4Strike + "strike");

if (child4Strike> = 3)

{Serial.println („Copilul 4 este întemeiat!”); ton (buzzer, 5000, 500); } întârziere (3000); }}}

Pasul 5: Adăugați un ecran LCD

Image
Image
Adăugați un ecran LCD
Adăugați un ecran LCD

Acum permite un ecran LCD pentru o citire clară și ușoară.

  1. Mai întâi, adăugați un potențiometru pe placa dvs. pentru a controla ecranul LCD. Aveți grijă unde l-ați pus, deoarece probabil că ați rămas fără spațiu până acum.
  2. Utilizați partea din stânga frontală pentru a conecta potențiometrul la șina de alimentare
  3. Folosiți dreapta din față pentru a vă masa potențiometrul.
  4. Partea din spate va fi conectată la ecranul LCD.
  5. Adăugați ecranul LCD la panoul dvs. de verificare
  6. Împământați primul știft de ecran pe șina de împământare
  7. Conectați al doilea pin la șina de alimentare.
  8. Al treilea pin LCD merge la Pinul 8 de pe Arduino
  9. Al patrulea pin LCD merge la Pinul 7 de pe Arduino
  10. Al cincilea merge la Pinul 6 de pe Arduino
  11. Al șaselea Pin merge la pinul 5 de pe Arduino
  12. Pinii de la 7 la 10 de pe ecranul LCD sunt goi
  13. Pinul 11 merge la Pinul 5 de pe Arduino
  14. Pinul 12 merge la șina împământată
  15. Pinul 13 merge la Pinul 4 de pe Arduino
  16. Pinul 14 merge în spatele potențiometrului
  17. Pinul 15 merge la șina de alimentare
  18. Pinul 16 merge la șina de la sol.

Acum va trebui să vă actualizați codul pentru a utiliza ecranul LCD. Pentru aceasta, veți folosi cristalul lichid. Aveți grijă la declarațiile dvs. de imprimare LCD. Nu uitați să ștergeți ecranul atunci când aveți nevoie de un mesaj nou. De asemenea, nu uitați să setați cursorul atunci când doriți să utilizați două linii.

#include

LiquidCrystal lcd (3, 4, 5, 6, 7, 8); // Setează ecranul LCD

int child1ButtonPin = 13; // Acesta este pinul pe care butonul nostru este conectat la int child2ButtonPin = 12; int child3ButtonPin = 11; int child4ButtonPin = 10; int child1ButtonState = 0; // Citeste starea butonului (on / off) int child2ButtonState = 0; int child3ButtonState = 0; int child4ButtonState = 0; int child1PreviousState = 0; // Starea anterioară a butonului apăsat în child2PreviousState = 0; int child3PreviousState = 0; int child4PreviousState = 0; int child1Strike = 0; // Câte greve are un copil int child2Strike = 0; int child3Strike = 0; int child4Strike = 0; const int buzzer = 9; // Buzzer-ul

// funcția de configurare se execută o dată când apăsați reset sau alimentați placa

void setup () {Serial.begin (9600); lcd.inceput (16, 2); lcd.print („Copilul”); lcd.setCursor (0, 1); lcd.print ("Comportament Modifer"); pinMode (child1ButtonPin, INPUT); pinMode (child2ButtonPin, INPUT); pinMode (child3ButtonPin, INPUT); pinMode (child4ButtonPin, INPUT); pinMode (buzzer, OUTPUT); } // funcția buclă rulează iar și iar pentru totdeauna void loop () {lcd.setCursor (0, 0); // citiți starea butonului (pornit sau oprit) child1ButtonState = digitalRead (child1ButtonPin);

child2ButtonState = digitalRead (child2ButtonPin);

child3ButtonState = digitalRead (child3ButtonPin);

child4ButtonState = digitalRead (child4ButtonPin);

if (child1ButtonState! = child1PreviousState)

{if (child1ButtonState == HIGH) // Butonul este apăsat {lcd.clear (); child1Strike ++; Serial.println (String ("Copilul 1 are:") + child1Strike + "strike"); lcd.print („Copilul 1 are:”); lcd.setCursor (0, 1); lcd.print (child1Strike); lcd.print („Greve!”);

if (child1Strike> = 3)

{Serial.println („Copilul 1 este întemeiat!”); lcd.clear (); lcd.setCursor (0, 0); lcd.print („Copilul 1 este”); lcd.setCursor (0, 1); lcd.print („Împământat!”);

ton (buzzer, 5000, 500); // Trimite un sunet de 5 hertz timp de 5 milisecunde

}

întârziere (3000); }} if (child2ButtonState! = child2PreviousState) {lcd.clear (); if (child2ButtonState == HIGH) // Butonul este apăsat {child2Strike ++; Serial.println (String ("Copilul 2 are:") + child2Strike + "strike"); lcd.print ("Copilul 2 are:"); lcd.setCursor (0, 1); lcd.print (child2Strike); lcd.print („Greve!”); if (child2Strike> = 3) {Serial.println ("Child 2 Is Grounded!"); lcd.clear (); lcd.setCursor (0, 0); lcd.print („Copilul 2 este”); lcd.setCursor (0, 1); lcd.print („Împământat!”); ton (buzzer, 5000, 500); } întârziere (3000); }}

if (child3ButtonState! = child3PreviousState)

{lcd.clear (); if (child3ButtonState == HIGH) // Butonul este apăsat {child3Strike ++; Serial.println (String ("Copilul 3 are:") + child3Strike + "strike"); lcd.print ("Copilul 3 are:"); lcd.setCursor (0, 1); lcd.print (child3Strike); lcd.print („Greve!”); if (child3Strike> = 3) {Serial.println ("Child 3 Is Grounded!"); lcd.clear (); lcd.setCursor (0, 0); lcd.print („Copilul 3 este”); lcd.setCursor (0, 1); lcd.print („Împământat!”); ton (buzzer, 5000, 500); } întârziere (3000); }}

if (child4ButtonState! = child4PreviousState)

{lcd.clear (); if (child4ButtonState == HIGH) // Butonul este apăsat {child4Strike ++; Serial.println (String ("Copilul 4 are:") + child4Strike + "strike"); lcd.print ("Copilul 4 are:"); lcd.setCursor (0, 1); lcd.print (child4Strike); lcd.print („Greve!”);

if (child4Strike> = 3)

{Serial.println („Copilul 4 este întemeiat!”); lcd.clear (); lcd.setCursor (0, 0); lcd.print („Copilul 4 este”); lcd.setCursor (0, 1); lcd.print („Împământat!”); ton (buzzer, 5000, 500); } întârziere (3000); }}} Și asta este, asta este tot ce aveți nevoie pentru a vă construi propriul Modifer de comportament pentru copii

Recomandat: