Spisu treści:

Pozycjonowanie serwomechanizmu za pomocą klawiatury: 3 kroki
Pozycjonowanie serwomechanizmu za pomocą klawiatury: 3 kroki

Wideo: Pozycjonowanie serwomechanizmu za pomocą klawiatury: 3 kroki

Wideo: Pozycjonowanie serwomechanizmu za pomocą klawiatury: 3 kroki
Wideo: Krokówka lepsza niż serwo? Testy napędów serwokrokowych Leadshine CS VS silnik krokowy 2024, Listopad
Anonim
Pozycjonowanie serwomechanizmu za pomocą klawiatury
Pozycjonowanie serwomechanizmu za pomocą klawiatury

W tej instrukcji będziemy tworzyć projekt, który będzie kontrolował Micro-Servo za pomocą klawiatury obsługującej go z Arduino Uno.

Użyte materiały:

Arduino Uno

Deska do krojenia chleba

Klawiatura 4x4

Mikro-serwo

Krok 1: Podłącz klawiaturę

Podłącz klawiaturę
Podłącz klawiaturę
Podłącz klawiaturę
Podłącz klawiaturę

Pierwszą rzeczą, którą musisz zrobić, to podłączyć szynę zasilającą i szynę uziemiającą na płytce stykowej z Arduino

  1. Podłącz pin 5 V do szyny zasilającej (czerwony)
  2. Podłącz pin uziemiający (GND) do szyny uziemiającej (niebieskiej)

Teraz, gdy płytka stykowa ma zasilanie i jest uziemiona, możemy rozpocząć okablowanie naszych komponentów.

Okablowanie klawiatury jest łatwe, ale musisz zwrócić uwagę na piny na klawiaturze i arduino. Przyda się, gdy zwrócimy uwagę na nasz kod.

Pamiętaj, aby podczas korzystania z przewodów zacząć od lewej!

  • Pierwszy pin idzie do 13
  • Drugi pin idzie do 12
  • Trzeci pin idzie do 11
  • Czwarty pin idzie do 10
  • Piąty pin do 9
  • Szósty pin do 8
  • Siódma szpilka do 7
  • Ósmy pin do 6

Podczas podłączania okablowania manipulatora pamiętaj, aby cyfrowy pin pwm był otwarty. Będziemy go potrzebować do mikroserwo

Zanim przejdziemy do kodu, upewnij się, że masz zainstalowaną Bibliotekę Klawiatur. Można go znaleźć w swoim szkicu, a następnie w zakładce szkicu, dołącz bibliotekę. Bez niej nie będziesz mógł korzystać z klawiatury.

Teraz przejdźmy do kodu i upewnij się, że klawiatura działa i podaje nadzorowane wartości

Szybkie uwagi: Upewnij się, że masz instrukcję if, aby sprawdzić klawiaturę, w przeciwnym razie nie zadziała. Uważaj również na opóźnienia, będą bałaganić z przyciskami rejestrowanymi z klawiatury

#włączać

stałe rzędy bajtów = 4; //cztery rzędy, ponieważ klawiatura jest pełna

kolumny bajtów stałych = 4; //cztery kolumny, jak wyżej

przyciski znaków[wiersze][kolumny] = {

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

bajt wierszP[wiersze] = {13, 12, 11, 10}; //wiersz pinów manipulatora

bajtowe kolumnyP[kolumny] = {9, 8, 7, 6}; //kołki kolumn manipulatora

Klawiatura = Klawiatura(makeKeymap(przyciski), wierszP, kolumnyP, wiersze, kolumny); //utwórz klawiaturę

pusta konfiguracja (){

Serial.początek(9600); }

pusta pętla () {

char buttonPressed = pad.getKey(); //pobranie znaku z klawiatury if(buttonPressed) //pokazanie, jaki przycisk został naciśnięty na klawiaturze { Serial.println(buttonPressed); } }

Krok 2: Dodaj Micro Servo

Dodaj Micro Servo
Dodaj Micro Servo
Dodaj Micro Servo
Dodaj Micro Servo

Teraz dodajmy silnik servo. Ten jest naprawdę łatwy do dodania do naszego obecnego projektu, ponieważ mikroserwer ma tylko trzy przewody.

  • Brązowy przewód biegnie do szyny uziemiającej na płytce stykowej
  • Czerwony idzie do szyny zasilania
  • Pomarańczowy idzie do Pin 3 na Arduino. Pamiętaj, że mikro serwer musi mieć pin PWM na Arduino. Wynika to z serwa używającego TIMER2

Teraz upewnijmy się, że mikro serwo zostało prawidłowo podłączone i że się porusza

#include #include "Servo.h"

stałe rzędy bajtów = 4; //cztery rzędy, ponieważ klawiatura jest pełna

kolumny bajtów stałych = 4; //cztery kolumny, jak wyżej

przyciski znaków[wiersze][kolumny] = {

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

bajt wierszP[wiersze] = {13, 12, 11, 10}; //wiersz pinów manipulatora

bajtowe kolumnyP[kolumny] = {9, 8, 7, 6}; //kołki kolumn manipulatora

Klawiatura = Klawiatura(makeKeymap(przyciski), wierszP, kolumnyP, wiersze, kolumny); //utwórz klawiaturę

Serwo prądSerwo; // utwórz obiekt servo do sterowania serwo

// na większości tablic można stworzyć dwanaście obiektów serwo

int poz = 0; // zmienna do przechowywania pozycji serwa

pusta konfiguracja (){

Serial.początek(9600); currentServo.attach(3); // dołącza serwo na pin 9 do obiektu serwo

}

pusta pętla () {

char buttonPressed = pad.getKey(); //pobranie znaku z klawiatury if(buttonPressed) //pokazanie, jaki przycisk został naciśnięty na klawiaturze { Serial.println(buttonPressed); }

currentServo.write(95);

}

Krok 3: Zmodyfikuj kod, aby używać klawiatury na serwo

Wiedz, że zamierzamy zmodyfikować nasz kod, aby po naciśnięciu określonego przycisku na klawiaturze serwo przemieściło się do określonej pozycji. Najpierw rzecz ważna. Pozycja serwa dla 0 była dziwna. Ponieważ miałem serwo z ciągłym obrotem, gdy zbliżało się do 0, serwo zaczynało się kręcić. Numer, który umieściłem w kodzie, był tak niski, jak mogłem, aby to się nie wydarzyło. Tak czy inaczej, oto mój ostateczny kod:

#włącz #włącz

stałe rzędy bajtów = 4; //cztery rzędy, ponieważ klawiatura jest pełna

const bajtowe kolumny = 4; //cztery kolumny, jak wyżej

przyciski znaków[wiersze][kolumny] = {

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

bajt wierszP[wiersze] = {13, 12, 11, 10}; //wiersz pinów manipulatora

bajtowe kolumnyP[kolumny] = {9, 8, 7, 6}; //kołki kolumn manipulatora

Klawiatura = Klawiatura(makeKeymap(przyciski), wierszP, kolumnyP, wiersze, kolumny); //utwórz klawiaturę

Serwo myServo; //

pusta konfiguracja (){

Serial.początek(9600); mojeSerwo.attach(5); // dołącza serwo na pinie 9 do obiektu serwo }

pusta pętla () {

klawisz znaku = pad.getKey(); //pobierz znak z klawiatury if(key == '0') { myServo.write(11); Serial.println("0"); opóźnienie(15); } if(key == '1') { myServo.write(12); Serial.println("1"); opóźnienie(15); } if(key == '2') { myServo.write(24); Serial.println("2"); opóźnienie(15); } if(key == '3') { myServo.write(36); Serial.println("3"); opóźnienie(15); }

if(klucz == '4')

{ mojeSerwo.zapis(48); Serial.println("4"); opóźnienie(15); }

if(klucz == '5')

{ mojeSerwo.zapis(60); Serial.println("5"); opóźnienie(15); }

if(klucz == '6')

{ mojeSerwo.zapis(72); Serial.println("6"); opóźnienie(15); }

if(klucz == '7')

{ mojeSerwo.write(84); Serial.println("7"); opóźnienie(15); }

if(klucz == '8')

{ mojeSerwo.zapis(96); Serial.println("8"); opóźnienie(15); }

if(klucz == '9')

{ mojeSerwo.zapis(108); Serial.println("9"); opóźnienie(15); }

if(klucz == '*')

{ mojeSerwo.zapis(120); Serial.println("*"); opóźnienie(15); }

if(klucz == '#')

{ mojeSerwo.zapis(132); Serial.println("#"); opóźnienie(15); }

if(klucz == 'A')

{ mojeSerwo.zapis(146); Serial.println("A"); opóźnienie(15); }

if(klucz == 'B')

{ mojeSerwo.zapis(158); Serial.println("B"); opóźnienie(15); }

if(klucz == 'C')

{ mojeSerwo.write(170); Serial.println("C"); opóźnienie(15); }

if(klucz == 'D')

{ mojeSerwo.zapis(180); Serial.println("D"); opóźnienie(15); } }

Zalecana: