Мазмұны:
- 1 -қадам: Қарапайым бастаңыз: түймені қосыңыз
- 2 -қадам: батырмаларды басу үшін кодты өзгертіңіз
- 3 -қадам: Балалы болғаныңызша түймелерді қосыңыз
- 4 -қадам: Дабыл сигналын қосыңыз
- 5 -қадам: СКД экранын қосыңыз
2024 Автор: John Day | [email protected]. Соңғы өзгертілген: 2024-02-01 14:41
Баланың мінез -құлқын өзгертуші сіздің балаңыздың қанша рет қиындыққа тап болғанын жазады (мысалы, ереуілдер) және олар үшке жеткенде, дыбыстық сигнал естіледі және дисплей олардың негізделмегені туралы хабарлайды.
1 -қадам: Қарапайым бастаңыз: түймені қосыңыз
Бұл жобаның бірінші қадамы қарапайым. 1 түймені қосыңыз. Бұл қадамда сізге 4 еркектен ерге дейінгі сымдар, 1 220 резистор және басу түймесі қажет.
- Қуат жағындағы 5В кернеу тақтасындағы оң қатарға қосыңыз
-
GND тақтасының теріс жағына қосыңыз
- Түймені тақтаға салыңыз
-
Позитивті жолдағы қуатты батырманың төменгі сол жағына қосыңыз
- Резисторды пайдаланып, батырманың оң жақ төменгі бөлігіне нан тақтасының теріс қатарына қосыңыз.
- Ардуиноның цифрлық жағындағы № 13 түйменің жоғарғы оң жағына қосыңыз.
Батырманың тіркелгенін кодыңызбен растаңыз:
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 («ТӨМЕН»); кешіктіру (5000); }}
2 -қадам: батырмаларды басу үшін кодты өзгертіңіз
Түймені басу үшін кодты өзгертіңіз:
int child1ButtonPin = 13; // Бұл түйме түйменің 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; // Бұл түйме түйменің 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 -қадам:
-
Қуат жағындағы 5В кернеу тақтасындағы оң қатарға қосыңыз
- GND тақтасының теріс жағына қосыңыз
-
Түймені тақтаға салыңыз Позитивті жолдағы қуатты басу түймесінің төменгі сол жағына қосыңыз
- Резисторды пайдаланып, батырманың оң жақ төменгі бөлігіне нан тақтасының теріс қатарына қосыңыз.
- Ардуиноның сандық жағындағы (PIN нөміріңізді) түйменің жоғарғы оң жағына қосыңыз.
Сондай -ақ, барлық түймелерді басқару үшін кодты өзгерту қажет болады. Есіңізде болсын, егер сіз қолданған жолдарға абай болу қажет болса. Сіз кіші әріптерді бірге қоса алмайсыз. String объектісі ретінде 1 деп жариялау жақсы.
int child1ButtonPin = 13; // Бұл түйме түйменің 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 has:») + child1Strike + «соққылар»);
егер (child1Strike> = 3)
{Serial.println («1 -бала негізделеді!»); } кешіктіру (3000); }} if (child2ButtonState! = child2PreviousState) {if (child2ButtonState == HIGH) // Түйме басылады {child2Strike ++; Serial.println (Жол («2 -бала:») + child2Strike + «соққылар»);
егер (child2Strike> = 3)
{Serial.println («2 -бала жерге тұйықталған!»); } кешіктіру (3000); }}
if (child3ButtonState! = child3PreviousState)
{if (child3ButtonState == HIGH) // Түйме басылады {child3Strike ++; Serial.println (String («3 -бала:») + child3Strike + «соққылар»);
егер (child3Strike> = 3)
{Serial.println («3 -бала жерге тұйықталған!»); } кешіктіру (3000); }}
if (child4ButtonState! = child4PreviousState)
{if (child4ButtonState == HIGH) // Түйме басылады {child4Strike ++; Serial.println (Жол («4 -ші бала:») + child4Strike + «соққылар»);
егер (child4Strike> = 3)
{Serial.println («4 -бала жерге тұйықталған!»); } кешіктіру (3000); }}}
4 -қадам: Дабыл сигналын қосыңыз
Енді сіздің балаларыңыз олардың жерге қосылғанын білетініне көз жеткізейік. Дыбыстық сигналды қосайық. Дыбыстық сигналды қосу үшін мына қарапайым қадамдарды орындаңыз.
- Нан тақтасына дыбыстық сигналды қосыңыз, кеңістікті жоспарлаңыз, өйткені СКД экраны шығады.
- Постивті жағын (дыбыстық сигналда позитивті жағында + белгісі болуы керек) өзіңіз қалаған түйреуішке қосыңыз. Мен 9 жасадым.
- Екінші жағын тақтаның жерге тұйықталған рельсіне қосыңыз.
Содан кейін, бала жерге қосылған кезде дыбыстық сигналды өшіру үшін кодты өзгертіңіз. Дыбыстық сигналды кодтаудың бірнеше түрлі әдістері бар, бірақ маған оның үнділігі (buzzerName, hertz, ұзақтығы) қарапайымдылығы үшін ұнайды, сондықтан бұған мысал тон болады (баззер, 4000, 300).
int child1ButtonPin = 13; // Бұл түйме түйменің 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, 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 has:») + child1Strike + «соққылар»);
егер (child1Strike> = 3)
{Serial.println («1 -бала негізделеді!»); тон (дыбыстық сигнал, 5000, 500); // 5 герц дыбысын 5 миллисекундқа жібереді
}
кешіктіру (3000); }} if (child2ButtonState! = child2PreviousState) {if (child2ButtonState == HIGH) // Түйме басылады {child2Strike ++; Serial.println (Жол («2 -бала:») + child2Strike + «соққылар»);
егер (child2Strike> = 3)
{Serial.println («2 -бала жерге тұйықталған!»); тон (дыбыстық сигнал, 5000, 500); } кешіктіру (3000); }}
if (child3ButtonState! = child3PreviousState)
{if (child3ButtonState == HIGH) // Түйме басылады {child3Strike ++; Serial.println (Жол («3 -балада:») + child3Strike + «соққылар»);
егер (child3Strike> = 3)
{Serial.println («3 -бала жерге тұйықталған!»); тон (дыбыстық сигнал, 5000, 500); } кешіктіру (3000); }}
if (child4ButtonState! = child4PreviousState)
{if (child4ButtonState == HIGH) // Түйме басылады {child4Strike ++; Serial.println (Жол («4 -ші бала:») + child4Strike + «соққылар»);
егер (child4Strike> = 3)
{Serial.println («4 -бала жерге тұйықталған!»); тон (дыбыстық сигнал, 5000, 500); } кешіктіру (3000); }}}
5 -қадам: СКД экранын қосыңыз
Енді анық және оңай оқуға арналған СКД экранына мүмкіндік береді.
- Алдымен, дисплей экранын басқару үшін тақтаға потенциометрді қосыңыз. Қайда қойғаныңызға абай болыңыз, өйткені сізде бос орын жоқ шығар.
- Потенциометрді электр рельсіне қосу үшін сол жақ алдыңғы жағын пайдаланыңыз
- Потенциометрді жерге қосу үшін алдыңғы оң жағын пайдаланыңыз.
- Артқы жағы LCD экранына қосылады.
- СКД экранын тақтаға қосыңыз
- Бірінші экран штырын жерге тұйықтау рельсіне қосыңыз
- Екінші түйреуішті электр рельсіне жалғаңыз.
- Үшінші СКД түйреуіші Arduino -дегі 8 -пинге өтеді
- Төртінші СКД түйреуіші Arduino 7 -ші пинге өтеді
- Бесінші Arduino -дағы 6 -пинге өтеді
- Алтыншы түйін Arduino 5 -ші пинге өтеді
- СКД экранындағы 7 -ден 10 -ға дейінгі түйреуіштер бос
- 11 -пин Arduino -дағы 5 -ші пинге өтеді
- 12 түйреуіш жерге тұйықталған рельске түседі
- 13 -ші түйін Arduino -дағы 4 -ші пинге өтеді
- 14 түйреуіш потенциометрдің артқы жағына өтеді
- 15 түйреуіш қуат рельсіне түседі
- 16 -штырь жер үсті рельсіне түседі.
Енді сіз экранды пайдалану үшін кодты жаңартуыңыз керек. Ол үшін сіз libary Liquid Crystal қолданасыз. СКД басып шығару мәлімдемелеріне абай болыңыз. Жаңа хабар қажет болғанда экранды тазалауды ұмытпаңыз. Сондай -ақ, екі жолды қолданғыңыз келгенде курсорды орнатуды ұмытпаңыз.
#қосу
LiquidCrystal lcd (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, 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 has:») + child1Strike + «соққылар»); 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 (Жол («2 -ші бала:») + child2Strike + «соққылар»); 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); }}
if (child3ButtonState! = child3PreviousState)
{lcd.clear (); if (child3ButtonState == HIGH) // Түйме басылады {child3Strike ++; Serial.println (String («3 -бала:») + child3Strike + «соққылар»); 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 (Жол («4 -ші бала:») + child4Strike + «соққылар»); 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); }}} Міне, баланың мінез -құлқын өзгерту құралын жасау үшін сізге осының бәрі қажет
Ұсынылған:
Баланың автоматтандырылған мандалорианы: 10 қадам (суреттермен)
Баланың автоматтандырылған мандалорианы: Сіз бұл жаңа ойыншықты сатып алдыңыз (өзіңізден басқа біреуге) және сіз оны «белсенді» кигіңіз келеді. құрылғыны зақымдамай көрсету. Өкінішке орай, ол басын түрткенде ғана жұмыс істейді, егер сіз металл фольга бөлігін жоғарғы жағына таспамен жабыстырсаңыз
Arduino Nano, HX-711 Load Cell және OLED 128X64 көмегімен баланың салмағын өлшейтін машинаны қалай жасауға болады -- HX-711 калибрлеу: 5 қадам
Arduino Nano, HX-711 Load Cell және OLED 128X64 көмегімен баланың салмағын өлшейтін машинаны қалай жасауға болады || HX-711 калибрлеуі: Сәлем Instructables, Бірнеше күн бұрын мен сүйкімді баланың әкесі болдым. Ауруханада жатқанда мен баланың өсуін бақылау үшін баланың салмағы өте маңызды екенін білдім. Сонымен менде идея бар ма? Нәресте салмағын өлшейтін машина жасау үшін. Нұсқаулықта мен
Баланың бірінші сағаты - жарық таймері: 16 қадам (суреттермен)
Баланың алғашқы сағаты - жарық таймері бар: Бұл нұсқаулықта сіз балаңыздың суреттерін, отбасының/үй жануарларының суреттерін немесе кез келген нәрсені көрсете алатын, сағаттың алмастырылатын беттерін қалай жасау керектігін көрсетеді, оны сіз мезгіл -мезгіл өзгертіп отырсаңыз жақсы болар еді. Нақты перспективаны қалаған жерге қысыңыз
DIY синтезі үшін дауысты өзгертуші: 9 қадам (суреттермен)
DIY синтезі үшін дауысты өзгертуші хак: Менің соңғы нұсқаларымды ұстанатындар үшін - мен кешке бірнеше 555 таймер синтезін құрғанымды білетін боласыз. Жақында менің қоқыс өңдейтін қоймаға барған кезде мен балалардың дауысын ауыстыратын құрал таптым. Бұл микрофонмен сөйлесетін түрі
Баланың дыбысы мен жарық гүлі: 6 қадам (суреттермен)
Баланың дыбысы мен жарығы гүлі: 3 айлық баламызға (мен атамын) ойыншық, икеа гүліне енген дыбыс пен жарықты қолдану арқылы оның назарын аударады. Бұл оның бассейніне орнатылды. Ол ардуино децимиллиа микроконтроллер тақтасын пайдаланады, Биполярлық (қызыл және жасыл