Innehållsförteckning:

Servopositoning med knappsats: 3 steg
Servopositoning med knappsats: 3 steg

Video: Servopositoning med knappsats: 3 steg

Video: Servopositoning med knappsats: 3 steg
Video: ЛОВИМ ВСЕХ??? Радиоприемник Tecsun pl368. Все диапазонный радиоприем 2024, November
Anonim
Servopositoning med knappsats
Servopositoning med knappsats

I denna instruerbara kommer vi att skapa ett projekt som styr en Micro-Servo med en knappsats som kör den med en Arduino Uno.

Material som används:

Arduino Uno

Bakbord

4x4 knappsats

Mikro-servo

Steg 1: Anslut knappsatsen

Anslut knappsatsen
Anslut knappsatsen
Anslut knappsatsen
Anslut knappsatsen

Den allra första tanken du behöver göra är att koppla in kraftskenan och jordskenan på din brödbräda från din Arduino

  1. Anslut 5V -stiftet till kraftskenan (röd)
  2. Anslut en jordstift (GND) till jordskenan (blå)

Nu när brödbrädan har ström och är jordad kan vi börja koppla upp våra komponenter.

Anslutning av knappsatsen är enkel men du måste notera stiften på knappsatsen och arduino. Det kommer att vara praktiskt när vi riktar vår uppmärksamhet mot vår kod.

Kom ihåg att börja till vänster när du använder dina ledningar!

  • Första stiftet går till 13
  • Andra stiftet går till 12
  • Tredje nålen går till 11
  • Fjärde stiftet går till 10
  • Femte stiftet till 9
  • Sjätte stiftet till 8
  • Sjunde stiftet till 7
  • Åttonde stift till 6

Kom ihåg att hålla en digital pwm -stift öppen när du kopplar in knappsatsen. Vi kommer att behöva det för mikroservon

Innan vi kommer till koden, se till att du har installerat knappsatsbiblioteket. Det finns i din skiss, sedan skissflik, inkludera bibliotek. Du kommer inte att kunna använda knappsatsen utan den.

Nu kan vi vända oss till koden och se till att knappsatsen fungerar och ger de värden som deltog

Snabba anteckningar: Se till att du har if -satsen för att kontrollera knappsatsen, annars fungerar det inte. Var också försiktig med förseningar, de kommer att röra med knappar som registreras från knappsatsen

#omfatta

const byte rader = 4; // fyra rader eftersom knappsatsen är full

const byte kolumner = 4; // fyra kolumner, samma som ovan

teckenknappar [rader] [kolumner] = {

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

byte rowP [rader] = {13, 12, 11, 10}; // radstift på knappsatsen

byte kolumnerP [kolumner] = {9, 8, 7, 6}; // kolumnstift på knappsatsen

Knappsats = Knappsats (makeKeymap (knappar), rowP, kolumnerP, rader, kolumner); // skapa knappsats

void setup () {

Serial.begin (9600); }

void loop () {

char buttonPressed = pad.getKey (); // få char från knappsatsen om (buttonPressed) // visa vilken knapp som trycktes på knappsatsen {Serial.println (buttonPressed); }}

Steg 2: Lägg till Micro Servo

Lägg till Micro Servo
Lägg till Micro Servo
Lägg till Micro Servo
Lägg till Micro Servo

Nu kan vi lägga till servomotorn. Den här är verkligen enkel att lägga till i vårt nuvarande projekt eftersom mikroservern bara har tre ledningar.

  • Brun tråd går till jordningsskenan på brödbrädan
  • Rött går till Power rail
  • Orange går till Pin 3 på Arduino. Kom ihåg att mikroservern måste ha en PWM -pin på Arduino. Detta beror på att servon använder TIMER2

Låt oss nu bara se till att vi kopplade mikroservon rätt och att den rör sig

#include #include "Servo.h"

const byte rader = 4; // fyra rader eftersom knappsatsen är full

const byte kolumner = 4; // fyra kolumner, samma som ovan

teckenknappar [rader] [kolumner] = {

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

byte rowP [rader] = {13, 12, 11, 10}; // radstift på knappsatsen

byte kolumnerP [kolumner] = {9, 8, 7, 6}; // kolumnstift på knappsatsen

Knappsats = Knappsats (makeKeymap (knappar), rowP, kolumnerP, rader, kolumner); // skapa knappsats

Servo currentServo; // skapa servoobjekt för att styra ett servo

// tolv servoobjekt kan skapas på de flesta brädor

int pos = 0; // variabel för att lagra servopositionen

void setup () {

Serial.begin (9600); currentServo.attach (3); // fäster servon på stift 9 på servoobjektet

}

void loop () {

char buttonPressed = pad.getKey (); // få char från knappsatsen om (buttonPressed) // visa vilken knapp som trycktes på knappsatsen {Serial.println (buttonPressed); }

currentServo.write (95);

}

Steg 3: Ändra koden för att använda knappsatsen på servon

Vet att vi ska ändra vår kod så att när vi trycker på en viss knapp på knappsatsen flyttas servon till en viss position. En sak av vikt först. Servopositionen för 0 var konstig. Eftersom jag hade en servo för kontinuerlig rotation, när den kom nära 0, började servon bara snurra. Antalet jag satte i koden var så lågt jag kunde gå utan att det hände. Här är i alla fall min sista kod:

#inkludera #inkludera

const byte rader = 4; // fyra rader eftersom knappsatsen är full

const byte kolumner = 4; // fyra kolumner, samma som ovan

teckenknappar [rader] [kolumner] = {

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

byte rowP [rader] = {13, 12, 11, 10}; // radstift på knappsatsen

byte kolumnerP [kolumner] = {9, 8, 7, 6}; // kolumnstift på knappsatsen

Knappsats = Knappsats (makeKeymap (knappar), rowP, kolumnerP, rader, kolumner); // skapa knappsats

Servo myServo; //

void setup () {

Serial.begin (9600); myServo.attach (5); // fäster servon på stift 9 på servoobjektet}

void loop () {

char key = pad.getKey (); // få char från knappsatsen if (key == '0') {myServo.write (11); Serial.println ("0"); fördröjning (15); } if (key == '1') {myServo.write (12); Serial.println ("1"); fördröjning (15); } if (key == '2') {myServo.write (24); Serial.println ("2"); fördröjning (15); } if (key == '3') {myServo.write (36); Serial.println ("3"); fördröjning (15); }

if (key == '4')

{myServo.write (48); Serial.println ("4"); fördröjning (15); }

if (key == '5')

{myServo.write (60); Serial.println ("5"); fördröjning (15); }

if (key == '6')

{myServo.write (72); Serial.println ("6"); fördröjning (15); }

if (key == '7')

{myServo.write (84); Serial.println ("7"); fördröjning (15); }

if (key == '8')

{myServo.write (96); Serial.println ("8"); fördröjning (15); }

if (key == '9')

{myServo.write (108); Serial.println ("9"); fördröjning (15); }

if (key == '*')

{myServo.write (120); Serial.println ("*"); fördröjning (15); }

if (key == '#')

{myServo.write (132); Serial.println ("#"); fördröjning (15); }

if (key == 'A')

{myServo.write (146); Serial.println ("A"); fördröjning (15); }

if (key == 'B')

{myServo.write (158); Serial.println ("B"); fördröjning (15); }

if (key == 'C')

{myServo.write (170); Serial.println ("C"); fördröjning (15); }

if (key == 'D')

{myServo.write (180); Serial.println ("D"); fördröjning (15); }}

Rekommenderad: