Inhoudsopgave:

Servopositionering met een toetsenbord: 3 stappen
Servopositionering met een toetsenbord: 3 stappen

Video: Servopositionering met een toetsenbord: 3 stappen

Video: Servopositionering met een toetsenbord: 3 stappen
Video: -20- Whiteboard schrijver - Ik Maak Dus Ik Ben 2024, November
Anonim
Servopositionering met een toetsenbord
Servopositionering met een toetsenbord

In deze instructable zullen we een project maken dat een Micro-Servo bestuurt met een toetsenbord waarop het wordt uitgevoerd met een Arduino Uno.

Gebruikte materialen:

Arduino Uno

Breadboard

4x4 toetsenbord

Micro-servo

Stap 1: bedraad het toetsenbord

Bedraad het toetsenbord
Bedraad het toetsenbord
Bedraad het toetsenbord
Bedraad het toetsenbord

Het allereerste wat u hoeft te doen, is de stroomrail en de aardingsrail op uw breadboard vanaf uw Arduino te bedraden

  1. Sluit de 5V-pin aan op de stroomrail (rood)
  2. Sluit een aardingspin (GND) aan op de aardingsrail (blauw)

Nu het breadboard stroom heeft en geaard is, kunnen we beginnen met het bedraden van onze componenten.

Het bedraden van het toetsenbord is eenvoudig, maar u moet rekening houden met de pinnen op het toetsenbord en de arduino. Het zal van pas komen als we onze aandacht op onze code richten.

Denk eraan om aan de linkerkant te beginnen wanneer u uw draden gebruikt!

  • Eerste pin gaat naar 13
  • Tweede pin gaat naar 12
  • Derde pin gaat naar 11
  • Vierde pin gaat naar 10
  • Vijfde pin naar 9
  • Zesde pin naar 8
  • Zevende pin naar 7
  • Achtste pin tot 6

Denk eraan om bij het bedraden van het toetsenbord een digitale pwm-pin open te houden. We hebben het nodig voor de micro-servo

Voordat we bij de code komen, moet u ervoor zorgen dat u de toetsenbordbibliotheek hebt geïnstalleerd. Het is te vinden in uw schets, vervolgens op het schetstabblad, inclusief bibliotheek. Zonder kunt u het toetsenbord niet gebruiken.

Laten we nu naar de code gaan en ervoor zorgen dat het toetsenbord werkt en de bewaakte waarden geeft

Snelle opmerkingen: zorg ervoor dat u de if-instructie hebt om het toetsenbord te controleren, anders werkt het niet. Pas ook op voor vertragingen, ze zullen knoeien met knoppen die worden geregistreerd vanaf het toetsenbord

#erbij betrekken

const byte rijen = 4; // vier rijen omdat het toetsenbord vol is

const byte kolommen = 4; // vier kolommen, hetzelfde als hierboven

char knoppen[rijen][kolommen] = {

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

byte rijP[rijen] = {13, 12, 11, 10}; //rij pinnen van het toetsenbord

byte kolommenP[kolommen] = {9, 8, 7, 6}; //kolom pinnen van het toetsenbord

Toetsenbord pad = Toetsenbord (makeKeymap (knoppen), rijP, kolommenP, rijen, kolommen); // toetsenbord maken

ongeldige setup(){

Serieel.begin(9600); }

lege lus(){

char buttonPressed = pad.getKey(); // haal de char van het toetsenbord als (knop ingedrukt) // laat zien op welke knop op het toetsenbord is gedrukt { Serial.println (knop ingedrukt); } }

Stap 2: Voeg de Micro Servo toe

Voeg de Micro Servo toe
Voeg de Micro Servo toe
Voeg de Micro Servo toe
Voeg de Micro Servo toe

Laten we nu de servomotor toevoegen. Deze is heel eenvoudig toe te voegen aan ons huidige project, omdat de microserver slechts drie draden heeft.

  • Bruine draad gaat naar de aardingsrail op het breadboard
  • Rood gaat naar de Power rail
  • Oranje gaat naar pin 3 op de Arduino. Onthoud dat de microserver een PWM-pin op de Arduino moet hebben. Dit komt doordat de servo TIMER2 gebruikt

Laten we er nu voor zorgen dat we de micro-servo goed hebben aangesloten en dat deze beweegt

#include #include "Servo.h"

const byte rijen = 4; // vier rijen omdat het toetsenbord vol is

const byte kolommen = 4; // vier kolommen, hetzelfde als hierboven

char knoppen[rijen][kolommen] = {

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

byte rijP[rijen] = {13, 12, 11, 10}; //rij pinnen van het toetsenbord

byte kolommenP[kolommen] = {9, 8, 7, 6}; //kolom pinnen van het toetsenbord

Toetsenbord pad = Toetsenbord (makeKeymap (knoppen), rijP, kolommenP, rijen, kolommen); // toetsenbord maken

ServostroomServo; // maak een servo-object om een servo te besturen

// Op de meeste borden kunnen twaalf servo-objecten worden gemaakt

int pos = 0; // variabel om de servopositie op te slaan

ongeldige setup(){

Serieel.begin(9600); huidigeServo.attach(3); // bevestigt de servo op pin 9 aan het servo-object

}

lege lus(){

char buttonPressed = pad.getKey(); // haal de char van het toetsenbord als (knop ingedrukt) // laat zien op welke knop op het toetsenbord is gedrukt { Serial.println (knop ingedrukt); }

huidigeServo.write(95);

}

Stap 3: Wijzig de code om het toetsenbord op de servo te gebruiken

Weet dat we onze code gaan aanpassen, zodat wanneer we op een bepaalde knop op het toetsenbord drukken, de servo naar een bepaalde positie gaat. Eerst iets van belang. De servopositie voor 0 was raar. Omdat ik een servo met continue rotatie had, begon de servo net te draaien wanneer deze dicht bij 0 kwam. Het nummer dat ik in de code zette was zo laag als ik kon gaan zonder dat dat gebeurde. Hoe dan ook, hier is mijn definitieve code:

#include #include

const byte rijen = 4; // vier rijen omdat het toetsenbord vol is

const byte kolommen = 4; // vier kolommen, hetzelfde als hierboven

char knoppen[rijen][kolommen] = {

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

byte rijP[rijen] = {13, 12, 11, 10}; //rij pinnen van het toetsenbord

byte kolommenP[kolommen] = {9, 8, 7, 6}; //kolom pinnen van het toetsenbord

Toetsenbord pad = Toetsenbord (makeKeymap (knoppen), rijP, kolommenP, rijen, kolommen); // toetsenbord maken

Servo mijnServo; //

ongeldige setup(){

Serieel.begin(9600); mijnServo.attach(5); // bevestigt de servo op pin 9 aan het servo-object}

lege lus(){

char key = pad.getKey(); // haal de char van het toetsenbord if(key == '0') { myServo.write (11); Serieel.println("0"); vertraging (15); } if(key == '1') { myServo.write (12); Serieel.println("1"); vertraging (15); } if(key == '2') { myServo.write(24); Serieel.println("2"); vertraging (15); } if(key == '3') { myServo.write(36); Serieel.println("3"); vertraging (15); }

if(toets == '4')

{ mijnServo.write(48); Serieel.println("4"); vertraging (15); }

if(toets == '5')

{ mijnServo.write(60); Serieel.println("5"); vertraging (15); }

if(toets == '6')

{ mijnServo.write(72); Serieel.println("6"); vertraging (15); }

if(toets == '7')

{ mijnServo.write(84); Serieel.println("7"); vertraging (15); }

if(toets == '8')

{ mijnServo.write(96); Serieel.println("8"); vertraging (15); }

if(toets == '9')

{ mijnServo.write(108); Serieel.println("9"); vertraging (15); }

if(toets == '*')

{ mijnServo.write(120); Serieel.println("*"); vertraging (15); }

if(toets == '#')

{ mijnServo.write(132); Serieel.println("#"); vertraging (15); }

if(toets == 'A')

{ mijnServo.write(146); Serieel.println("A"); vertraging (15); }

if(toets == 'B')

{ mijnServo.write(158); Serieel.println("B"); vertraging (15); }

if(toets == 'C')

{ mijnServo.write(170); Serieel.println("C"); vertraging (15); }

if(toets == 'D')

{ mijnServo.write(180); Serieel.println("D"); vertraging (15); } }

Aanbevolen: