Innehållsförteckning:
- Steg 1: Anslut knappsatsen
- Steg 2: Lägg till Micro Servo
- Steg 3: Ändra koden för att använda knappsatsen på servon
Video: Servopositoning med knappsats: 3 steg
2024 Författare: John Day | [email protected]. Senast ändrad: 2024-01-30 12:46
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
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
- Anslut 5V -stiftet till kraftskenan (röd)
- 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
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:
Arduino mekanisk knappsats: 5 steg (med bilder)
Arduino mekanisk knappsats: Jag behövde en stiftplatta för ett annat projekt, så jag bestämde mig för att göra en knappsats med delar jag hade hemma
Arduino -räknare med 4X4 knappsats: 4 steg (med bilder)
Arduino -kalkylator med hjälp av 4X4 knappsats: I denna handledning kommer vi att bygga vår egen miniräknare med Arduino. Värdena kan skickas in via en knappsats (4 × 4 knappsats) och resultatet kan ses på en LCD -skärm. Denna räknare kan utföra enkla operationer som addition, subtraktion, multiplikation
4x4 knappsats med Arduino och bearbetning: 4 steg (med bilder)
4x4 knappsats med Arduino och bearbetning: Gillar du inte LCD -skärmar? Vill du få dina projekt att se tilltalande ut? Här är lösningen. I denna instruktionsbok kan du befria dig från besväret med att använda en LCD -skärm för att visa innehåll från din Arduino och också göra ditt projekt
Knappsats med LCD med hjälp av CloudX Microcontroller: 4 steg
Knappsats med LCD med hjälp av CloudX Microcontroller: För detta projekt kommer vi att acceptera data från en Matrix -knappsats och sedan visa den på en LCDModule
Gränssnitt 16x2 alfanumerisk LCD And4x4 Matris -knappsats med Raspberry Pi3: 5 steg (med bilder)
Gränssnitt 16x2 Alfanumerisk LCD And4x4 Matris Knappsats Med Raspberry Pi3: I denna instruktioner förklarar vi hur du gränssnitt 16x2 LED och 4x4 matris knappsats med Raspberry Pi3. Vi använder Python 3.4 för att utveckla programvaran. Du kan också välja Python 2.7, med små ändringar