Оглавление:

Модификатор поведения ребенка: 5 шагов (с изображениями)
Модификатор поведения ребенка: 5 шагов (с изображениями)

Видео: Модификатор поведения ребенка: 5 шагов (с изображениями)

Видео: Модификатор поведения ребенка: 5 шагов (с изображениями)
Видео: Уникальный ТЕСТ! Выясните, какая травма детства влияет на вашу жизнь! Психология. Тест личности. 2024, Ноябрь
Anonim
Дочерний модификатор поведения
Дочерний модификатор поведения

Модификатор поведения ребенка регистрирует, сколько раз ваш ребенок попадал в беду (или забастовки), и когда они достигают трех, срабатывает зуммер, а ЖК-экран сообщает, что ребенок заземлен.

Шаг 1. Начните с простого: добавьте кнопку

Начать с простого: добавить кнопку
Начать с простого: добавить кнопку

Первый шаг в этом проекте прост. Добавить 1 кнопку. На этом этапе вам понадобятся 4 провода типа папа-папа, 1 резистор 220 и кнопка.

  1. Подключите 5 В на стороне питания к положительному ряду на макетной плате.
  2. Подключите GND к отрицательной стороне макета.

  3. Вставьте кнопку на макетную плату.
  4. Подключите питание положительного ряда к левой нижней части кнопки.

  5. Заземлите кнопку, подключив резистор к нижней правой части кнопки и к отрицательному ряду макета.
  6. Подключите №13 на цифровой стороне Arduino к верхней правой стороне кнопки.

Подтвердите своим кодом, что кнопка регистрируется:

int child1ButtonPin = 13; // Это контакт, к которому подключена наша кнопка

int child1ButtonState = 0; // Считывает состояние кнопки (включено / выключено)

int child1Strike = 0; // Сколько ударов у ребенка

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

void setup () {Serial.begin (9600); pinMode (child1ButtonPin, ВХОД); } // функция цикла выполняется снова и снова навсегда void loop () {// считываем состояние кнопки (включено или выключено) child1ButtonState = digitalRead (child1ButtonPin); if (child1ButtonState == HIGH) // Кнопка нажата {Serial.println ("HIGH"); задержка (5000); }

если (child1ButtonState == LOW)

{Serial.println ("НИЗКИЙ"); задержка (5000); }}

Шаг 2. Измените код для регистрации нажатий кнопок

Изменить код для регистрации нажатий кнопок
Изменить код для регистрации нажатий кнопок
Изменить код для регистрации нажатий кнопок
Изменить код для регистрации нажатий кнопок

Измените код, чтобы зарегистрировать нажатие кнопки:

int child1ButtonPin = 13; // Это контакт, к которому наша кнопка подключена int child1ButtonState = 0; // Считывает состояние кнопки (включено / выключено) int child1PreviousState = 0; // Предыдущее состояние кнопки int child1Strike = 0;

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

void setup () {Serial.begin (9600); pinMode (child1ButtonPin, ВХОД); } // функция цикла выполняется снова и снова навсегда void loop () {// считываем состояние кнопки (включено или выключено) child1ButtonState = digitalRead (child1ButtonPin); if (child1ButtonState! = child1PreviousState) {if (child1ButtonState == HIGH) // Кнопка нажата {child1Strike ++; Serial.println (child1Strike); задержка (1000); }}

}

Затем измените код так, чтобы ребенок получил 3 удара, после чего он получил сообщение о том, что он заземлен:

int child1ButtonPin = 13; // Это контакт, к которому наша кнопка подключена int child1ButtonState = 0; // Считывает состояние кнопки (включено / выключено) int child1PreviousState = 0; int child1Strike = 0;

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

void setup () {Serial.begin (9600); pinMode (child1ButtonPin, ВХОД); } // функция цикла выполняется снова и снова навсегда void loop () {// считываем состояние кнопки (включено или выключено) child1ButtonState = digitalRead (child1ButtonPin); if (child1ButtonState! = child1PreviousState) {if (child1ButtonState == HIGH) // Кнопка нажата {child1Strike ++; Serial.println (child1Strike);

если (child1Strike> = 3)

{Serial.println («Ребенок 1 заземлен!»); } задержка (3000); }}

}

Последовательный монитор должен выглядеть как на изображении выше.

Примечание. Убедитесь, что вам удобна задержка. Небольшая задержка, и он зарегистрирует нажатие одной кнопки как более одной!

Шаг 3. Добавьте столько кнопок, сколько у вас есть дети

Добавьте столько кнопок, сколько у вас есть детей
Добавьте столько кнопок, сколько у вас есть детей
Добавьте столько кнопок, сколько у вас есть детей
Добавьте столько кнопок, сколько у вас есть детей

На этом этапе мы просто копируем последние пару шагов. Добавьте столько кнопок, сколько детей. В моем случае я добавляю четыре. Обязательно измените свой код на цифровой контакт, к которому подключена кнопка. В моем случае я использовал контакты с 12 по 10, чтобы добавить свои кнопки. Если вам нужно напомнить, вот шаг 1:

  1. Подключите 5 В на стороне питания к положительному ряду на макетной плате.
  2. Подключите GND к отрицательной стороне макета.

  3. Вставьте кнопку на макетную плату Подключите питание в положительном ряду к левой нижней части кнопки
  4. Заземлите кнопку, используя резистор в правой нижней части кнопки и к отрицательному ряду макета.

  5. Подключите (свой пин-код) на цифровой стороне Arduino к правой верхней части кнопки.

Вам также нужно будет изменить код для обработки всех ваших кнопок. Имейте в виду, что если вам нужно быть осторожным с используемыми строками. Вы не можете складывать вместе строчные буквы. Лучше всего объявить 1 как объект String.

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;

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

void setup () {Serial.begin (9600); pinMode (child1ButtonPin, ВХОД); pinMode (child2ButtonPin, ВХОД); pinMode (child3ButtonPin, ВХОД); pinMode (child4ButtonPin, ВХОД); } // функция цикла выполняется снова и снова навсегда void loop () {// считываем состояние кнопки (включено или выключено) child1ButtonState = digitalRead (child1ButtonPin);

child2ButtonState = digitalRead (child2ButtonPin);

child3ButtonState = digitalRead (child3ButtonPin);

child4ButtonState = digitalRead (child4ButtonPin);

если (child1ButtonState! = child1PreviousState)

{if (child1ButtonState == HIGH) // Кнопка нажата {child1Strike ++; Serial.println (String ("У ребенка 1:") + child1Strike + "Strikes");

если (child1Strike> = 3)

{Serial.println («Ребенок 1 заземлен!»); } задержка (3000); }} if (child2ButtonState! = child2PreviousState) {if (child2ButtonState == HIGH) // Кнопка нажата {child2Strike ++; Serial.println (String ("У ребенка 2:") + child2Strike + "Strikes");

если (child2Strike> = 3)

{Serial.println («Ребенок 2 заземлен!»); } задержка (3000); }}

если (child3ButtonState! = child3PreviousState)

{if (child3ButtonState == HIGH) // Кнопка нажата {child3Strike ++; Serial.println (String ("У ребенка 3:") + child3Strike + "Strikes");

если (child3Strike> = 3)

{Serial.println («Ребенок 3 заземлен!»); } задержка (3000); }}

если (child4ButtonState! = child4PreviousState)

{if (child4ButtonState == HIGH) // Кнопка нажата {child4Strike ++; Serial.println (String («У ребенка 4:») + child4Strike + «Strikes»);

если (child4Strike> = 3)

{Serial.println («Ребенок 4 заземлен!»); } задержка (3000); }}}

Шаг 4. Добавьте зуммер

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

Теперь давайте убедимся, что ваши дети знают, что они заземлены. Давайте добавим зуммер. Чтобы подключить зуммер, выполните следующие простые шаги.

  1. Добавьте зуммер на макет, запланируйте место, так как появится ЖК-экран.
  2. Подключите положительную сторону (у зуммера должен быть + на положительной стороне) к контакту по вашему выбору. Я сделал 9.
  3. Подключите другую сторону к заземленной шине макетной платы.

Затем измените свой код, чтобы отключить зуммер, когда ребенок будет заземлен. Есть несколько различных способов кодирования вашего зуммера, но мне нравится тон (имя зуммера, герц, продолжительность) из-за его простоты. Примером этого может быть тон (зуммер, 4000, 300).

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 buzzer = 2;

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

void setup () {Serial.begin (9600); pinMode (child1ButtonPin, ВХОД); pinMode (child2ButtonPin, ВХОД); pinMode (child3ButtonPin, ВХОД); pinMode (child4ButtonPin, ВХОД); pinMode (зуммер, ВЫХОД); } // функция цикла выполняется снова и снова навсегда void loop () {// считываем состояние кнопки (включено или выключено) child1ButtonState = digitalRead (child1ButtonPin);

child2ButtonState = digitalRead (child2ButtonPin);

child3ButtonState = digitalRead (child3ButtonPin);

child4ButtonState = digitalRead (child4ButtonPin);

если (child1ButtonState! = child1PreviousState)

{if (child1ButtonState == HIGH) // Кнопка нажата {child1Strike ++; Serial.println (String ("У ребенка 1:") + child1Strike + "Strikes");

если (child1Strike> = 3)

{Serial.println («Ребенок 1 заземлен!»); тон (зуммер, 5000, 500); // Посылает звук с частотой 5 Гц в течение 5 миллисекунд

}

задержка (3000); }} if (child2ButtonState! = child2PreviousState) {if (child2ButtonState == HIGH) // Кнопка нажата {child2Strike ++; Serial.println (String ("У ребенка 2:") + child2Strike + "Strikes");

если (child2Strike> = 3)

{Serial.println («Ребенок 2 заземлен!»); тон (зуммер, 5000, 500); } задержка (3000); }}

если (child3ButtonState! = child3PreviousState)

{if (child3ButtonState == HIGH) // Кнопка нажата {child3Strike ++; Serial.println (String ("У ребенка 3:") + child3Strike + "Strikes");

если (child3Strike> = 3)

{Serial.println («Ребенок 3 заземлен!»); тон (зуммер, 5000, 500); } задержка (3000); }}

если (child4ButtonState! = child4PreviousState)

{if (child4ButtonState == HIGH) // Кнопка нажата {child4Strike ++; Serial.println (String («У ребенка 4:») + child4Strike + «Strikes»);

если (child4Strike> = 3)

{Serial.println («Ребенок 4 заземлен!»); тон (зуммер, 5000, 500); } задержка (3000); }}}

Шаг 5: Добавьте ЖК-экран

Image
Image
Добавить ЖК-экран
Добавить ЖК-экран

Теперь позволяет ЖК-экран для четкого и легкого чтения.

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

Теперь вам нужно будет обновить свой код, чтобы использовать ЖК-экран. Для этого вы воспользуетесь библиотекой Liquid Crystal. Будьте осторожны с заявлениями о печати на ЖК-дисплее. Не забудьте очистить экран, когда вам нужно новое сообщение. Также не забудьте установить курсор, если вы хотите использовать две строки.

#включают

ЖК-дисплей LiquidCrystal (3, 4, 5, 6, 7, 8); // Устанавливает ЖК-экран

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 buzzer = 9; // зуммер

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

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

child2ButtonState = digitalRead (child2ButtonPin);

child3ButtonState = digitalRead (child3ButtonPin);

child4ButtonState = digitalRead (child4ButtonPin);

если (child1ButtonState! = child1PreviousState)

{if (child1ButtonState == HIGH) // Кнопка нажата {lcd.clear (); child1Strike ++; Serial.println (String ("У ребенка 1:") + 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); }} если (child2ButtonState! = child2PreviousState) {lcd.clear (); if (child2ButtonState == HIGH) // Кнопка нажата {child2Strike ++; Serial.println (String ("У ребенка 2:") + child2Strike + "Strikes"); lcd.print («У ребенка 2 есть:»); lcd.setCursor (0, 1); lcd.print (child2Strike); lcd.print («Удары!»); if (child2Strike> = 3) {Serial.println («Ребенок 2 заземлен!»); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Дочерний 2 есть"); lcd.setCursor (0, 1); lcd.print («Заземлили!»); тон (зуммер, 5000, 500); } задержка (3000); }}

если (child3ButtonState! = child3PreviousState)

{lcd.clear (); if (child3ButtonState == HIGH) // Кнопка нажата {child3Strike ++; Serial.println (String («У ребенка 3:») + 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); }}

если (child4ButtonState! = child4PreviousState)

{lcd.clear (); if (child4ButtonState == HIGH) // Кнопка нажата {child4Strike ++; Serial.println (String («У ребенка 4:») + 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); }}} Вот и все, что вам нужно для создания собственного модификатора поведения ребенка.

Рекомендуемые: