Съдържание:

Модификатор на поведението на детето: 5 стъпки (със снимки)
Модификатор на поведението на детето: 5 стъпки (със снимки)

Видео: Модификатор на поведението на детето: 5 стъпки (със снимки)

Видео: Модификатор на поведението на детето: 5 стъпки (със снимки)
Видео: Как Да Намериш Смисъла На Живота Си - 5 Стъпки за Намирането На Твоето Скрито Призвание 2024, Ноември
Anonim
Модификатор на поведението на детето
Модификатор на поведението на детето

Модификаторът на поведението на детето записва колко пъти детето ви е имало проблеми (известен още като Удари) и когато достигнат три, звуков сигнал излиза и LCD екран съобщава, че те са заземени.

Стъпка 1: Започнете просто: Добавете бутон

Започнете просто: Добавете бутон
Започнете просто: Добавете бутон

Първата стъпка в този проект е проста. Добавете 1 бутон. В тази стъпка се нуждаете от 4 проводника мъжки към мъжки, 1 220 резистор и бутон за натискане.

  1. Свържете 5V от страна на захранването към положителния ред на макета
  2. Свържете GND към отрицателната страна на макета

  3. Поставете бутона върху макета
  4. Свържете захранването на положителния ред към долната лява част на бутона

  5. Заземете бутона, като използвате резистор в долната дясна част на бутона към отрицателния ред на макета.
  6. Свържете #13 от цифровата страна на Arduino към горната дясна страна на бутона.

Проверете с кода си, че бутонът се регистрира:

int child1ButtonPin = 13; // Това е щифтът, към който е свързан нашия бутон

int child1ButtonState = 0; // Чете състоянието на бутона (включено/изключено)

int child1Strike = 0; // Колко удара има детето

// функцията за настройка се изпълнява веднъж, когато натиснете нулиране или включите платката

void setup () {Serial.begin (9600); pinMode (child1ButtonPin, INPUT); } // цикълната функция работи отново и отново завинаги void loop () {// чете състоянието на бутона (включено или изключено) child1ButtonState = digitalRead (child1ButtonPin); if (child1ButtonState == HIGH) // Бутонът е натиснат {Serial.println ("HIGH"); забавяне (5000); }

if (child1ButtonState == LOW)

{Serial.println ("LOW"); забавяне (5000); }}

Стъпка 2: Променете кода, за да регистрирате натискането на бутони

Променете кода, за да регистрирате натискането на бутони
Променете кода, за да регистрирате натискането на бутони
Променете кода, за да регистрирате натискането на бутони
Променете кода, за да регистрирате натискането на бутони

Променете кода, за да регистрирате натискане на бутон:

int child1ButtonPin = 13; // Това е щифтът, който нашият бутон е свързан toint child1ButtonState = 0; // Чете състоянието на бутона (включване/изключване) int child1PreviousState = 0; // Предишно състояние на бутона int child1Strike = 0;

// функцията за настройка се изпълнява веднъж, когато натиснете нулиране или включите платката

void setup () {Serial.begin (9600); pinMode (child1ButtonPin, INPUT); } // цикълната функция работи отново и отново завинаги void loop () {// чете състоянието на бутона (включено или изключено) child1ButtonState = digitalRead (child1ButtonPin); if (child1ButtonState! = child1PreviousState) {if (child1ButtonState == HIGH) // Бутонът е натиснат {child1Strike ++; Serial.println (child1Strike); забавяне (1000); }}

}

След това променете кода, така че детето да получи 3 предупреждения, след което ще получи съобщение, че е основателно:

int child1ButtonPin = 13; // Това е щифтът, който нашият бутон е свързан toint child1ButtonState = 0; // Чете състоянието на бутона (включване/изключване) int child1PreviousState = 0; int child1Strike = 0;

// функцията за настройка се изпълнява веднъж, когато натиснете нулиране или включите платката

void setup () {Serial.begin (9600); pinMode (child1ButtonPin, INPUT); } // цикълната функция работи отново и отново завинаги void loop () {// чете състоянието на бутона (включено или изключено) child1ButtonState = digitalRead (child1ButtonPin); if (child1ButtonState! = child1PreviousState) {if (child1ButtonState == HIGH) // Бутонът е натиснат {child1Strike ++; Serial.println (child1Strike);

ако (child1Strike> = 3)

{Serial.println ("Дете 1 е заземено!"); } забавяне (3000); }}

}

Серийният монитор трябва да изглежда като изображението по -горе.

Забележка: Уверете се, че сте доволни от забавянето. До малко забавяне и той ще регистрира 1 натискане на бутон като повече от един!

Стъпка 3: Добавете толкова бутони, колкото имате деца

Добавете толкова бутони, колкото имате деца
Добавете толкова бутони, колкото имате деца
Добавете толкова бутони, колкото имате деца
Добавете толкова бутони, колкото имате деца

В тази стъпка просто копираме последните няколко стъпки. Добавете толкова бутони, колкото правите деца. В моя случай добавям четири. Не забравяйте да промените кода си на цифровия щифт, към който е свързан бутонът. В моя случай използвах щифтове 12 до 10, за да добавя бутоните си. В случай, че имате нужда от напомняне, ето стъпка 1:

  1. Свържете 5V от страна на захранването към положителния ред на макета
  2. Свържете GND към отрицателната страна на макета

  3. Поставете бутона за натискане върху платката Свържете захранването на положителния ред към долната лява част на бутона
  4. Заземете бутона, като използвате резистор в долната дясна част на натискащия бутон към отрицателния ред на макета.

  5. Свържете (вашият пинов номер) от цифровата страна на Arduino към горната дясна страна на бутона.

Също така ще трябва да промените кода, за да обработвате всичките си бутони. Моля, имайте предвид, че ако трябва да внимавате за низовете, които сте използвали. Не можете да добавяте заедно с малки букви. Най -добре е да декларирате 1 като String обект.

int child1ButtonPin = 13; // Това е щифтът, който нашият бутон е свързан с toint child2ButtonPin = 12; int child3ButtonPin = 11; int child4ButtonPin = 10; int child1ButtonState = 0; // Чете състоянието на бутона (включено/изключено) 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;

// функцията за настройка се изпълнява веднъж, когато натиснете нулиране или включите платката

void setup () {Serial.begin (9600); pinMode (child1ButtonPin, INPUT); pinMode (child2ButtonPin, INPUT); pinMode (child3ButtonPin, INPUT); pinMode (child4ButtonPin, INPUT); } // цикълната функция работи отново и отново завинаги void loop () {// чете състоянието на бутона (включено или изключено) child1ButtonState = digitalRead (child1ButtonPin);

child2ButtonState = digitalRead (child2ButtonPin);

child3ButtonState = digitalRead (child3ButtonPin);

child4ButtonState = digitalRead (child4ButtonPin);

if (child1ButtonState! = child1PreviousState)

{if (child1ButtonState == HIGH) // Бутонът е натиснат {child1Strike ++; Serial.println (String ("Child 1 Has:") + child1Strike + "strikes");

ако (child1Strike> = 3)

{Serial.println ("Дете 1 е заземено!"); } забавяне (3000); }} if (child2ButtonState! = child2PreviousState) {if (child2ButtonState == HIGH) // Бутонът е натиснат {child2Strike ++; Serial.println (String ("Child 2 has:") + child2Strike + "strikes");

ако (child2Strike> = 3)

{Serial.println ("Дете 2 е заземено!"); } забавяне (3000); }}

if (child3ButtonState! = child3PreviousState)

{if (child3ButtonState == HIGH) // Бутонът е натиснат {child3Strike ++; Serial.println (String ("Child 3 has:") + child3Strike + "strikes");

ако (child3Strike> = 3)

{Serial.println ("Дете 3 е заземено!"); } забавяне (3000); }}

if (child4ButtonState! = child4PreviousState)

{if (child4ButtonState == HIGH) // Бутонът е натиснат {child4Strike ++; Serial.println (String ("Child 4 has:") + child4Strike + "strikes");

ако (child4Strike> = 3)

{Serial.println ("Дете 4 е заземено!"); } забавяне (3000); }}}

Стъпка 4: Добавете зумер

Добавете зумер
Добавете зумер
Добавете зумер
Добавете зумер

Сега нека се уверим, че децата ви знаят, че са заземени. Нека добавим зумер. За да свържете зумера, следвайте тези лесни стъпки.

  1. Добавете зумер към чертежа си, планирайте място, тъй като предстои LCD екран.
  2. Свържете позитивната страна (зумерът трябва да има + от положителната страна) към щифта по ваш избор. Направих 9.
  3. Свържете другата страна към заземената шина на вашата дъска.

След това променете кода си, за да изключите зумера, когато дете се заземи. Има няколко различни начина за кодиране на вашия зумер, но аз харесвам тон (buzzerName, херц, продължителност) за неговата простота. Така че пример за това би бил тон (зумер, 4000, 300).

int child1ButtonPin = 13; // Това е щифтът, който нашият бутон е свързан с toint child2ButtonPin = 12; int child3ButtonPin = 11; int child4ButtonPin = 10; int child1ButtonState = 0; // Чете състоянието на бутона (включено/изключено) 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 зумер = 2;

// функцията за настройка се изпълнява веднъж, когато натиснете нулиране или включите платката

void setup () {Serial.begin (9600); pinMode (child1ButtonPin, INPUT); pinMode (child2ButtonPin, INPUT); pinMode (child3ButtonPin, INPUT); pinMode (child4ButtonPin, INPUT); pinMode (зумер, OUTPUT); } // цикълната функция работи отново и отново завинаги void loop () {// чете състоянието на бутона (включено или изключено) child1ButtonState = digitalRead (child1ButtonPin);

child2ButtonState = digitalRead (child2ButtonPin);

child3ButtonState = digitalRead (child3ButtonPin);

child4ButtonState = digitalRead (child4ButtonPin);

if (child1ButtonState! = child1PreviousState)

{if (child1ButtonState == HIGH) // Бутонът е натиснат {child1Strike ++; Serial.println (String ("Child 1 Has:") + child1Strike + "strikes");

ако (child1Strike> = 3)

{Serial.println ("Дете 1 е заземено!"); тон (зумер, 5000, 500); // Изпраща звук от 5 херца за 5 милисекунди

}

забавяне (3000); }} if (child2ButtonState! = child2PreviousState) {if (child2ButtonState == HIGH) // Бутонът е натиснат {child2Strike ++; Serial.println (String ("Child 2 has:") + child2Strike + "strikes");

ако (child2Strike> = 3)

{Serial.println ("Дете 2 е заземено!"); тон (зумер, 5000, 500); } забавяне (3000); }}

if (child3ButtonState! = child3PreviousState)

{if (child3ButtonState == HIGH) // Бутонът е натиснат {child3Strike ++; Serial.println (String ("Child 3 has:") + child3Strike + "strikes");

ако (child3Strike> = 3)

{Serial.println ("Дете 3 е заземено!"); тон (зумер, 5000, 500); } забавяне (3000); }}

if (child4ButtonState! = child4PreviousState)

{if (child4ButtonState == HIGH) // Бутонът е натиснат {child4Strike ++; Serial.println (String ("Child 4 has:") + child4Strike + "strikes");

ако (child4Strike> = 3)

{Serial.println ("Дете 4 е заземено!"); тон (зумер, 5000, 500); } забавяне (3000); }}}

Стъпка 5: Добавете LCD екран

Image
Image
Добавете LCD екран
Добавете LCD екран

Сега позволява LCD екран за ясно и лесно четене.

  1. Първо, добавете потенциометър към вашата дъска за управление на LCD екрана. Внимавайте къде го поставяте, тъй като вероятно вече ви свършва мястото.
  2. Използвайте предната лява част, за да свържете вашия потенциометър към захранващата шина
  3. Използвайте предната дясна част, за да заземите вашия потенциометър.
  4. Гърбът ще бъде свързан с LCD екрана.
  5. Добавете LCD екрана към дъската
  6. Заземете първия щифт на екрана към заземителната шина
  7. Свържете втория щифт към захранващата шина.
  8. Третият LCD пин отива към Pin 8 на Arduino
  9. Четвъртият LCD пин отива до Pin 7 на Arduino
  10. Пето отива до Pin 6 на Arduino
  11. Шестият пин отива към пин 5 на Arduino
  12. Пинове 7 до 10 на LCD екрана са празни
  13. Пин 11 отива към Пин 5 на Arduino
  14. Щифт 12 отива към заземената релса
  15. Pin 13 отива към Pin 4 на Arduino
  16. Щифт 14 отива в задната част на потенциометъра
  17. Пин 15 отива към захранващата шина
  18. Щифт 16 отива към наземната релса.

Сега ще трябва да актуализирате кода си, за да използвате LCD екрана. За това ще използвате библиотеката Течен кристал. Внимавайте с изявленията си за LCD печат. Не забравяйте да изчистите екрана, когато имате нужда от ново съобщение. Също така не забравяйте да зададете курсора, когато искате да използвате два реда.

#включва

LiquidCrystal lcd (3, 4, 5, 6, 7, 8); // Задава LCD екрана

int child1ButtonPin = 13; // Това е щифтът, който нашият бутон е свързан към int child2ButtonPin = 12; int child3ButtonPin = 11; int child4ButtonPin = 10; int child1ButtonState = 0; // Чете състоянието на бутона (включено/изключено) 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 зумер = 9; // Звънецът

// функцията за настройка се изпълнява веднъж, когато натиснете нулиране или включите платката

void setup () {Serial.begin (9600); lcd.begin (16, 2); lcd.print ("Детето"); lcd.setCursor (0, 1); lcd.print ("Модифер на поведение"); pinMode (child1ButtonPin, INPUT); pinMode (child2ButtonPin, INPUT); pinMode (child3ButtonPin, INPUT); pinMode (child4ButtonPin, INPUT); pinMode (зумер, OUTPUT); } // цикълната функция работи отново и отново завинаги void loop () {lcd.setCursor (0, 0); // чете състоянието на бутона (включено или изключено) child1ButtonState = digitalRead (child1ButtonPin);

child2ButtonState = digitalRead (child2ButtonPin);

child3ButtonState = digitalRead (child3ButtonPin);

child4ButtonState = digitalRead (child4ButtonPin);

if (child1ButtonState! = child1PreviousState)

{if (child1ButtonState == HIGH) // Бутонът е натиснат {lcd.clear (); child1Strike ++; Serial.println (String ("Child 1 Has:") + child1Strike + "strikes"); lcd.print ("Дете 1 има:"); lcd.setCursor (0, 1); lcd.print (child1Strike); lcd.print ("Стачки!");

ако (child1Strike> = 3)

{Serial.println ("Дете 1 е заземено!"); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Дете 1 е"); lcd.setCursor (0, 1); lcd.print ("Заземен!");

тон (зумер, 5000, 500); // Изпраща звук от 5 херца за 5 милисекунди

}

забавяне (3000); }} if (child2ButtonState! = child2PreviousState) {lcd.clear (); if (child2ButtonState == HIGH) // Бутонът е натиснат {child2Strike ++; Serial.println (String ("Child 2 has:") + child2Strike + "strikes"); lcd.print ("Дете 2 има:"); lcd.setCursor (0, 1); lcd.print (child2Strike); lcd.print ("Стачки!"); if (child2Strike> = 3) {Serial.println ("Child 2 Is Grounded!"); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Дете 2 е"); lcd.setCursor (0, 1); lcd.print ("Заземен!"); тон (зумер, 5000, 500); } забавяне (3000); }}

if (child3ButtonState! = child3PreviousState)

{lcd.clear (); if (child3ButtonState == HIGH) // Бутонът е натиснат {child3Strike ++; Serial.println (String ("Child 3 has:") + child3Strike + "strikes"); lcd.print ("Дете 3 има:"); lcd.setCursor (0, 1); lcd.print (child3Strike); lcd.print ("Стачки!"); if (child3Strike> = 3) {Serial.println ("Дете 3 е заземено!"); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Дете 3 е"); lcd.setCursor (0, 1); lcd.print ("Заземен!"); тон (зумер, 5000, 500); } забавяне (3000); }}

if (child4ButtonState! = child4PreviousState)

{lcd.clear (); if (child4ButtonState == HIGH) // Бутонът е натиснат {child4Strike ++; Serial.println (String ("Child 4 has:") + child4Strike + "strikes"); lcd.print ("Дете 4 има:"); lcd.setCursor (0, 1); lcd.print (child4Strike); lcd.print ("Стачки!");

ако (child4Strike> = 3)

{Serial.println ("Дете 4 е заземено!"); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Дете 4 е"); lcd.setCursor (0, 1); lcd.print ("Заземен!"); тон (зумер, 5000, 500); } забавяне (3000); }}} И това е, всичко, от което се нуждаете, за да изградите свой собствен модификатор на поведение на дете

Препоръчано: