INHOUDSOPGAWE:
- Stap 1: Begin eenvoudig: voeg 'n knoppie by
- Stap 2: Verander kode om knoppers te registreer
- Stap 3: Voeg soveel knoppies by as wat u kinders het
- Stap 4: Voeg 'n gonser by
- Stap 5: Voeg 'n LCD -skerm by
Video: Kindergedrag wysiger: 5 stappe (met foto's)
2024 Outeur: John Day | [email protected]. Laas verander: 2024-02-01 14:39
Die kindergedrag -wysiger teken aan hoeveel keer u kind in die moeilikheid beland het (ook bekend as Stakings) en as hulle drie bereik, gaan 'n gonser af en 'n lcd -skerm kondig aan dat hulle geaard is.
Stap 1: Begin eenvoudig: voeg 'n knoppie by
Die eerste stap in hierdie projek is eenvoudig. Voeg 1 knoppie by. In hierdie stap benodig u 4 manlike tot manlike drade, 1 220 Resisitor en 'n drukknop.
- Koppel die 5V aan die kragkant aan die positiewe ry op die broodbord
-
Koppel die GND aan die negatiewe kant van die broodbord
- Plaas die drukknop op die broodbord
-
Koppel die krag op die postiewe ry aan die linker onderkant van die drukknop
- Aard die knoppie met 'n weerstand in die regter onderkant van die drukknop tot by die negatiewe ry van die broodbord.
- Koppel #13 aan die digitale kant van die Arduino aan die regterkant bo -aan die knoppie.
Verifieer met u kode dat die knoppie registreer:
int child1ButtonPin = 13; // Dit is die pen waarmee ons drukknoppie gekoppel is
int child1ButtonState = 0; // Lees die toestand van die knoppie (aan/af)
int kind1Strike = 0; // Hoeveel aanvalle het die kind
// die opstelfunksie word een keer uitgevoer as u op reset druk of die bord aanskakel
ongeldige opstelling () {Serial.begin (9600); pinMode (kind1ButtonPin, INPUT); } // die lusfunksie loop oor en oor vir ewig leeg lus () {// lees die knoppie se toestand (aan of af) child1ButtonState = digitalRead (child1ButtonPin); if (child1ButtonState == HIGH) // Knoppie word ingedruk {Serial.println ("HIGH"); vertraging (5000); }
as (child1ButtonState == LOW)
{Serial.println ("LAAG"); vertraging (5000); }}
Stap 2: Verander kode om knoppers te registreer
Verander die kode om 'n knoppie te druk:
int child1ButtonPin = 13; // Dit is die pen waarmee ons drukknoppie gekoppel is aan kind1ButtonState = 0; // Lees die toestand van die knoppie (aan/af) int child1PreviousState = 0; // Vorige knoppie staat int child1Strike = 0;
// die opstelfunksie word een keer uitgevoer as u op reset druk of die bord aanskakel
ongeldige opstelling () {Serial.begin (9600); pinMode (kind1ButtonPin, INPUT); } // die lusfunksie loop oor en oor vir ewig leeg lus () {// lees die knoppie se toestand (aan of af) child1ButtonState = digitalRead (child1ButtonPin); if (child1ButtonState! = child1PreviousState) {if (child1ButtonState == HOOG) // Knoppie word ingedruk {child1Strike ++; Serial.println (kind1Strike); vertraging (1000); }}
}
Pas die kode dan aan sodat die kind drie aanvalle kry, waarna hy 'n boodskap ontvang dat hy gegrond is:
int child1ButtonPin = 13; // Dit is die pen waarmee ons drukknoppie gekoppel is aan kind1ButtonState = 0; // Lees die toestand van die knoppie (aan/af) int child1PreviousState = 0; int kind1Strike = 0;
// die opstelfunksie word een keer uitgevoer as u op reset druk of die bord aanskakel
ongeldige opstelling () {Serial.begin (9600); pinMode (kind1ButtonPin, INPUT); } // die lusfunksie loop oor en oor vir ewig leegloop () {// lees die knoppie se toestand (aan of af) child1ButtonState = digitalRead (child1ButtonPin); if (child1ButtonState! = child1PreviousState) {if (child1ButtonState == HOOG) // Knoppie word ingedruk {child1Strike ++; Serial.println (kind1Strike);
as (kind1Strike> = 3)
{Serial.println ("Kind 1 is gegrond!"); } vertraging (3000); }}
}
Die Serial Moniter moet soos die prent hierbo lyk.
Let wel: Maak seker dat u vertroud is met die vertraging. 'N bietjie vertraging en dit sal 'n druk van een knoppie registreer as meer as een!
Stap 3: Voeg soveel knoppies by as wat u kinders het
In hierdie stap kopieer ons eenvoudig die laaste paar stappe. Voeg soveel knoppies by as kinders. In my geval voeg ek vier by. Maak seker dat u u kode verander, die digitale pen waarna die knoppie gekoppel is. In my geval het ek penne 12 tot 10 gebruik om my knoppies by te voeg. As u hieraan moet herinner, is stap 1:
- Koppel die 5V aan die kragkant aan die positiewe ry op die broodbord
-
Koppel die GND aan die negatiewe kant van die broodbord
- Plaas die drukknop op die broodbord Sluit die krag in die postiewe ry aan op die onderste onderste deel van die drukknop
-
Aard die knoppie met 'n weerstand in die regter onderkant van die drukknoppie tot by die negatiewe ry van die broodbord.
- Koppel (u speldnommer) aan die digitale kant van die Arduino aan die regterkant bo van die knoppie.
U moet ook die kode verander om al u knoppies te hanteer. Hou in gedagte dat as u versigtig moet wees vir die snare wat u gebruik het. U kan nie by kleinletters saam voeg nie. Dit is die beste om 1 as 'n stringvoorwerp te verklaar.
int child1ButtonPin = 13; // Dit is die speld waarmee ons drukknoppie gekoppel is aan kind 2ButtonPin = 12; int child3ButtonPin = 11; int child4ButtonPin = 10; int child1ButtonState = 0; // Lees die toestand van die knoppie (aan/af) int child2ButtonState = 0; int child3ButtonState = 0; int child4ButtonState = 0; int kind1PreviousState = 0; int kind2PreviousState = 0; int kind3PreviousState = 0; int kind4PreviousState = 0; int kind1Strike = 0; int kind2Strike = 0; int kind3Strike = 0; int kind4Strike = 0;
// die opstelfunksie word een keer uitgevoer as u op reset druk of die bord aanskakel
ongeldige opstelling () {Serial.begin (9600); pinMode (kind1ButtonPin, INPUT); pinMode (child2ButtonPin, INPUT); pinMode (child3ButtonPin, INPUT); pinMode (child4ButtonPin, INPUT); } // die lusfunksie loop oor en oor vir ewig leeg lus () {// lees die knoppie se toestand (aan of af) child1ButtonState = digitalRead (child1ButtonPin);
child2ButtonState = digitalRead (child2ButtonPin);
child3ButtonState = digitalRead (child3ButtonPin);
child4ButtonState = digitalRead (child4ButtonPin);
as (child1ButtonState! = child1PreviousState)
{if (child1ButtonState == HIGH) // Knoppie word ingedruk {child1Strike ++; Serial.println (String ("Kind 1 het:") + child1Strike + "slaan");
as (kind1Strike> = 3)
{Serial.println ("Kind 1 is gegrond!"); } vertraging (3000); }} if (child2ButtonState! = child2PreviousState) {if (child2ButtonState == HOOG) // Knoppie word ingedruk {child2Strike ++; Serial.println (String ("Kind 2 het:") + child2Strike + "stakings");
as (child2Strike> = 3)
{Serial.println ("Kind 2 is gegrond!"); } vertraging (3000); }}
as (child3ButtonState! = child3PreviousState)
{if (child3ButtonState == HOOG) // Knoppie word ingedruk {child3Strike ++; Serial.println (String ("Kind 3 het:") + child3Strike + "stakings");
as (child3Strike> = 3)
{Serial.println ("Kind 3 is gegrond!"); } vertraging (3000); }}
as (child4ButtonState! = child4PreviousState)
{if (child4ButtonState == HOOG) // Knoppie word ingedruk {child4Strike ++; Serial.println (String ("Kind 4 het:") + child4Strike + "stakings");
as (child4Strike> = 3)
{Serial.println ("Kind 4 is gegrond!"); } vertraging (3000); }}}
Stap 4: Voeg 'n gonser by
Laat ons nou seker maak dat u kinders weet dat hulle gegrond is. Laat ons 'n gonser byvoeg. Volg hierdie maklike stappe om die gonser aan te sluit.
- Voeg 'n gonser by u broodbord, beplan ruimte, aangesien 'n LCD -skerm verskyn.
- Koppel die Postive -kant (die zoemer moet 'n + aan die postiewe kant hê) aan die Pin van u keuse. Ek het 9 gedoen.
- Koppel die ander kant met die grondrail van u broodbord.
Verander vervolgens u kode om die gonser uit te skakel as 'n kind op die grond val. Daar is 'n paar verskillende maniere om vir u zoemer te kodeer, maar ek hou van toon (buzzerName, hertz, duur) vanweë sy eenvoud. 'N Voorbeeld hiervan is toon (buzzer, 4000, 300).
int child1ButtonPin = 13; // Dit is die pen wat ons drukknoppie aan ons kind2ButtonPin = 12 gekoppel is; int child3ButtonPin = 11; int child4ButtonPin = 10; int child1ButtonState = 0; // Lees die knoppie se toestand (aan/af) int child2ButtonState = 0; int child3ButtonState = 0; int kind4ButtonState = 0; int kind1PreviousState = 0; int kind2PreviousState = 0; int kind3PreviousState = 0; int kind4PreviousState = 0; int kind1Strike = 0; int kind2Strike = 0; int kind3Strike = 0; int kind4Strike = 0; const int gonser = 2;
// die opstelfunksie word een keer uitgevoer as u op reset druk of die bord aanskakel
ongeldige opstelling () {Serial.begin (9600); pinMode (kind1ButtonPin, INPUT); pinMode (child2ButtonPin, INPUT); pinMode (child3ButtonPin, INPUT); pinMode (child4ButtonPin, INPUT); pinMode (zoemer, UITGANG); } // die lusfunksie loop oor en oor vir ewig leeg lus () {// lees die knoppie se toestand (aan of af) child1ButtonState = digitalRead (child1ButtonPin);
child2ButtonState = digitalRead (child2ButtonPin);
child3ButtonState = digitalRead (child3ButtonPin);
child4ButtonState = digitalRead (child4ButtonPin);
as (child1ButtonState! = child1PreviousState)
{if (child1ButtonState == HOOG) // Knoppie word ingedruk {child1Strike ++; Serial.println (String ("Kind 1 het:") + kind1Strike + "slaan");
as (kind1Strike> = 3)
{Serial.println ("Kind 1 is gegrond!"); toon (zoemer, 5000, 500); // Stuur 'n 5 Hertz -klank vir 5 millisekondes
}
vertraging (3000); }} if (child2ButtonState! = child2PreviousState) {if (child2ButtonState == HOOG) // Knoppie word ingedruk {child2Strike ++; Serial.println (String ("Kind 2 het:") + child2Strike + "stakings");
as (child2Strike> = 3)
{Serial.println ("Kind 2 is gegrond!"); toon (zoemer, 5000, 500); } vertraging (3000); }}
as (child3ButtonState! = child3PreviousState)
{if (child3ButtonState == HOOG) // Knoppie word ingedruk {child3Strike ++; Serial.println (String ("Kind 3 het:") + child3Strike + "stakings");
as (child3Strike> = 3)
{Serial.println ("Kind 3 is gegrond!"); toon (zoemer, 5000, 500); } vertraging (3000); }}
as (child4ButtonState! = child4PreviousState)
{if (child4ButtonState == HOOG) // Knoppie word ingedruk {child4Strike ++; Serial.println (String ("Kind 4 het:") + child4Strike + "stakings");
as (child4Strike> = 3)
{Serial.println ("Kind 4 is gegrond!"); toon (zoemer, 5000, 500); } vertraging (3000); }}}
Stap 5: Voeg 'n LCD -skerm by
Nou kan 'n LCD -skerm duidelik en maklik gelees word.
- Voeg eers 'n potensiometer by u broodbord om die lcd -skerm te beheer. Wees versigtig waar u dit plaas, aangesien u waarskynlik nou nie genoeg ruimte het nie.
- Gebruik die linkervoorkant om u potensiometer aan die kragrail te koppel
- Gebruik die voorkant regs om u potensiometer te grond.
- Die agterkant sal aan die lcd -skerm gekoppel word.
- Voeg die LCD -skerm by u broodbord
- Aard die eerste skermpen aan die aardrail
- Draai die tweede pen aan die kragrail.
- Die derde LCD -pen gaan na Pin 8 op die Arduino
- Die vierde LCD -pen gaan na Pin 7 op die Arduino
- Die vyfde gaan na pen 6 op die Arduino
- Sesde pen gaan na pen 5 op die Arduino
- Spelde 7 tot 10 op die LCD -skerm is leeg
- Speld 11 gaan na pen 5 op die Arduino
- Speld 12 gaan na die grondrail
- Speld 13 gaan na pen 4 op die Arduino
- Speld 14 gaan aan die agterkant van die potensiometer
- Speld 15 gaan na die kragrail
- Speld 16 gaan na die Ground Rail.
Nou moet u u kode opdateer om die lcd -skerm te gebruik. Hiervoor gebruik u die libary Liquid Crystal. Wees versigtig vir u lcd -drukstate. Onthou om die skerm skoon te maak as u 'n nuwe boodskap nodig het. Onthou ook om die wyser te stel wanneer u twee reëls wil gebruik.
#insluit
LiquidCrystal lcd (3, 4, 5, 6, 7, 8); // Stel die LCD -skerm in
int child1ButtonPin = 13; // Dit is die speld waarmee ons drukknoppie gekoppel is aan int child2ButtonPin = 12; int child3ButtonPin = 11; int child4ButtonPin = 10; int child1ButtonState = 0; // Lees die knoppie se toestand (aan/af) int child2ButtonState = 0; int child3ButtonState = 0; int kind4ButtonState = 0; int kind1PreviousState = 0; // Die vorige toestand van die knoppie wat int child2PreviousState = 0 gedruk is; int kind3PreviousState = 0; int kind4PreviousState = 0; int kind1Strike = 0; // Hoeveel stakings het 'n kind int child2Strike = 0; int kind3Strike = 0; int kind4Strike = 0; const int gonser = 9; // die Gonser
// die opstelfunksie word een keer uitgevoer as u op reset druk of die bord aanskakel
ongeldige opstelling () {Serial.begin (9600); lcd.begin (16, 2); lcd.print ("Die kind"); lcd.setCursor (0, 1); lcd.print ("Gedragsveranderer"); pinMode (kind1ButtonPin, INPUT); pinMode (child2ButtonPin, INPUT); pinMode (child3ButtonPin, INPUT); pinMode (child4ButtonPin, INPUT); pinMode (zoemer, UITGANG); } // die lusfunksie loop oor en oor vir ewig void lus () {lcd.setCursor (0, 0); // lees die toestand van die knoppie (aan of af) child1ButtonState = digitalRead (child1ButtonPin);
child2ButtonState = digitalRead (child2ButtonPin);
child3ButtonState = digitalRead (child3ButtonPin);
child4ButtonState = digitalRead (child4ButtonPin);
as (child1ButtonState! = child1PreviousState)
{if (child1ButtonState == HOOG) // Knoppie word ingedruk {lcd.clear (); kind1Strike ++; Serial.println (String ("Kind 1 het:") + child1Strike + "slaan"); lcd.print ("Kind 1 het:"); lcd.setCursor (0, 1); lcd.print (kind1Strike); lcd.print ("Stakings!");
as (kind1Strike> = 3)
{Serial.println ("Kind 1 is gegrond!"); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Kind 1 is"); lcd.setCursor (0, 1); lcd.print ("gegrond!");
toon (zoemer, 5000, 500); // Stuur 'n 5 Hertz -klank vir 5 millisekondes
}
vertraging (3000); }} if (child2ButtonState! = child2PreviousState) {lcd.clear (); as (child2ButtonState == HOOG) // Knoppie ingedruk word {child2Strike ++; Serial.println (String ("Kind 2 het:") + child2Strike + "stakings"); lcd.print ("Kind 2 het:"); lcd.setCursor (0, 1); lcd.print (child2Strike); lcd.print ("Stakings!"); if (child2Strike> = 3) {Serial.println ("Kind 2 is gegrond!"); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Kind 2 is"); lcd.setCursor (0, 1); lcd.print ("gegrond!"); toon (zoemer, 5000, 500); } vertraging (3000); }}
as (child3ButtonState! = child3PreviousState)
{lcd.clear (); as (child3ButtonState == HOOG) // Knoppie ingedruk word {child3Strike ++; Serial.println (String ("Kind 3 het:") + child3Strike + "stakings"); lcd.print ("Kind 3 het:"); lcd.setCursor (0, 1); lcd.print (child3Strike); lcd.print ("Stakings!"); if (child3Strike> = 3) {Serial.println ("Kind 3 is gegrond!"); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Kind 3 is"); lcd.setCursor (0, 1); lcd.print ("gegrond!"); toon (zoemer, 5000, 500); } vertraging (3000); }}
as (child4ButtonState! = child4PreviousState)
{lcd.clear (); as (child4ButtonState == HOOG) // Knoppie ingedruk word {child4Strike ++; Serial.println (String ("Kind 4 het:") + child4Strike + "stakings"); lcd.print ("Kind 4 het:"); lcd.setCursor (0, 1); lcd.print (child4Strike); lcd.print ("Stakings!");
as (child4Strike> = 3)
{Serial.println ("Kind 4 is gegrond!"); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Kind 4 is"); lcd.setCursor (0, 1); lcd.print ("gegrond!"); toon (zoemer, 5000, 500); } vertraging (3000); }}}} En dit is alles, dit is alles wat u nodig het om u eie kindergedragmodifer te bou
Aanbeveel:
Afwisselend deur die digoptiese wysiger van stereoskopiese transmissie 32 [STM32F103C8T6+STMAV340 VGA Superimposer]: 6 stappe
Afwisselend deur die dichoptiese wysiger van stereoskopiese transmissie 32 [STM32F103C8T6+STMAV340 VGA Superimposer]: Ek werk al 'n geruime tyd aan 'n opvolger van die oorspronklike AODMoST. Nuwe toestel gebruik vinniger en beter 32-bis mikro-kontroleerder en vinniger analoog video-skakelaar. Dit stel AODMoST 32 in staat om met hoër resolusies te werk en nuwe funksionele te implementeer
Afwisselend deur die dichoptiese wysiger van stereoskopiese transmissie [ATmega328P+HEF4053B VGA Superimposer]: 7 stappe
Afwisselend deur die digoptiese wysiger van stereoskopiese transmissie [ATmega328P+HEF4053B VGA Superimposer]: Na my eksperimente met vloeibare kristalglase wat die oë toemaak (hier en daar), het ek besluit om iets te bou wat bietjie meer gesofistikeerd is en ook nie die gebruiker dwing nie om PCB op sy of haar voorkop te dra (mense kan soms gedra
Neem wonderlike foto's met 'n iPhone: 9 stappe (met foto's)
Neem wonderlike foto's met 'n iPhone: die meeste van ons dra deesdae 'n slimfoon oral, daarom is dit belangrik om te weet hoe u u slimfoonkamera kan gebruik om fantastiese foto's te neem! Ek het net 'n paar jaar 'n slimfoon gehad, en ek hou daarvan om 'n ordentlike kamera te hê om dinge te dokumenteer wat ek
Draadlose afstandsbediening met 2,4 GHz NRF24L01 -module met Arduino - Nrf24l01 4 -kanaals / 6 -kanaals sender -ontvanger voor quadcopter - Rc Helikopter - Rc -vliegtuig met Arduino: 5 stappe (met foto's)
Draadlose afstandsbediening met 2,4 GHz NRF24L01 -module met Arduino | Nrf24l01 4 -kanaals / 6 -kanaals sender -ontvanger voor quadcopter | Rc Helikopter | Rc -vliegtuig met Arduino: om 'n Rc -motor te bestuur | Quadcopter | Drone | RC -vliegtuig | RC -boot, ons het altyd 'n ontvanger en sender nodig, veronderstel dat ons vir RC QUADCOPTER 'n 6 -kanaals sender en ontvanger nodig het en dat die tipe TX en RX te duur is, so ons maak een op ons
Hoe om 'n rekenaar met maklike stappe en foto's uitmekaar te haal: 13 stappe (met foto's)
Hoe om 'n rekenaar uitmekaar te haal met eenvoudige stappe en foto's: dit is 'n instruksie oor hoe om 'n rekenaar uitmekaar te haal. Die meeste basiese komponente is modulêr en kan maklik verwyder word. Dit is egter belangrik dat u daaroor georganiseerd is. Dit sal u verhinder om onderdele te verloor, en ook om die montering weer