Агуулгын хүснэгт:

Товчлууртай Servo Positoning: 3 алхам
Товчлууртай Servo Positoning: 3 алхам

Видео: Товчлууртай Servo Positoning: 3 алхам

Видео: Товчлууртай Servo Positoning: 3 алхам
Видео: Как на самом деле работает клапан EGR и как его проверить? 2024, Долдугаар сарын
Anonim
Товчлууртай Servo Positoning
Товчлууртай Servo Positoning

Энэхүү зааварчилгаанд бид Arduino Uno-той ажилладаг товчлуур бүхий бичил Servo-ийг удирдах төслийг бий болгох болно.

Ашигласан материал:

Ардуино Уно

Талхны самбар

4х4 хэмжээтэй товчлуур

Микро Серво

Алхам 1: Товчлуурыг утсаар холбоно уу

Товчлуурыг утсаар холбоно уу
Товчлуурыг утсаар холбоно уу
Товчлуурыг утсаар холбоно уу
Товчлуурыг утсаар холбоно уу

Таны хийх ёстой хамгийн эхний зүйл бол Arduino -оосоо талхны тавцан дээр цахилгаан болон газардуулах төмөр замыг холбох явдал юм

  1. 5V зүүг цахилгаан төмөр замд холбоно уу (улаан)
  2. Газардуулгын зүү (GND) -ийг газардуулгын төмөр замд (цэнхэр) холбоно уу

Талхны самбар нь хүч чадал, газардуулгатай болсон тул бид бүрэлдэхүүн хэсгүүдийнхээ утсыг холбож эхэлж болно.

Товчлуурыг холбох нь хялбар боловч та товчлуур болон arduino дээрх зүүг анхаарч үзэх хэрэгтэй. Бид кодондоо анхаарлаа хандуулах үед энэ нь хэрэг болно.

Утас ашиглахдаа зүүн талаас эхлэхээ мартуузай!

  • Эхний зүү 13 руу очно
  • Хоёрдахь зүү нь 12 хүртэл байна
  • Гурав дахь зүү 11 рүү очно
  • Дөрөв дэх зүү 10 руу очно
  • Тав дахь зүү 9 хүртэл
  • Зургаа дахь зүү 8 хүртэл
  • Долоо дахь зүү 7 хүртэл
  • Найм дахь зүү 6 хүртэл

Товчлуурыг холбохдоо дижитал pwm зүүг нээлттэй байлгахаа бүү мартаарай. Энэ нь бичил сервогийн хувьд бидэнд хэрэгтэй болно

Код руу орохоосоо өмнө товчлуурын номын санг суулгасан эсэхээ шалгаарай. Үүнийг таны ноорог дээрээс олж болно, дараа нь тойм таб, номын сан орно. Үүнгүйгээр та товчлуурыг ашиглах боломжгүй болно.

Одоо код руу шилжиж, товчлуур ажиллаж, ирсэн утгыг өгч байгаа эсэхийг шалгаарай

Шуурхай тэмдэглэл: Товчлуурыг шалгахын тулд if мэдэгдэл байгаа эсэхийг шалгаарай, эс тэгвэл энэ нь ажиллахгүй болно. Түүнчлэн саатал гарахаас болгоомжил, тэд товчлуураас бүртгэгдсэн товчлууруудыг эвдэх болно

#оруулах

const байтын мөр = 4; // товчлуур дүүрсэн тул дөрвөн мөр

const байтын багана = 4; // дээр дурдсантай адил дөрвөн багана

char товч [мөр] [багана] = {

{'1', '2', '3', 'A'}, {'4', '5', '6', 'B'}, {'7', '8', '9', ' C '}, {'*',' 0 ','#',' D '}};

байт мөрP [мөр] = {13, 12, 11, 10}; // товчлуурын мөрийн зүү

байт баганаP [багана] = {9, 8, 7, 6}; // товчлуурын баганын зүү

Товчлуурын дэвсгэр = Товчлуур (makeKeymap (товчлуурууд), rowP, баганаP, мөр, багана); // товчлуур үүсгэх

хүчингүй тохиргоо () {

Цуваа эхлэх (9600); }

void loop () {

char buttonPressed = pad.getKey (); // (товчлуур дарагдсан) // товчлуур дээр ямар товчлуур дарагдсан болохыг харуулна уу {Serial.println (buttonPressed); }}

Алхам 2: Микро Серво нэмнэ үү

Микро Серво нэмнэ үү
Микро Серво нэмнэ үү
Микро Серво нэмнэ үү
Микро Серво нэмнэ үү

Одоо servo мотор нэмж оруулъя. Микро сервер нь зөвхөн гурван утастай тул үүнийг манай одоогийн төсөлд нэмж оруулах нь үнэхээр хялбар юм.

  • Хүрэн утас нь талхны тавцан дээр газардуулах төмөр зам руу явдаг
  • Улаан эрчим хүчний төмөр зам руу явдаг
  • Улбар шар нь Arduino дээрх Pin 3 руу очдог. Микро сервер нь Arduino дээр PWM зүүтэй байх ёстой гэдгийг санаарай. Энэ нь TIMER2 ашигладаг servo -той холбоотой юм

Одоо би микро servo -ийг зөв холбож, хөдөлж байгаа эсэхийг шалгаарай

#оруулах #"Servo.h" оруулах

const байтын мөр = 4; // товчлуур дүүрсэн тул дөрвөн мөр

const байтын багана = 4; // дээр дурдсантай адил дөрвөн багана

char товч [мөр] [багана] = {

{'1', '2', '3', 'A'}, {'4', '5', '6', 'B'}, {'7', '8', '9', ' C '}, {'*',' 0 ','#',' D '}};

байт мөрP [мөр] = {13, 12, 11, 10}; // товчлуурын мөрийн зүү

байт баганаP [багана] = {9, 8, 7, 6}; // товчлуурын баганын зүү

Товчлуурын дэвсгэр = Товчлуур (makeKeymap (товчлуурууд), rowP, баганаP, мөр, багана); // товчлуур үүсгэх

Servo currentServo; // servo хянахын тулд servo объект үүсгэх

// ихэнх самбар дээр арван хоёр servo объект үүсгэж болно

int pos = 0; // servo байрлалыг хадгалах хувьсагч

хүчингүй тохиргоо () {

Цуваа эхлэх (9600); currentServo.attach (3); // 9 -р зүү дээрх servo -ийг servo объект руу хавсаргана

}

void loop () {

char buttonPressed = pad.getKey (); // (товчлуур дарагдсан) // товчлуур дээр ямар товчлуур дарагдсан болохыг харуулна уу {Serial.println (buttonPressed); }

currentServo.write (95);

}

Алхам 3: Серво дээрх товчлуурыг ашиглахын тулд кодыг өөрчилнө үү

Бид кодоо өөрчлөх гэж байгаа тул товчлуурын товчлуур дээр дарахад servo нь тодорхой байрлал руу шилжих болно. Юуны өмнө чухал зүйл. 0 -ийн хувьд servo байрлал хачин байсан. Надад тасралтгүй эргүүлэх servo байсан тул 0 -д ойртох тусам servo дөнгөж эргэлдэж эхлэв. Миний оруулсан код нь ийм зүйл болоогүй байж болох юм. Ямар ч байсан миний эцсийн код энд байна:

#оруулах #оруулах

const байтын мөр = 4; // товчлуур дүүрсэн тул дөрвөн мөр

const байтын багана = 4; // дээр дурдсантай адил дөрвөн багана

char товч [мөр] [багана] = {

{'1', '2', '3', 'A'}, {'4', '5', '6', 'B'}, {'7', '8', '9', ' C '}, {'*',' 0 ','#',' D '}};

байт мөрP [мөр] = {13, 12, 11, 10}; // товчлуурын мөрийн зүү

байт баганаP [багана] = {9, 8, 7, 6}; // товчлуурын баганын зүү

Товчлуурын дэвсгэр = Товчлуур (makeKeymap (товчлуурууд), rowP, баганаP, мөр, багана); // товчлуур үүсгэх

Servo myServo; //

хүчингүй тохиргоо () {

Цуваа эхлэх (9600); myServo.attach (5); // 9 -р зүү дээрх servo -ийг servo объект руу хавсаргана}

void loop () {

char түлхүүр = pad.getKey (); // хэрэв (key == '0') {myServo.write (11); Serial.println ("0"); саатал (15); } if (key == '1') {myServo.write (12); Serial.println ("1"); саатал (15); } if (key == '2') {myServo.write (24); Serial.println ("2"); саатал (15); } if (key == '3') {myServo.write (36); Serial.println ("3"); саатал (15); }

хэрэв (түлхүүр == '4')

{myServo.write (48); Serial.println ("4"); саатал (15); }

хэрэв (түлхүүр == '5')

{myServo.write (60); Serial.println ("5"); саатал (15); }

хэрэв (түлхүүр == '6')

{myServo.write (72); Serial.println ("6"); саатал (15); }

хэрэв (түлхүүр == '7')

{myServo.write (84); Serial.println ("7"); саатал (15); }

хэрэв (түлхүүр == '8')

{myServo.write (96); Serial.println ("8"); саатал (15); }

хэрэв (түлхүүр == '9')

{myServo.write (108); Serial.println ("9"); саатал (15); }

хэрэв (түлхүүр == '*')

{myServo.write (120); Serial.println ("*"); саатал (15); }

хэрэв (түлхүүр == '#')

{myServo.write (132); Serial.println ("#"); саатал (15); }

хэрэв (түлхүүр == 'А')

{myServo.write (146); Serial.println ("A"); саатал (15); }

хэрэв (түлхүүр == 'B')

{myServo.write (158); Serial.println ("B"); саатал (15); }

хэрэв (түлхүүр == 'C')

{myServo.write (170); Serial.println ("C"); саатал (15); }

хэрэв (түлхүүр == 'D')

{myServo.write (180); Serial.println ("D"); саатал (15); }}

Зөвлөмж болгож буй: