Talaan ng mga Nilalaman:
- Hakbang 1: Wire the Keypad
- Hakbang 2: Idagdag ang Micro Servo
- Hakbang 3: Baguhin ang Code upang magamit ang Keypad sa Servo
Video: Servo Positoning Sa isang Keypad: 3 Hakbang
2024 May -akda: John Day | [email protected]. Huling binago: 2024-01-30 13:15
Sa itinuturo na ito ay lilikha kami ng isang proyekto na makokontrol ang isang Micro-Servo na may isang keypad na nagpapatakbo nito sa isang Arduino Uno.
Mga Ginamit na Materyal:
Arduino Uno
Breadboard
4x4 Keypad
Micro-Servo
Hakbang 1: Wire the Keypad
Ang pinakaunang iniisip na kailangan mong gawin ay ang wire ng power rail at grounding rail sa iyong breadboard mula sa iyong Arduino
- Ikonekta ang 5V pin sa power rail (pula)
- Ikonekta ang isang Ground pin (GND) sa grounding rail (asul)
Ngayon na ang breadboard ay may kapangyarihan at na-grounded, maaari naming simulan ang pag-wire up ng aming mga bahagi.
Ang kable ng Keypad ay madali ngunit kailangan mong tandaan ang mga pin sa keypad at arduino. Darating ito sa madaling gamiting kapag binaling namin ang aming pansin sa aming code.
Tandaan na magsimula sa kaliwa kapag ginagamit ang iyong mga wire!
- Ang unang pin ay pupunta sa 13
- Ang pangalawang pin ay pupunta sa 12
- Ang pangatlong pin ay pupunta sa 11
- Ang pang-apat na pin ay papunta sa 10
- Pang-limang pin hanggang 9
- Pang-anim na Pin hanggang 8
- Pang-pitong Pin sa 7
- Ikawalo Pin sa 6
Kapag nag-kable ng keypad, tandaan na panatilihing bukas ang isang digital pwm pin. Kakailanganin namin ito para sa micro-servo
Bago kami makarating sa code, tiyaking na-install mo ang Keypad Library. Maaari itong matagpuan sa iyong sketch, pagkatapos ay sketch tab, isama ang library. Hindi mo magagamit ang keypad nang wala ito.
Hinahayaan na ngayong lumiko sa code at siguraduhin na gumagana ang keypad at ibibigay ang mga dinaluhang halaga
Mabilis na Mga Tala: Tiyaking mayroon kang kung pahayag upang suriin ang keypad, kung hindi man ay hindi gagana ito. Mag-ingat din sa mga pagkaantala, guguluhin nila ang mga pindutan na nakarehistro mula sa keypad
# isama
const byte row = 4; // apat na hilera dahil ang keypad ay puno na
mga byte haligi = 4; // apat na haligi, pareho sa itaas
mga char button [row] [haligi] = {
{'1', '2', '3', 'A'}, {'4', '5', '6', 'B'}, {'7', '8', '9', ' C '}, {' * ',' 0 ',' # ',' D '}};
byte rowP [row] = {13, 12, 11, 10}; // row pin ng keypad
byte haligiP [mga haligi] = {9, 8, 7, 6}; // mga haligi ng haligi ng keypad
Keypad pad = Keypad (makeKeymap (mga pindutan), rowP, mga haligiP, mga hilera, mga haligi); // lumikha ng keypad
walang bisa ang pag-setup () {
Serial.begin (9600); }
void loop () {
char buttonPressed = pad.getKey (); // kunin ang char mula sa keypad kung (buttonPressed) // ipakita kung anong pindutan ang pinindot sa keypad na {Serial.println (buttonPressed); }}
Hakbang 2: Idagdag ang Micro Servo
Hinahayaan na ngayong idagdag ang servo motor. Ang isang ito ay talagang madaling idagdag sa aming kasalukuyang proyekto dahil ang micro server ay may tatlong mga wire lamang.
- Ang brown wire ay papunta sa grounding rail sa breadboard
- Pumunta si Red sa Power rail
- Pumunta si Orange sa Pin 3 sa Arduino. Tandaan na ang micro server ay dapat magkaroon ng isang PWM pin sa Arduino. Ito ay dahil sa servo gamit ang TIMER2
Hinahayaan lang ngayon na siguraduhing naka-wire namin ang micro servo nang tama at gumagalaw ito
# isama ang # isama ang "Servo.h"
const byte row = 4; // apat na hilera dahil ang keypad ay puno na
mga byte haligi = 4; // apat na haligi, pareho sa itaas
mga char button [row] [haligi] = {
{'1', '2', '3', 'A'}, {'4', '5', '6', 'B'}, {'7', '8', '9', ' C '}, {' * ',' 0 ',' # ',' D '}};
byte rowP [row] = {13, 12, 11, 10}; // row pin ng keypad
byte haligiP [mga haligi] = {9, 8, 7, 6}; // mga haligi ng haligi ng keypad
Keypad pad = Keypad (makeKeymap (mga pindutan), rowP, mga haligiP, mga hilera, mga haligi); // lumikha ng keypad
Servo kasalukuyangServo; // create servo object upang makontrol ang isang servo
// labindalawang mga bagay na servo ay maaaring malikha sa karamihan ng mga board
int pos = 0; // variable upang maiimbak ang posisyon ng servo
walang bisa ang pag-setup () {
Serial.begin (9600); currentServo.attach (3); // nakakabit ang servo sa pin 9 sa object ng servo
}
void loop () {
char buttonPressed = pad.getKey (); // kunin ang char mula sa keypad kung (buttonPressed) // ipakita kung anong pindutan ang pinindot sa keypad na {Serial.println (buttonPressed); }
currentServo.write (95);
}
Hakbang 3: Baguhin ang Code upang magamit ang Keypad sa Servo
Alam na babaguhin namin ang aming code upang kapag pinindot namin ang isang partikular na pindutan sa keypad, lumilipat ang servo sa isang partikular na posisyon. Isang bagay na may kahalagahan muna. Ang posisyon ng servo para sa 0 ay kakaiba. Dahil mayroon akong isang tuluy-tuloy na servo ng rotation, tuwing malapit ito sa 0, nagsisimulang paikutin ang servo. Ang bilang na inilagay ko sa code ay kasing baba ng paglalakad ko nang hindi nangyayari iyon. Anyways, heres my final code:
# isama ang # isama
const byte row = 4; // apat na hilera dahil ang keypad ay puno na
mga byte haligi = 4; // apat na haligi, pareho sa itaas
mga char button [row] [haligi] = {
{'1', '2', '3', 'A'}, {'4', '5', '6', 'B'}, {'7', '8', '9', ' C '}, {' * ',' 0 ',' # ',' D '}};
byte rowP [row] = {13, 12, 11, 10}; // row pin ng keypad
byte haligiP [mga haligi] = {9, 8, 7, 6}; // mga haligi ng haligi ng keypad
Keypad pad = Keypad (makeKeymap (mga pindutan), rowP, mga haligiP, mga hilera, mga haligi); // lumikha ng keypad
Servo myServo; //
walang bisa ang pag-setup () {
Serial.begin (9600); myServo.attach (5); // nakakabit ang servo sa pin 9 sa servo object}
void loop () {
char key = pad.getKey (); // kunin ang char mula sa keypad kung (key == '0') {myServo.write (11); Serial.println ("0"); pagkaantala (15); } kung (key == '1') {myServo.write (12); Serial.println ("1"); pagkaantala (15); } kung (key == '2') {myServo.write (24); Serial.println ("2"); pagkaantala (15); } kung (key == '3') {myServo.write (36); Serial.println ("3"); pagkaantala (15); }
kung (key == '4')
{myServo.write (48); Serial.println ("4"); pagkaantala (15); }
kung (key == '5')
{myServo.write (60); Serial.println ("5"); pagkaantala (15); }
kung (key == '6')
{myServo.write (72); Serial.println ("6"); pagkaantala (15); }
kung (key == '7')
{myServo.write (84); Serial.println ("7"); pagkaantala (15); }
kung (key == '8')
{myServo.write (96); Serial.println ("8"); pagkaantala (15); }
kung (key == '9')
{myServo.write (108); Serial.println ("9"); pagkaantala (15); }
kung (key == '*')
{myServo.write (120); Serial.println ("*"); pagkaantala (15); }
kung (key == '#')
{myServo.write (132); Serial.println ("#"); pagkaantala (15); }
kung (key == 'A')
{myServo.write (146); Serial.println ("A"); pagkaantala (15); }
kung (key == 'B')
{myServo.write (158); Serial.println ("B"); pagkaantala (15); }
kung (key == 'C')
{myServo.write (170); Serial.println ("C"); pagkaantala (15); }
kung (key == 'D')
{myServo.write (180); Serial.println ("D"); pagkaantala (15); }}
Inirerekumendang:
Awtomatikong Magsimula ng isang Programa Kapag Nag-hook ng isang Laptop Sa isang Docking Station: 5 Mga Hakbang
Awtomatikong Magsimula ng isang Programa Kapag Ang Pag-hook ng isang Laptop Sa isang Docking Station: Ang itinuturo na ito ay tungkol sa kung paano magpatakbo ng isang programa o isang application kapag na-hook mo ang iyong laptop sa isang docking station. Sa halimbawang ito gumagamit ako ng Lenovo T480 Windows 10
Isang Halloween Scare Machine Gamit ang isang PIR, isang 3D Printed Pumpkin at ang Troll Arduino Compatible Audio Pranker / practical Joke Board .: 5 Mga Hakbang
Isang Halloween Scare Machine Gamit ang isang PIR, isang 3D Printed Pumpkin at ang Troll Arduino Compatible Audio Pranker / practical Joke Board .: Ang Troll board na nilikha ni Patrick Thomas Mitchell ng EngineeringShock Electronics, at buong pinondohan sa Kickstarter hindi pa masyadong nakakaraan. Nakuha ko ang aking gantimpala ng ilang linggo maaga upang makatulong na sumulat ng ilang mga halimbawa ng paggamit at bumuo ng isang library ng Arduino sa isang pagtatangka
Bumuo ng isang Apple HomeKit Temperature Sensor Device Gamit ang isang ESP8266 at isang BME280: 10 Hakbang
Bumuo ng isang Apple HomeKit Temperature Sensor Device Gamit ang isang ESP8266 at isang BME280: Sa itinuturo ngayon, gagawa kami ng mababang temperatura na temperatura, halumigmig at kahalumigmigan sensor batay sa alinman sa AOSONG AM2302 / DHT22 o BME280 temperatura / kahalumigmigan sensor, YL-69 moisture sensor at ang platform ng ESP8266 / Nodemcu. At para sa pagpapakita
Paano Gumawa ng isang Adjustable Helicoid Adapter para sa isang 85mm Projector Lens, Mula sa isang Polypropylene Tube Connector: 5 Hakbang
Paano Gumawa ng isang Adjustable Helicoid Adapter para sa isang 85mm Projector Lens, Mula sa isang Polypropylene Tube Connector: Bumili ako kamakailan ng isang lumang slide projector sa halos 10 euro. Ang projector ay nilagyan ng isang 85mm f / 2.8 lens, madaling tanggalin mula sa projector mismo (walang mga bahagi na kailangang ma-disassemble). Kaya't napagpasyahan kong trasform ito sa isang 85mm lens para sa aking Penta
Keypad Interface Sa 8051 at Pagpapakita ng Mga Numero ng Keypad sa 7 Segment: 4 na Hakbang (na may Mga Larawan)
Keypad Interface Sa 8051 at Pagpapakita ng Mga Numero ng Keypad sa 7 Segment: Sa tutorial na ito sasabihin ko sa iyo ang tungkol sa kung paano namin mai-interface ang keypad sa 8051 at ipinapakita ang mga numero ng keypad sa 7 segment na pagpapakita