Turinys:
2025 Autorius: John Day | [email protected]. Paskutinį kartą keistas: 2025-01-13 06:57
Šioje instrukcijoje mes sukursime projektą, kuris valdys „Micro-Servo“su klaviatūra, veikiančia su „Arduino Uno“.
Naudotos medžiagos:
Arduino Uno
Bandomoji Lenta
4x4 klaviatūra
Mikro servo
1 veiksmas: prijunkite klaviatūrą
Pati pirmoji mintis, kurią jums reikia padaryti, yra prijungti maitinimo bėgelį ir įžeminimo bėgelį ant savo duonos lentos iš „Arduino“
- Prijunkite 5V kaištį prie maitinimo tinklo (raudona)
- Prijunkite įžeminimo kaištį (GND) prie įžeminimo bėgio (mėlynas)
Dabar, kai duonos lenta turi galią ir yra įžeminta, galime pradėti prijungti komponentus.
Klaviatūros prijungimas yra lengvas, tačiau turite atkreipti dėmesį į klaviatūros ir arduino kaiščius. Tai pravers, kai atkreipsime dėmesį į savo kodą.
Naudodami laidus, nepamirškite pradėti nuo kairės pusės!
- Pirmasis smeigtukas eina į 13
- Antrasis kaištis eina į 12
- Trečias smeigtukas eina į 11
- Ketvirtasis kaištis eina į 10
- Penktasis kaištis iki 9
- Šeštasis kaištis iki 8
- Septintasis kaištis iki 7
- Aštuntasis kaištis iki 6
Prijungdami klaviatūrą, nepamirškite atidaryti skaitmeninio pwm kaiščio. Mums to reikės mikro servo
Prieš pereidami prie kodo, įsitikinkite, kad įdiegėte klaviatūros biblioteką. Jį galima rasti eskize, tada eskizo skirtuke, įskaitant biblioteką. Be jo negalėsite naudotis klaviatūra.
Dabar pereikime prie kodo ir įsitikinkime, kad klaviatūra veikia ir pateikia lankomas vertes
Greitos pastabos: įsitikinkite, kad turite teiginį if, kad patikrintumėte klaviatūrą, kitaip ji neveiks. Taip pat būkite atsargūs dėl vėlavimo, nes jie suklaidins mygtukus, užregistruotus iš klaviatūros
#įtraukti
const baitų eilutės = 4; // keturios eilutės, nes klaviatūra pilna
const baitų stulpeliai = 4; // keturi stulpeliai, tokie patys kaip aukščiau
char mygtukai [eilutės] [stulpeliai] = {
{„1“, „2“, „3“, „A“}, {„4“, „5“, „6“, „B“}, „7“, „8“, „9“, „ C '}, {'*',' 0 ','#',' D '}};
baitų eilutėP [eilutės] = {13, 12, 11, 10}; // klaviatūros eilutės kaiščiai
baitų stulpeliaiP [stulpeliai] = {9, 8, 7, 6}; // klaviatūros stulpelių kaiščiai
Klaviatūros klaviatūra = klaviatūra („makeKeymap“(mygtukai), eilutė P, stulpeliaiP, eilutės, stulpeliai); // sukurti klaviatūrą
void setup () {
Serial.begin (9600); }
void loop () {
char mygtukasPaspaustas = pad.getKey (); // gauti char iš klaviatūros, jei (buttonPressed) // parodyti, koks mygtukas buvo paspaustas klaviatūroje {Serial.println (buttonPressed); }}
2 veiksmas: pridėkite „Micro Servo“
Dabar pridėkime servo variklį. Tai labai lengva pridėti prie mūsų dabartinio projekto, nes mikro serveris turi tik tris laidus.
- Ruda viela eina į duonos lentos įžeminimo bėgelį
- Raudona eina į „Power rail“
- Oranžinė eina į „Arduino“3 kaištį. Atminkite, kad „Arduino“mikro serveryje turi būti PWM kaištis. Taip yra dėl servo, naudojančio TIMER2
Dabar tik įsitikinkime, kad tinkamai prijungėme mikro servo sistemą ir kad ji juda
#įtraukti #įtraukti „Servo.h“
const baitų eilutės = 4; // keturios eilutės, nes klaviatūra pilna
const baitų stulpeliai = 4; // keturi stulpeliai, tokie patys kaip aukščiau
char mygtukai [eilutės] [stulpeliai] = {
{„1“, „2“, „3“, „A“}, {„4“, „5“, „6“, „B“}, „7“, „8“, „9“, „ C '}, {'*',' 0 ','#',' D '}};
baitų eilutėP [eilutės] = {13, 12, 11, 10}; // klaviatūros eilutės kaiščiai
baitų stulpeliaiP [stulpeliai] = {9, 8, 7, 6}; // klaviatūros stulpelių kaiščiai
Klaviatūros klaviatūra = klaviatūra („makeKeymap“(mygtukai), eilutė P, stulpeliaiP, eilutės, stulpeliai); // sukurti klaviatūrą
Servo srovėServo; // sukurti servo objektą valdyti servo
// Daugumoje lentų galima sukurti dvylika servo objektų
int pos = 0; // kintamasis servo padėčiai išsaugoti
void setup () {
Serial.begin (9600); currentServo.attach (3); // prie servo objekto pritvirtina 9 kaiščio servo
}
void loop () {
char mygtukasPaspaustas = pad.getKey (); // gauti char iš klaviatūros, jei (buttonPressed) // parodyti, koks mygtukas buvo paspaustas klaviatūroje {Serial.println (buttonPressed); }
currentServo.write (95);
}
3 veiksmas: pakeiskite kodą, kad galėtumėte naudoti „Servo“klaviatūrą
Žinokite, kad pakeisime savo kodą taip, kad kai paspausime tam tikrą klaviatūros mygtuką, servo sistema pereis į tam tikrą padėtį. Pirmiausia svarbus dalykas. Servo padėtis 0 buvo keista. Kadangi turėjau nepertraukiamo sukimosi servą, kai jis priartėdavo prie 0, servo tiesiog pradėdavo suktis. Skaičius, kurį įvedžiau į kodą, buvo toks mažas, kaip galėjau eiti be to. Bet kokiu atveju, čia yra mano galutinis kodas:
#įtraukti #įtraukti
const baitų eilutės = 4; // keturios eilutės, nes klaviatūra pilna
const baitų stulpeliai = 4; // keturi stulpeliai, tokie patys kaip aukščiau
char mygtukai [eilutės] [stulpeliai] = {
{„1“, „2“, „3“, „A“}, {„4“, „5“, „6“, „B“}, „7“, „8“, „9“, „ C '}, {'*',' 0 ','#',' D '}};
baitų eilutėP [eilutės] = {13, 12, 11, 10}; // klaviatūros eilutės kaiščiai
baitų stulpeliaiP [stulpeliai] = {9, 8, 7, 6}; // klaviatūros stulpelių kaiščiai
Klaviatūros klaviatūra = klaviatūra („makeKeymap“(mygtukai), eilutė P, stulpeliaiP, eilutės, stulpeliai); // sukurti klaviatūrą
Servo myServo; //
void setup () {
Serial.begin (9600); myServo.attach (5); // prie servo objekto pritvirtina 9 kaiščio servo}
void loop () {
char klavišas = pad.getKey (); // gauti simbolį iš klaviatūros, jei (klavišas == '0') {myServo.write (11); Serial.println ("0"); vėlavimas (15); } if (raktas == '1') {myServo.write (12); Serial.println ("1"); vėlavimas (15); } if (raktas == '2') {myServo.write (24); Serial.println ("2"); vėlavimas (15); } if (raktas == '3') {myServo.write (36); Serial.println ("3"); vėlavimas (15); }
jei (raktas == '4')
{myServo.write (48); Serial.println ("4"); vėlavimas (15); }
jei (raktas == '5')
{myServo.write (60); Serial.println ("5"); vėlavimas (15); }
jei (raktas == '6')
{myServo.write (72); Serial.println ("6"); vėlavimas (15); }
jei (raktas == '7')
{myServo.write (84); Serial.println ("7"); vėlavimas (15); }
jei (raktas == '8')
{myServo.write (96); Serial.println ("8"); vėlavimas (15); }
jei (raktas == '9')
{myServo.write (108); Serial.println ("9"); vėlavimas (15); }
jei (raktas == '*')
{myServo.write (120); Serial.println ("*"); vėlavimas (15); }
jei (raktas == '#')
{myServo.write (132); Serial.println ("#"); vėlavimas (15); }
jei (raktas == 'A')
{myServo.write (146); Serial.println ("A"); vėlavimas (15); }
jei (raktas == 'B')
{myServo.write (158); Serial.println ("B"); vėlavimas (15); }
jei (raktas == 'C')
{myServo.write (170); Serial.println ("C"); vėlavimas (15); }
jei (raktas == 'D')
{myServo.write (180); Serial.println ("D"); vėlavimas (15); }}